How to do tabletop object manipulation for my own robot with ROS?
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.