The aim of this project is to develop an algorithm for tracking an autonomous robot by using a set of sensors. The robot, a DiddyBorg rover-type robot, is programmed to follow a black line inside a closed area surrounded by walls. The robot is equipped with an inertial measurement unit (IMU), which is a combination of accelerometer, gyroscope, and magnetometer. In addition to the IMU, the robot is also equipped with an infrared detector, a motor controller, and a camera module. The IMU will measure the acceleration as well as the angular rate of the robot from three orthogonal body axis. Using the angular velocity measurement from the gyroscope, the acceleration reading from the IMU
can be transformed into the inertial frame to become the acceleration in the inertial frame. The velocity and the position of the robot are then readily obtained by integration of the acceleration. However, as time increases, the error will be accumulated, and hence the deviation from the actual position grows. The camera system will detect several predefined rectangles which contain unique QR codes with known position attached in the wall. These measurements can be used to correct the position estimate obtained by twice integration.
The sensors are connected to the main computer which is a Raspberry Pi. The Raspberry Pi system responsibles to handle all sensor measurement preprocessing and logging. It can also be used to transfer the recorded measurements data to other means. The project consists of two parts. In the first part, we develop and verify the sensor model for the IMU and camera system. We develop and verify the sensor model. This includes the following steps:
- Derivation of the sensor model,
- estimation of the model parameters
In the second part of the project, we combine the sensor model developed in the first part with a dynamic model and a sequential estimation algorithm to obtain our final robot tracking system.
The project contains both theoretical and practical parts. In the practical parts, you will need to take measurements using the robot and you will need to allocate time for this. You also need to write two reports: one intermediate report on the first part and a final report which includes the results from both parts as well as improvements of the first part based. The final grade of the project work will be based on the final report.