/ cartesian_controller_handles / README.md
README.md
1 # Cartesian Controller Handles 2 This package provides graphical click-and-drop handles (interactive markers) for 3 RViz to be used in conjunction with the `cartesian_motion_controller` and the `cartesian_compliance_controller`. 4 5 The markers can be used to control the robot end-effector manually through RViz, which is 6 especially handy for testing scenarios and Cartesian trajectory teaching. 7 8  9 10 ## Getting started 11 The controller handles are implemented as ROS2 controllers and are managed by the *controller_manager*. 12 Here are the typical entries in an example `controller_manager.yaml`: 13 14 ```yaml 15 controller_manager: 16 ros__parameters: 17 update_rate: 100 # Hz 18 19 motion_control_handle: 20 type: cartesian_controller_handles/MotionControlHandle 21 22 # More controller instances here 23 # ... 24 25 motion_control_handle: 26 ros__parameters: 27 end_effector_link: "tool0" 28 robot_base_link: "base_link" 29 joints: 30 - joint1 31 - joint2 32 - joint3 33 - joint4 34 - joint5 35 - joint6 36 37 # More controller specifications here 38 # ... 39 ``` 40 41 When active, the `motion_control_handle` from above will publish a `geometry_msgs/PoseStamped` to the `/target_frame` topic with the coordinates of the interactive marker in RViz. 42 You can then use this topic to steer controllers of both the `cartesian_motion_controller/CartesianMotionController` and the `cartesian_compliance_controller/CartesianComplianceController` type. 43 Conventional ROS2 topic remappings will help you setup your preferred configuration with various controllers and handles. 44 45 --- 46 47 **Note**: The motion control handles publish their target frames continuously, 48 even if you don't touch the interactive marker in RViz. If you want to send 49 targets to the controllers via scripts (productive use case), make sure to *deactivate* the 50 `motion_control_handle` through the controller manager so that it does not compete with your script. 51 52 --- 53 54 Also have a look at the `cartesian_controller_simulation` package for an example setup in simulation. 55 56 ## RViz 57 You need to create a visualization in RViz to see and interact with the colored handles. Add *InteractiveMarkers* to your *Displays* menu and point it to the right *Update Topic*. 58 The interactive handle only gets visualized if your `motion control handle` is *active*. If you still see no handles, try toggling the *Interactive Markers*'s checkbox.