Important announcement

Dear visitor,

Please note that this OpenCourseWare platform will be replaced at the end of 2026 by a new platform (under the same url ocw.tudelft.nl).

Courses and their contents that are currently available the platform will partly be migrated. URL’s for this content will change and content might be unavailable for some time. In addition, some courses will not be available anymore.

If you are linking to specific courses on this platform (for instance for your students), please take timely measures to avoid problems with access. Possible actions are:

  • Download the materials to your local platform (laptop, server)
  • For educators only (including TU Delft lecturers): Contact us at ocw@tudelft.nl and inform us what course you are using in what context (institute, program, period of use, number of students). We will research (in collaboration with the authors of the course) and decide if we will migrate the course, and if yes, can supply you with a new url.

Thank you.

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
[sg_popup id=6]