justagist / panda_simulator

A Gazebo simulator for the Franka Emika Panda robot with ROS interface, supporting sim-to-real code transfer (Python). Exposes customisable controllers and state feedback from robot in simulation.
Apache License 2.0
188 stars 58 forks source link

Unable to identify any set of controllers #15

Closed Sission closed 3 years ago

Sission commented 3 years ago

Hi! I tried to run the demo for testing the moveit planner interface with the simulated robot roslaunch panda_simulator_examples demo_moveit.launch However, it shows the following error.

[ERROR] [1604853219.157810719, 59.716000000]: Unable to identify any set of controllers that can actuate the specified joints: [ panda_joint1 panda_joint2 panda_joint3 panda_joint4 panda_joint5 panda_joint6 panda_joint7 ] [ERROR] [1604853219.157828995, 59.716000000]: Known controllers and their joints: controller 'franka_gripper' controls joints: panda_finger_joint1 panda_finger_joint2

[ERROR] [1604853219.157858878, 59.716000000]: Apparently trajectory initialization failed

Another demo roslaunch panda_simulator_examples demo_task_space_control.launch works fine.

justagist commented 3 years ago

I'm not sure what is happening. It looks like the trajectory action server is not running for the arm. Can you tell me the commands you ran before the demo command? Are you running:

$ roslaunch panda_gazebo panda_world.launch start_moveit:=false
$ roslaunch panda_sim_moveit sim_move_group.launch
$ roslaunch panda_simulator_examples demo_moveit.launch
Sission commented 3 years ago

I did. I believe it is my Ubuntu system problem. Sometimes it works, sometimes it doesn't...

justagist commented 3 years ago

I see... Maybe the action server fails to start in time in your system. Try starting all tasks separately:

$ roslaunch panda_gazebo panda_world.launch use_custom_action_servers:=false
$ rosrun panda_sim_custom_action_server start_joint_trajectory_server.py # wait for message: "Joint Trajectory Action Server Running."
$ rosrun panda_sim_custom_action_server start_gripper_action_server.py # wait for message: "GripperInterface: Gripper action servers found!"
$ roslaunch panda_sim_moveit sim_move_group.launch
$ roslaunch panda_simulator_examples demo_moveit.launch

If this works, it means you were starting the moveit server before the trajectory servers were online. So you only have to run the 3 commands I shared in my previous comment, but wait till you see the message saying action server running before you start the moveit server.