5 Geometry in Robotics


This chapter covers

  • Working with objects in space: shapes and poses
  • Coordinate transformation trees
  • Common geometry representations and how to operate on them

In the previous chapter we concluded the big picture overview of robotics. In this chapter we start to zoom in on specific parts of the robot system. We stated before that robots are programmable general purpose machines that directly interact with the real world to perform tasks in it. A less complete, but still illustrative description depicts robots as general purpose motion machines. Motion is the topic of this and the next chapters. In other words, we focus our attention on the acting part.[1] At the same time, the concepts that you will learn here, together with their concrete realizations and the mathematics behind them, are also important in other parts.

There are four foundational concepts involved in robot motion: geometry, kinematics, dynamics and control. You will learn about them in this order. This first chapter, out of four chapters on robot motion fundamentals, is all about geometry.

The chapter concludes with a number of short standalone exercises in Python. Throughout the book, Python always means Python 3. I encourage you to take the time to utilize your newly acquired skills right away in these exercises. Gaining confidence with geometry and the associated topics from this chapter is time well invested, as the next chapters build on them.

5.1 Objects in Space

5.2 Math and Physics in Robotics

5.3 Position and Orientation

5.3.1 Vectors

5.3.2 Matrices

5.4 Poses and Coordinate Transformations

5.4.1 Homogeneous Coordinates

5.4.2 ROS tf2

5.5 Shapes and Surfaces

5.6 Practical Advice

5.7 Exercises on Geometry

5.8 Summary