I am working with MoveIt Task Constructor (MTC) integrated with Isaac Sim. Standard MoveIt motion planning works correctly, and I can visualize robot motion in both RViz and Isaac Sim.
However, when executing task plans generated using MTC, the motion is only visualized in RViz, and no motion is observed in Isaac Sim.
Could this be related to trajectory execution, controller interfaces, or FollowJointTrajectory integration? Any guidance on debugging or fixing this would be appreciated.
Hello @v.b.naik,
Welcome to the Isaac ROS forum and thanks for the post!
The most likely cause is your move_group doesn’t have the ExecuteTaskSolutionCapability plugin loaded. Without it, MTC’s task.plan() succeeds and publishes solutions for RViz, but task.execute() has no listener on the /execute_task_solution action, so the controllers never get commands and Isaac Sim stays idle. Standard MoveIt 2 motion uses a different action (/execute_trajectory), which is why that path works.
You could have a quick check while your move_group is running:
ros2 action list | grep task
If /execute_task_solution is missing, that’s the problem.
To fix this, add below parameter to the move_group node in your custom launch file
{"capabilities": "move_group/ExecuteTaskSolutionCapability"}
Restart the launch, re-run your MTC task, the arm should now move in both RViz and Isaac Sim.
Let me know if that works!
Thanks @vhuang . I had already gone through these steps, but I later realized the issue was in the moveit_controller.yaml and ros2_controllers.yaml files. I had made mistakes while defining the groups, but I have now fixed them and everything is working.