Class RobotInteraction

Class Documentation

class RobotInteraction

Public Functions

RobotInteraction(const moveit::core::RobotModelConstPtr &robot_model, const rclcpp::Node::SharedPtr &node, const std::string &ns = "")
virtual ~RobotInteraction()
inline const std::string &getServerTopic() const
void addActiveComponent(const InteractiveMarkerConstructorFn &construct, const ProcessFeedbackFn &process, const InteractiveMarkerUpdateFn &update = InteractiveMarkerUpdateFn(), const std::string &name = "")

add an interaction. An interaction is a marker that can be used to manipulate the robot state. This function does not add any markers. To add markers for all active interactions call addInteractiveMarkers(). construct - a callback to construct the marker. See comment on InteractiveMarkerConstructorFn above. update - Called when the robot state changes. Updates the marker pose. Optional. See comment on InteractiveMarkerUpdateFn above. process - called when the marker moves. Updates the robot state. See comment on ProcessFeedbackFn above.

void decideActiveComponents(const std::string &group)

Adds an interaction for:

  • each end effector in the group that can be controller by IK

  • each floating joint

  • each planar joint If no end effector exists in the robot then adds an interaction for the last link in the chain. This function does not add any markers. To add markers for all active interactions call addInteractiveMarkers().

void decideActiveComponents(const std::string &group, InteractionStyle::InteractionStyle style)
void clear()

remove all interactions. Also removes all markers.

void addInteractiveMarkers(const InteractionHandlerPtr &handler, const double marker_scale = 0.0)

Add interactive markers for all active interactions. This adds markers just to the one handler. If there are multiple handlers call this for each handler for which you want markers. The markers are not actually added until you call publishInteractiveMarkers().

void updateInteractiveMarkers(const InteractionHandlerPtr &handler)
bool showingMarkers(const InteractionHandlerPtr &handler)
void publishInteractiveMarkers()
void clearInteractiveMarkers()
inline const moveit::core::RobotModelConstPtr &getRobotModel() const
inline KinematicOptionsMapPtr getKinematicOptionsMap()
void toggleMoveInteractiveMarkerTopic(bool enable)
inline const std::vector<EndEffectorInteraction> &getActiveEndEffectors() const
inline const std::vector<JointInteraction> &getActiveJoints() const

Public Static Attributes

static const std::string INTERACTIVE_MARKER_TOPIC

The topic name on which the internal Interactive Marker Server operates.