Task control frame for MoveIt MTC, Move Group and Servo
For our welding application we are using a frame in front of the calibrated TCP frame (tcp_welding_gun
) which represents the welding wire stickout and the orientation of the welding gun relative to the welding joint. Let's call this task frame task_control_frame
. This frame should be changed at runtime, but not necessarily during a path planning or execution, e.g. it varies from one welding seam to another but not for a given weld seam.
We are using both moveit_servo and move_group. In both cases we want task_control_frame
to move towards the target/goal, not tcp_welding_gun
. Only tcp_welding_gun
is a link in the planning group. So task_control_frame
cannot be used as a reference frame for the motion requests to moveit_servo or move_group
Which would be the cleaner way to implement this? Some ideas:
- implement a setIKFrame() function for move_group similar to what exists in MTC https://github.com/ros-planning/movei...
- add a virtual joint to define
task_control_frame
in the planning group - use moveit_servo Command/Task frame https://discourse.ros.org/t/introduci...
Thanks in advance for the tips!
Similar questions: #q385941.