Students that study for their Master's Degree at the Faculty of Electrical Engineering (University of Ljubljana, Slovenia) and choose the Control Systems study programme are learning new approaches in problem solving related to development of autonomous mobile systems. Lectures include theoretical knowledge that needs to be, then, transferred into practice during laboratory sessions. One of such sessions includes using LIPS, the Local Indoor Positioning System, with the aim to localize and control a mobile system in a closed space with the help of a Real-Time Location System (RTLS).
The laboratory session required from the students to upgrade a robotic vacuum cleaner (robovac), namely an iRobot Roomba. The upgrade featured a system for localization and autonomous driving among various obstacles and towards different targets in the indoor area. To achieve that, eight LIPS anchors were statically mounted below the ceiling and a LIPS tag was installed on the Roomba, and a Raspberry Pi B+ was used as the main controller that communicated with both the LIPS tag and the Roomba robovac. Communication between the Raspberry Pi and LIPS tag was done using the serial port over USB, and students wrote their code in Python. The code included reading the robot's position from the LIPS tag and forwarding movement commands to the Roomba robovac in order for it to reach its target. Since laboratory sessions last a limited amount of time, LIPS API libraries were used which facilitated the communication and shortened the required time of development. In this way, students could have really focused on implementing algorithms they had heard on lectures, and did not have to waste any time on trivial tasks such as serial communication.
Finally, students were required to further upgrade their solution and navigate the robovac between different stations that are defined by their global coordinates, so the robovac needed to know its absolute position in the indoor area. Therefore, the robovac's position was not enough and its orientation needed to be known as well. Besides, when measuring positions using LIPS the noise variance is relatively high and these measurements cannot be used directly to calculate the regulation error. Luckily, we can use the wheel odometry data (i.e. by measuring relative wheel rotation) but this approach is only good for short distances. We therefore have two different measurement sources and can fuse them using e.g. the Kalman filter.
Students were therefore required to implement the extended Kalman filter and since this is something every Control System engineer basically understands it was not a problem at all. Odometry data was used in the prediction step of Kalman filtering, where these data contributed to predicting the expected absolute position based on current position and the measured wheel rotation. The expected position was, then, corrected in the update step of Kalman filtering using data obtained from LIPS. Both steps can be recursively repeated, leading to a better determination of position.
The developed solution proved feasible and was also used for showcasing what students at the Faculty of Electrical Engineering can do. The solution was shown on an event where the lobby with LIPS anchors mounted above was crowded – despite the crowd, the system was still capable of autonomously finding its targets.
You can see the video on YouTube:
Students reported that such laboratory sessions were the definition of engineering fun as they were required to show positive attitude in solving practical problems using theoretical knowledge from the lectures. Since the developed solution was chosen as a showcase example, they most certainly did a great job. Of course we are, too, very proud of them – they demonstrated that LIPS can help them learn how to control autonomous mobile systems.
Would you like to find out more about LIPS?
see LIPS webpage