Ask Your Question

Position controller in Gazebo for Panda Arm

asked 2020-03-03 07:53:40 -0600

mt gravatar image

updated 2020-03-03 08:37:59 -0600

I am trying to make the panda arm work with the MoveIt jog_arm package in Gazebo. The original configuration for the Panda arm in the panda_moveit_config package uses effort_controllers/JointTrajectoryController. However, this is not supported by the jog_arm package which requires either JointGroupVelocityController or a JointGroupPositionController.

So I thought to edit the controller to use a supported controller: position_controllers/JointGroupPositionController. I made the following changes:

  • Changed transmission hardware interface in the URDF from hardware_interface/EffortJointInterface to hardware_interface/PositionJointInterface
  • Modified the controller.yaml file to start with position_controllers/JointTrajectoryController instead of effort_controllers/JointTrajectoryController as well as loading the position_controllers/JointGroupPositionController required for the jog_arm package
  • Modified the launch file to take into account the above change

When I run the launch file, the controller loads fine apart from warnings about missing PID gains but the robot is stuck in a collision state with itself.

  • EDIT * I should add that when I try to plan in rviz to move the robot out of the collision state, I get the following error:

Motion planning start tree could not be initialized!

So my questions are:

  1. What is causing this self-collided state which doesn't occur when using the effort controller?
  2. What actually determines the initial robot pose in the Gazebo simulation?
  3. Is there another better approach to achieve what I am trying to do?


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-03-04 04:53:12 -0600

mt gravatar image

So it seems like this problem was addressed here but doesn't seem to be working for me. As a workaround, I added initial joint positions in the launch file when spawning the robot in Gazebo:

<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-param robot_description -urdf -model panda -J panda_joint4 -1.571 -J panda_joint6 1.571 -J panda_joint7 0.785 -unpause"/>

Note, that Gazebo needs to be started paused for the initial joint positions to be set correctly as I believe this is a bug in Gazebo.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2020-03-03 07:53:40 -0600

Seen: 653 times

Last updated: Mar 04 '20