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.3.4 Movelt! Setup assistant – configuring controllers

Course subject(s) Module 4. Manipulation

We will continue on where we left! In this lecture, we will dive into some deeper details of the configuration of controllers. This is as important as the previous video for a proper understanding of MoveIt!

Configuring the controller manager

The controller file is a part of the trajectory execution launch files. So, we are now focusing on executing motion.

About controllers:

  • Trajectories are executed on simulated robots or real hardware.
  • Trajectory execution is controlled by a controller on a simulator or hardware driver.
  • Communication happens over ROS topics and action servers.

Gazebo is controlled by gazebo_ros_control (all in hrwros_gazebo). Gazebo controls motion and knows poses.
MoveIt! is controlled by moveit_* (all in hrwros_moveit_config). MoveIt! plans movement and manages the controls in Gazebo.

  • In hrwros_gazebo, all controller files live under the config folder.
  • Joint state controllers contain a name, a type, and a publishing frequency.
  • Trajectory controllers contain a name, a type, a list of associated joints, their constraints, and some other information to do with tolerances.
  • Controllers are provided as ROS action servers: They need to be powered by nodes! We can launch them using launch files.
  • In MoveIt!, we need to list all the earlier defined controller clients we want to use, and their namespaces. We also define their action namespaces, their type, and the joints they control (from the gazebo controller).
  • Finally, we need a launch file for our MoveIt! controller, where we define a name, which controller manager system we want to use from MoveIt!, and the file from the previous point where we defined the controller.

Now, we are all set to actually move our robot arms!

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]