April 28, 2021

Keep your robot grounded with SLAMcore’s latest feature

Posted by
SLAMcore

Walking around as humans we make hundreds of assumptions based on prior knowledge to help us navigate and to get from A-to-B. For example, our ‘priors’ tell us that each step in a flight of stairs is the same height, which is why we often trip if one is higher or lower than the others. These priors are shortcuts that, most of the time, are advantageous.

Robots do not come with any priors – especially when locating and mapping in a new environment. Using visual SLAM systems, they must analyse huge amounts of data to select the map and trajectory that best fit the data from an infinite range of possibilities in 3D space. Reducing the potential solutions as much as possible massively improves speed, accuracy and robustness of SLAM calculations.

Our algorithms do this in numerous ways, ensuring effective, real-time and commercial-grade SLAM using low-cost sensors and processors. At the most basic level we bake in some prior assumptions for our setups. We have two cameras, and we know the distance between those cameras and their field of view – so we know the overlap between their views. We can match features from one camera with the same features seen by the other to estimate depth and simply constrain distance. With an IMU rigidly connected to the cameras we can also determine the strength and direction of gravity.

Now we are adding a more sophisticated assumption that dramatically increases accuracy and speed of SLAM estimations. We call it ‘Tracking on a Plane.’ It is also referred to in the industry as tracking on a manifold.

Essentially, we create a ‘prior’ in the algorithm, that states the operational space has a flat floor and that the robot will always be a constant distance from that floor. It is not necessary to know where the floor is, and it is more complex than simply setting the vertical-axis to zero. The prior simply states that there is a floor and that it is normally perpendicular to the direction of gravity. As it starts up, the SLAM system looks for and establishes enough features in initial scenes to detect a floor and then sets it. Once fixed, one of the six degrees of movement is set with the algorithm determining that the robot cannot move above or below the floor. By setting a prior that one of these six parameters should be constant, the math needed to calculate maps and positions is made far more efficient. Roll and pitch angles can be constrained as well, as they should be constant travelling on a flat surface - this further reduces calculations needed to build accurate maps.

Setting the floor, or ground plane, not only improves accuracy and reliability in those three dimensions (vertical, roll and pitch), but because the calculations are more efficient, estimations of all degrees of motion become faster, more accurate and more robust. By setting the algorithm to track on a plane when it detects a floor, it can consider just the three remaining degrees of freedom.  A significant proportion of potential maps and trajectories can be rejected in this mode. Data is processed faster and error rates fall as the algorithm only has to fit data to this small subset of potential answers.

Tracking on a Plane is available out-of-the-box with our spatial intelligence algorithms. Customers can use the same software and frameworks to perform SLAM in six-degrees of freedom or just consider three-degrees of freedom for faster accurate localization and mapping when planar motion is assumed. We do not know of comparable systems that allow developers to use the same estimation framework for both 3 DoF and 6 DoF SLAM. The ability to select or deselect this function has a substantial impact on the cost and speed to market for anyone seeking to take robots from the lab, and into deployment at commercial scale.

Robot developers and designers can rapidly integrate this feature into their designs. This feature will save time in design as well as in testing and trialling. It can also reduce the total bill of materials as more efficient spatial intelligence algorithms can run on lower cost and lower power processors, as well as using cost effective cameras rather than expensive LIDAR systems.


Read more on our blog

Get the latest updates from SLAMcore

Sign up to our newsletter to hear about our latest releases, product updates and news