Qbo’s implementation of SLAM

The Qbo social robot project is very interesting. At least what is an example of the use of open source software (OS Linux and the operating system for robots – ROS).
And also – a clear example of the use and implementation of various methods of robotics.
More recently, we have considered such a thing as SLAM. Using the Neato XV-11 vacuum cleaner robot as an example, we saw how SLAM works based on data from a laser rangefinder (and odometry). On the example of the Qbo robot, we can consider the implementation of visual SLAM.

Odometry Qbo

Qbo uses two motors (rotation speed – 170 RPM (Revolutions Per Minute – revolutions per minute)), and a rotary encoder is used to receive feedback.

This is standard practice for mobile robots.

Using an encoder allows you to find out how many revolutions of the wheel you need to make for the robot to drive in a straight line.
To correct the error between the desired value and the value read by the sensor, a PID algorithm is used.
Thus, if you want the robot to go perfectly straight, then you need to read the values ​​​​from both encoders and adjust the control signal applied to the motors as necessary.

The use of encoders allows you to estimate the position of the robot in a particular area, while it moves through it, but the accuracy of the estimate decreases as it moves.
This happens due to many reasons:
* different wheel diameters;
* Wrong wheel alignment;
* slippage of wheels on the surface;
* accumulation of coding errors.

Therefore, it is usually not possible to get by with encoders alone, and methods for integrating information from different robot sensors (inertial system (IMU, INS), global positioning system (GPS, GLONASS), laser rangefinders, vision system) are used.

As a result, we arrive at SLAM (Simultaneous localization and mapping) – a technique that allows you to build a map of an unknown room using robot sensors and / or vision and determine the position of the robot on this map.

SLAM at Qbo is based on stereoscopic vision (two high-resolution webcams are mounted in the head of the robot) and the resulting odometry.

The demo video shows Qbo’s fully offline navigation around the office.
The blue arrow corresponds to the position of the robot, based on odometry alone, and the yellow arrow shows the position of the robot corrected by the Kalman filter. On images captured from webcams, green circles mark key points between which a match was found (green line), and which represent a place in three-dimensional space. These points are added to the Kalman filter status matrix to create an environment map.

Qbo’s implementation of SLAM

The SLAM algorithm is implemented by Qbo in the form of three tasks:
one. The first task is to calculate the movement of the robot. For this, a robot driver is used that sends an odometry message.
2. The second task is to discover key points (features – features) on a sequence of images from cameras and an assessment of their position in three-dimensional space:
To detect key points, the method is used GoodFeaturesToTrackDetector from OpenCV. Then, for the found points are calculated SURF– descriptors that are mapped to each other by the OpenCV method BruteForceMatcher.

Also, points are tracked by a thinned-iterative pyramidal version of the optical flow Lucas-Canada (Lucas-Kanade optical flow in pyramids). This avoids finding new cue points in areas where they are already being tracked.

Thus, the Node receives a Message with a synchronized image and sends a Message with a point cloud (PointCloud) containing the positions of key points (features), their covariance in three coordinates, and SURF descriptors.

3. The third task is to implement an Extended Kalman Filter and a data association algorithm based on Mahalanobis distance (Mahalanobis distance) from the point cloud that the robot sees and the point clouds on the map.
To do this, the Node reads the Odometry Message and the PointCloud Messages, and as an output, sends the Odometry and PointCloud Messages with the position of the robot and key points included in the map.

Qbo’s implementation of SLAM

Leave a Reply

Your email address will not be published.

Scroll to top