Closed rhaschke closed 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
:
I think applying your changes to both the panda_moveit_config
and the MSA is a good idea.
@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).
@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.
@rhaschke Please let me know when I need to reserve a lab slot to quickly test it on the real robot.
Superseded by new noetic-devel
branch.
There are 3 basic MoveIt controller manager plugins:
fake
=moveit_fake_controller_manager/MoveItFakeControllerManager
Used indemo.launch
. Doesn't really control the robot, but just interpolates between via points. Allows theseexecution_types
:via points
: just jumps to the via pointsinterpolate
: linearly interpolates between via points (default)last point
: jumps to the final trajectory point (used for fast execution testing)ros_control
=moveit_ros_control_interface::MoveItControllerManager
Interfaces toros_control
controllers. The packagemoveit_sim_controller
offers a fake controller complying to the ros_control API.simple
=moveit_simple_controller_manager/MoveItSimpleControllerManager
Interfaces to action servers forFollowJointTrajectory
and/orGripperCommand
that in turn interface to the low-level robot controllersHowever, so far
move_group.launch
distinguished betweenfake
androbot
mode only. My suggestion is to introduce the argumentmoveit_controller_manager
allowing all 3 variants.I suggest adapting MSA templates appropriately as well. What do you think, @v4hn, @rickstaa?