Template Class nest_block_process
Defined in File nest_block_process.hpp
Inheritance Relationships
Base Type
public rer::client< nest_block_process< TController, TControllerSpecMap > >
Class Documentation
-
template<typename TController, typename TControllerSpecMap>
class nest_block_process : public rer::client<nest_block_process<TController, TControllerSpecMap>> Handle’s a robot’s (possible) nest block process event on a given timestep, updating the real robot state as needed if the conditions for the block drop are met.
Public Types
-
using controller_spec = typename boost::mpl::at<TControllerSpecMap, TController>::type
-
using interactor_status_type = typename controller_spec::interactor_status_type
-
using robot_metrics_manager_type = typename controller_spec::robot_metrics_manager_type
-
using robot_nest_block_process_visitor_type = typename controller_spec::robot_nest_block_process_visitor_type
Public Functions
-
nest_block_process(const nest_block_process&) = delete
-
nest_block_process(nest_block_process&&) = default
-
inline explicit nest_block_process(robot_metrics_manager_type *const metrics)
-
~nest_block_process(void) override = default
-
inline interactor_status_type operator()(TController &controller, const rtypes::timestep &t)
Handler robot-arena interactions for the specified controller instance on this timestep.
- Parameters:
controller – The controller to handle interactions for.
t – The current timestep.
-
nest_block_process &operator=(const nest_block_process&) = delete
-
virtual bool robot_goal_acquired(const TController &controller) const = 0
Determine if the robot has acquired its goal (the nest in this case). This callback is needed because the exact parameters/method of determining when this has occurred are project specific (e.g., checking if the controller’s acquisition_goal() function returns a certain integer).
-
inline virtual void robot_previsit_hook(TController&) const
Called right before the robot is visited by the block drop event, in order to provide a hook for derived classes to update controller bookkeeping before the pickup.
-
using controller_spec = typename boost::mpl::at<TControllerSpecMap, TController>::type