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.

6.1.2 Behaviour design

Course subject(s) Module 6. Final

In this lecture, we will dive into how we program the behavior of a robot. We start with the basic and surrounding topics as: Behavior design methods and Robot state machines.

In this video you have learn the basic of designing robot behaviors.

In previous weeks you have learned to implement basic robot capabilities in ROS. Now, to create a complete application you need to coordinate the execution of the nodes implementing those capabilities, so that it results in the desired behavior. You have seen how this applies to our pick example:

  • Detect object – use available package /camera node
  • Compute grasp – outputs joint values /grasp_planner node
  • Move to pick – Use MoveIt! service /move_group
  • Grasp – commands gripper /gripper
  • Retreat – Use MoveIt! service /move_group
  • Coordination?

There are many behavior design methods: Finite state machines, Flowcharts, Behavior trees. In this course we will focus on state machines for robotics.

A robot state machine:

  • Defines behavior as a sequence of actions as a series of states that become active in an order given by the state transitions.
  • Thus they are appropriate to design sequential behaviors.
  • A a state represents an atomic action. Optionally:
      • consumes input data.
      • produces output data.
  • Representation of states and transitions in a state machine:
      • States – blobs
      • Transitions – arrows

Example: Pick state machine

  • Some states need input data: e.g. ‘Compute grasp’ needs the ‘object pose’

Pick state machine
Not all input and output data are specified in this image.

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]