Clearpath Robotics Accelerates Algorithm Development for Industrial Robots

“ROS is good for robotics research and development, but not for data analysis. MATLAB, on the other hand, is not only a data analysis tool, it’s a data visualization and hardware interface tool as well, so it’s an excellent complement to ROS in many ways.”


Shorten development times for laser-based perception, computer vision, fleet management, and control algorithms used in industrial robots


Use MATLAB to analyze and visualize ROS data, prototype algorithms, and apply the latest advances in robotics research


  • Data analysis time cut by up to 50%
  • Customer communication improved
  • Cutting-edge SDV algorithms quickly incorporated
OTTO 1500 self-driving vehicles for materials transport.

OTTO 1500 self-driving vehicles for materials transport. 

As demand for warehouse automation grows, so does the need for sophisticated self-driving vehicles (SDVs) that can transport materials among manufacturing stations and production lines. To move goods autonomously without assistance, SDVs employ advanced algorithms for laser-based perception, computer vision, fleet management, and control.

Engineers at Clearpath Robotics use MATLAB® to speed up the development of these algorithms for the company’s OTTO line of SDVs and to advance robotics research.

“MATLAB provides our teams with an efficient language for developing and prototyping algorithms,” says Amritpal Saini, perception engineer at Clearpath. “For example, if we are working on a computer vision algorithm, we can perform the matrix inversion with a single line of code. MATLAB enables us to easily manipulate and visualize high-dimensional data without importing libraries or doing the other legwork that would be required in C++ or a similar language.” Ilia Baranov, engineering manager at Clearpath, adds, “Prototyping rapidly in MATLAB is a key step along the path to integrating a new sensor or component and analyzing the data that it produces.”


Teams on both the industrial side and the research side of the Clearpath engineering organization need to analyze and visualize large, complex data sets. The teams found that performing these tasks with Robot Operating System (ROS) or by writing programs in C++ or Python was slow and inefficient.

In addition to their shared requirements for faster analysis and data visualization tools, each team had its own distinct needs. Saini and his colleagues on the industrial side of Clearpath needed a way to rapidly prototype ideas and incorporate new algorithms from the researchers outside the company with whom they collaborate. On the research side, Baranov and his team work with numerous disparate systems, interfaces, and data structures, and they wanted a tool that complemented ROS capabilities, making it easier to process and analyze ROS data—including live streaming data and data captured in rosbag log files.


Clearpath engineers use MATLAB with Computer Vision Toolbox™, Optimization Toolbox™, and Robotics System Toolbox™ to prototype algorithms and analyze and visualize data for robotics research and development.

On a recent project, Saini and his team used MATLAB and Computer Vision Toolbox to develop an algorithm that detects objects in 2D lidar point clouds and matches the objects against a library of standard object templates. They later used the prototype MATLAB algorithms as a golden reference for building and verifying the final production version of the algorithm.

On another project, the team used MATLAB to develop fleet management algorithms that use agent-based modeling to guide a group of OTTO robots as they work together to complete missions. The team used Optimization Toolbox to minimize specific metrics—for example, completing the mission in the shortest time or within the shortest distance travelled by the robots. The individual robots in the fleet ran control algorithms developed and tuned in MATLAB.

The Clearpath research group takes on a range of projects, from evaluating and incorporating new sensors to basic research, using MATLAB and Robotics System Toolbox to analyze ROS data.

For example, while Baranov’s team was evaluating and integrating a new 3D lidar sensor, they identified a problem with the lidar output. The team used Robotics System Toolbox to import data from rosbag log files generated by the sensor. Working in MATLAB, they analyzed and plotted the timing of the lidar pulses to diagnose the source of the problem: a damaged mirror array within the sensor.

The team followed a similar approach to characterize the stopping distance of Clearpath robots. They used an indoor motion capture system to log data as the robots applied their brakes while traveling at various speeds and across a variety of surfaces.

Using MATLAB and Robotics System Toolbox, the team developed automated testing scripts that caused the robot to accelerate to a specific speed and then stop. The scripts then repositioned the robot and repeated the acceleration and braking.

Following the tests, the team imported the motion capture system data into MATLAB for postprocessing. They plotted acceleration and velocity, and identified inflection points to construct detailed braking profiles for the robots.


  • Data analysis time cut by up to 50%. “We’ve used both Python and MATLAB to work with lidar sensor data, and I estimate that analysis and development was one-and-a-half to two times faster in MATLAB,” says Baranov. “That’s due to the built-in functions that make it simple to pull data from a stream, graph it, and perform other actions without having to code them all ourselves.”
  • Customer communication improved. “Because many of our customers use MATLAB, it serves as a common language that speeds up all aspects of a project,” says Baranov. “It minimizes misunderstandings, reduces support time, and enables us to send examples that are easy to understand.”
  • Cutting-edge SDV algorithms quickly incorporated. “Most of the code written by the researchers we collaborate with is written in MATLAB,” says Saini. “That makes it easy to incorporate their research into prototype MATLAB algorithms, which we can later use to validate the production implementation.”