moveit / panda_moveit_config

The Panda robot is the flagship MoveIt integration robot
http://docs.ros.org/kinetic/api/moveit_tutorials/html/
105 stars 172 forks source link

Restructure controller managers #92

Closed rhaschke closed 3 years ago

rhaschke commented 3 years ago

There are 3 basic MoveIt controller manager plugins:

However, so far move_group.launch distinguished between fake and robot mode only. My suggestion is to introduce the argument moveit_controller_manager allowing all 3 variants.

I suggest adapting MSA templates appropriately as well. What do you think, @v4hn, @rickstaa?

rickstaa commented 3 years ago

@rhaschke Good idea. Giving users the ability to switch between these three controllers is important since the moveit_fake_controller_manager is being replaced with the moveit_sim_controller. I think a great number of users already switched. Further, we already did add the configuration values for the moveit_sim_controller to both the MSA and the panda_moveit_config:

https://github.com/ros-planning/panda_moveit_config/blob/5847d2bbe138e1a502ec098d3428a247b892afce/config/ros_controllers.yaml#L1-L4

I think applying your changes to both the panda_moveit_config and the MSA is a good idea.

rickstaa commented 3 years ago

@rhaschke I'm currently not at the university so I can not test the panda_control_moveit_rviz.launch file. Based on your changes I however do not expect any issues other than the PID gains being poorly tuned (see my comments). I tested the demo.launch file and I found no problems. I however was not able to control the simulated robot when using the franka_gazebo.launch file. When trying to use the gazebo simulation I receive the following error:

[/panda/move_group] [ WARN] [WallTime: 1635155355.357972037, 62.387000000]: Failed to read controllers from /controller_manager/list_controllers
[/panda/move_group] [ERROR] [WallTime: 1635155355.358041334, 62.387000000]: 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 ]
[/panda/move_group] [ERROR] [WallTime: 1635155355.358076436, 62.387000000]: Known controllers and their joints:

[/panda/move_group] [ERROR] [WallTime: 1635155355.358121636, 62.387000000]: Apparently trajectory initialization failed

I did not debug this issue yet but it looks like the controllers_list parameter is not loaded (also see my comments).

rickstaa commented 3 years ago

@rhaschke As we discussed in our call, https://github.com/rhaschke/panda_moveit_config/pull/11 splits the controller config file between the real and simulated robot.

I converted it to a draft as it was a first attempt to get both the real and simulated robot to work with the moveit_ros_control_interface. The current version solves the warning above but could be improved as it clutters the codebase.

rickstaa commented 3 years ago

@rhaschke Please let me know when I need to reserve a lab slot to quickly test it on the real robot.

rhaschke commented 3 years ago

Superseded by new noetic-devel branch.