4.5.2 Pick & Place: Part 1

Course subject(s) Module 4. Manipulation

In this lecture, we will compose a simple pick and place pipeline with different MoveGroup APIs. Furthermore, the purpose and function of different APIs will be explained.

MoveGroup Interface APIs

  • set_named_target (<“robot joint configuration”>)
  • plan() – plans a motion to the goal
  • get_current_pose() – get pose of the end effector and joint configuration
  • compute_cartesian_path (<waypoints>, <resolution>, <jump_threshold>, <collision_checking=True>)

Navigate to the week 4 ROS package
$ source $HOME/hrwros_ws/devel/setup.bash
$ roscd hrwros_week4

Let’s go through the simple_pick_place.py script. The required specific required modules are:

  • moveit_commander – tell python we work with MoveIt!
  • moveit_msgs.msg
  • actionlib –  for the movement with actionlib.SimpleActionClient() 
  • geometry_msgs – for planning lineair or carthesian spaced motions

Further in the script:

  • The initialisation of moveit_commander and  ROS node simple_pick_place
  • Create groups for the robots
  • Instantiate the two action clients for execute_trajectory action server
  • APIs
      • set_named_target – set a goal configuration
      • plan() – plans a motion to the goal
      • .send_goal() – send the goal to the action server

As it is nonblocking we can already plan the next motion.

Creative Commons License
Hello (Real) World with ROS - Robot Operating System by TU Delft OpenCourseWare is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://online-learning.tudelft.nl/courses/hello-real-world-with-ros-robot-operating-systems//.
Back to top