1 #ifndef KINEMATICS_ROBOTCONTROLLER_HPP     2 #define KINEMATICS_ROBOTCONTROLLER_HPP     6 #include <Kinematics/ConcurrentQueue.hpp>     7 #include <Kinematics/Matrix.hpp>    12 #include <unordered_set>    14 #include "RobotDriverHandler.hpp"   232     void pick_up_cup(std::uint32_t 
id);
   246     void move_continue();
   281     void set_error_callback(
const std::function<
void(
ArmError)>& cb);
   288     void position_reached();
   305     void event_handler();
   310     void move_to_ready_handler();
   315     void pick_up_cup_handler();
   320     void pick_up_cup_stage1_handler();
   325     void pick_up_cup_stage2_handler();
   330     void move_stop_handler();
   335     void move_continue_handler();
   340     void move_cancel_handler();
   356     const double ground_level = 0;
   362     const double distance_from_cup = 0.07;
   367     const double angle_step_size = 1;
   372     const double euclidean_step_size = 0.05;
   378     std::function<void(ArmError)> error_callback;
   384     bool is_carrying = 
false;
   394     mutable std::mutex state_m;
   404     std::unordered_map<std::uint32_t, EnvironmentObject> objects;
   409     mutable std::mutex objects_m;
 Matrix< double, 3, 1 > velocity
The velocity vector of the object. 
Definition: RobotController.hpp:38
Abstract class that forces. 
Definition: Planner.hpp:15
Robot arm is moving gripper to surround the cup. 
Robot arm is moving to ready position,. 
RobotControllerState
The current state of the robot controller. 
Definition: RobotController.hpp:59
The arm has stopped due to a safety concern. 
Robot arm is moving to cup. 
std::uint32_t id
The id of the object. 
Definition: RobotController.hpp:28
Describes an object that is detected in the environment. 
Definition: RobotController.hpp:23
This class contains the main logic of the robotic arm. It handles the calculation of robotic path and...
Definition: RobotController.hpp:126
The arm couldn't be moved because there is an underlying driver error. 
Robot arm is currently stopped. 
bool has_speed
Whether this object has a valid speed. 
Definition: RobotController.hpp:48
The arm has stopped because no valid path was found to execute the given action. 
Interface that exposes the interface to the robotarm. 
Definition: RobotDriverHandler.hpp:14
Event
Internal event class. These events are send to the worker thread and handled accordingly. 
Definition: RobotController.hpp:133
bool is_cup
Whether this object is a cup. 
Definition: RobotController.hpp:43
Is idle waiting to pick up a cup. 
std::string polyhedron
The CGAL polyhedron data. This can be used for collision checking. 
Definition: RobotController.hpp:53
ArmError
Enum containing possible reasons for the robot arm not being able to succesfully execute the specifie...
Definition: RobotController.hpp:101
Matrix< double, 3, 1 > position
The position vector of the object. 
Definition: RobotController.hpp:33
Robot arm is moving to lift cup.