Rosanswers logo

TLDR: Having trouble with generated moveit configuration allowing movement in two of the three axis for the end effector position. Almost certainly an error in my actions / urdf.

In the last 6 months cheap alloy robot arms have appeared on ebay, total cost of less than $100. I can link to the specific one but have not right off the bat to not be an advert.

I have created an xacro file describing the arm. I know I have not modeled the gripper correctly, it is a reasonably common design using a single servo controlling two pincers that close. Modeling that part is hopefully an issue for later playing.

When I use the MoveIt setup assistant I get an output that is working in some cases. If I set the goal state to random valid the plan and execute moves the arm as one would hope. I can only grab and move one of the three sets of arrows to manually adjust the end effector position in rviz. The one available allows movement along the wrist axis. I can not move the end effector directly left/right or up/down with those axis arrows. The arrows move but make no change to the position of the arm state. Rotation is similar with only one rotator working.

Any thoughts from folks who have hit similar issues would be wonderful.

Setup Assistant Session:

roslaunch moveit_setup_assistant setup_assistant.launch


  1. Choose create new MoveIt Configuration Package
  2. Load /.../src/six_dof_arm_czb/urdf/arm.xacro
  3. Arm image can be seen on the right

Self Collisions

  1. Generate Collision Matrix

Virtual Joints

  1. Not used at start. It is assumed the arm is fixed in location.

Planning Groups

Add Group

 1. name: arm
 2. kinematic solver: KDLKinematicsPlugin
 3. Add Joints: bottom_joint, shoulder_pan_joint, elbow_joint, wrist_pitch_joint, wrise_roll_joint

Add Group

 1. name: pincer
 2. Kinematic solver: None
 3. Joints: pincer_joint

Robot Poses

  1. Add Pose. name: home

End Effectors


 1. name: pincer
 2. end effector group: pincer
 3. parent link: wrist_roll_link

Passive Joints

  1. Nothing

Configuration Files

  1. Save path: /.../src/six_dof_arm_czb_moveit
  2. Generate Package

Originally posted by monkeyiq on ROS Answers with karma: 46 on 2017-02-21

Post score: 0


1 Answer 1


Rosanswers logo

I just checked your urdf, and I count only 5 joint elements that are part of the base arm:

  • shoulder_pan_joint
  • shoulder_pitch_joint
  • elbow_pitch_joint
  • wrist_pitch_joint
  • wrist_roll_joint

The two pincer_ joints are not part of the arm, and bottom_joint is a fixed joint, which does not contribute to the reachable solution space.

That would make it a 5dof, which would explain why you can't plan for all (6dof) poses and dragging the interactive marker doesn't work very well for you (as that is a 6dof 'input device').

Without changing the hw (and the urdf), you can only ask MoveIt to do position only IK, which will ignore (as the name implies) the orientation of your EEF. In the RViz plugin, tick the checkbox that says "Allow Approximate IK Solutions" on the Context tab.

Originally posted by gvdhoorn with karma: 86574 on 2017-02-21

This answer was ACCEPTED on the original site

Post score: 0


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.