Creating a robot system can be a very complex and time-consuming project, and one of the most difficult is determining which sensor configuration is best for your robot’s purposes. We won’t be considering 3D Lidar as their minimum cost is around $10K. The following are 5 points to consider when choose between a stereo camera or Lidar for robot navigation:
1. Flat-terrain Mapping Accuracy
If your project requires millimeter level precision, such as for industrial projects or self-driving cars, Lidars require much less processing to convert the raw data to a point cloud and then to an occupancy grid, allowing for faster rates when the robot is moving. Stereo camera mapping is based on depth approximation, which will always have a centimeter levels of error.
2. Complex-terrain Mapping Accuracy
Once the terrain introduces slopes or bumps, which is most outdoor areas, Lidar loop closure tends to get lost because the algorithm assumes the map is in 2D. Stereo cameras can create 3D occupancy grids, using rtabmap or octomaps. For drones, stereo cameras or 3D Lidars are a must.
If you’re just getting started with robot navigation, we recommend you buy the RPlidar A1 and test it out on gmapping. These are the simplest ROS packages to get started with SLAM, or Simultaneous Localization and Mapping, the foundation of most professional robot applications.
2D Lidars can cost as low as $100 if using the Rplidar A1, but usually cost between $300-$20K for production systems. The best low cost stereo cameras are either the Intel D435i at $200 or the ZED Mini at $450. More expensive industrial grade options exist, too.
5. Obstacle Avoidance
Stereo cameras are almost always better for general purpose obstacle avoidance. They can do GPU-based inference for neural network-trained objects, like YOLO, detect multiple planes at close proximity, detect cliffs, and can create custom edge or color based Computer Vision algorithms. 2D Lidars have the advantage that they can work in dark environments and require less processing overall but can only work in 2D.
For beginners or environments that have flat terrains, we recommend the 2D Lidar, and for complex environments that have various terrains and obstacles, we recommend the stereo camera. If the robot can have multiple sensors, that would overall increase the effectiveness of the system, but keep in mind it can be challenging to integrate various sources of data.