Position controller in Gazebo for Panda Arm
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
tohardware_interface/PositionJointInterface
- Modified the
controller.yaml
file to start withposition_controllers/JointTrajectoryController
instead ofeffort_controllers/JointTrajectoryController
as well as loading theposition_controllers/JointGroupPositionController
required for thejog_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:
- What is causing this self-collided state which doesn't occur when using the effort controller?
- What actually determines the initial robot pose in the Gazebo simulation?
- Is there another better approach to achieve what I am trying to do?
Thanks