Rosanswers logo

I have a robot arm of 7DOF. Now i want to use it to grasp tabletop objects like what pr2 does http://www.youtube.com/watch?v=eUpvbOxrbwY

According to my understanding and the wonderful tutorials http://www.ros.org/wiki/pr2_tabletop_manipulation_apps/Tutorials, basically there are four things to do:

  1. object perception: determine where is the object. this is just the goal for the arm;
  2. environment perception: this is to avoid collision between the arm and the environment;
  3. path planning for the arm and trajectory filtering
  4. move the arm to the goal according to the result of path planning.

so first of all, i want to realize the 3rd and 4th steps with my robot arm. that is, i manually assign the start and goal, and then move the arm to the goal according to the result of path planning. According to the tutorial in IROS2011 named Motion Planning for Real Robots(http://www.kavrakilab.org/iros2011), i create the URDF for my robot and i can do the motion planning with the Arm Navigation Warehouse Viewer. but with the warehouse viewer, i can only assign the start and the goal through the GUI. how can i assign the start and the goal programmically? in the IROS2011 tutorial, indeed there is a chapter named Programmatically Controlling the Robot Arm, but that is for PR2. i cannot figure out how to apply this to my robot arm. so till now, it seems that my question can be converted to: how to control my robot arm programmically? e.g., move the arm's each joint to a specified value. in fact, i've realized this with the robot state publisher according to this tutorial: http://www.ros.org/wiki/urdf/Tutorials/Using%20urdf%20with%20robot_state_publisher. so now let's back to the chapter of IROS2011 tutorial named Programmatically Controlling the Robot Arm. In the provided cpp file, it seems it only constructs the goal command, and then sends it out. The planning part and the arm action part are done with right_arm_navigation.launch under the package pr2_3dnav but i don't know how to fulfill this part for my robot arm.

sorry for my tedious description. here is a simple summary:

ultimate goal: i want to do motion planning for my robot arm with the start and goal assigned programmically.

what i've already done:

  1. construct the URDF for my robot;
  2. finish the motion planning with the Arm Navigation Warehouse Viewer;
  3. move each joint to a specified position programmically with joint state publisher and robot state publisher.

question: how to fulfill my ultimate goal with all the achievements i've already finished?

thanks in advance for all the answers and comments.

Originally posted by yangyangcv on ROS Answers with karma: 741 on 2012-08-29

Post score: 1


1 Answer 1


Rosanswers logo

Hey yangyangcv,

So does your Arm Navigation Warehouse Viewer allow you to use Real Robot Data? You need an Action Client and Action Server. From my understanding, the Action Client requests movements from the server which runs with your real robot's drivers. I'm just starting to work with these now, but I am looking at the mototman industrial package. Then look at how they have setup their launch files in sia10d_mesh_arm_navigation/ ---> specifically these files:

planning_scene_warehouse_viewer_sia10d_mesh.launch (simulation) planning_scene_warehouse_viewer_sia10d_mesh_real.launch (real robot data)

I have this stuff working on my non-pr2 project but I think I need low-level controllers to actually programically control the motors. I am also working on tabletop manipulation with my robot :)

Hope this helps, I will try to help you out since you're working close to my area but I am not very experienced.

Kind Regards, Martin

Originally posted by MartinW with karma: 464 on 2013-02-06

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.