ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

MoveIt setup assist restricted motion on a cheap 6 dof robot arm

asked 2017-02-21 01:13:03 -0500

monkeyiq gravatar image

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

Start

  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

Add

 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
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-02-21 02:12:41 -0500

gvdhoorn gravatar image

updated 2017-02-21 02:15:31 -0500

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.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2017-02-21 01:13:03 -0500

Seen: 635 times

Last updated: Feb 21 '17