Documenting a self-study exercise of working through the Robot Mapping course offered by the Autonomous Intelligent Systems lab at the University of Freiburg.
- Autonomous Intelligent Systems #1: Robot Mapping
- Autonomous Intelligent Systems #2: Robot Mapping
- Autonomous Intelligent Systems #3: Robot Mapping
The course uses Matlab but as an extra personal challenge I am porting the code to work with Python3 as I proceed forward.
Before attempting the problem set (sheets) complete the slides+recording on the following topics.
- Course Introduction
- Introduction to Robot Mapping
- Homogeneous Coordinates
Exercise 1: Skipping as just an intro to Octave.
Exercise 2: Implement an odometry model.
Run main.py
which should generate an image for each time step. The figures
will be saved to the /plots
directory. Next, from the /plots
directory run
the following command to generate a video from the images.
$ avconv -r 10 -start_number 0 -i 'odom_%d.png' -b 500000 odom.mp4
The output should represent a stream of a robot in motion with the visualization of the landmarks that the robot is sensing at each time step.
Exercise 3:
3.a
v2t()
and t2v()
are defined here.
Chaining transformations is the result of applying the dot operator to each transformation matrix in order. An example of a composition can found here.
3.b Given two robot poses \(x_1\), and \(x_2\) how do you get the relative transformation from \(x_1\)to \(x_2\)?
3.c Given a robot pose and observation z of a landmark relative to \(x_t\) compute the location of the landmark.
We can complete the exercise by converting the robot pose to a homogeneous
transformation using the v2t()
function and taking the dot product with the
homogeneous representation of observation \(z\). Note that if we were given the
location of the landmark in the world frame, we would need the inverse of the
transformed pose \(x_t\), to map the landmark location to a coordinate in the pose
frame.