NODE manipulation controller
controller for performig the manipulation
In a nutshell, this node implements a very simple service able to communicate with moveit in order to perform a manipulation with the RoboCLuedo hunter manipulator. The robot comes with a set of predefined poses, that the controller can call under request.
- Todo:
implement a form of asynchronous movement
- Authors
Francesco Ganci
- Version
v1.2
- Todo:
introduce cartesian planning and a clear end effector
- Todo:
the way the node uses moveit is a bit raw … it would deserve a review.
Defines
-
NODE_NAME
-
LOGSQUARE(str)
-
OUTLABEL
-
TLOG(msg)
-
TWARN(msg)
-
TERR(msg)
-
SS(chr)
-
SSS(el)
-
ARM_PLANNING_GROUP
-
SERVICE_MANIP
-
POSE_HOME
-
POSE_EXTENDED
-
POSE_LOW
-
POSE_FRONT_LOW
-
POSE_FRONT_HIGH
-
POSE_NAME_HOME
-
POSE_NAME_EXTENDED
-
POSE_NAME_LOW
-
POSE_NAME_FRONT_LOW
-
POSE_NAME_FRONT_HIGH
Functions
-
void shut_msg(int sig)
-
int main(int argc, char *argv[])
-
class node_manipulation_controller
Public Functions
-
inline node_manipulation_controller()
class constructor
the class constructor performs the initialisation of the move group interface, then sets up some parameters, and finally mves the arm in the home position.
When launched, the node first of all puts the robotic manipulator in a known state, which is the home position.
-
inline void spin()
simple spin (wait for shutdown)
-
inline bool cbk_manip(robocluedo_movement_controller_msgs::ManipulatorPosition::Request &req, robocluedo_movement_controller_msgs::ManipulatorPosition::Response &res)
sybchronous manipulation
given a poture, the service sets it and moves the robotic manipulator until it hasn’t achieved that.
- Parameters
req – the posture to be set
res – if the motion planning succeeded or not
-
inline node_manipulation_controller()