Perception is one of the main features that differentiates robots from just machines.
Perception is what makes a robot possible to perceive its environment and then, take decisions based on its current situation and its goal.
You can do perception with a 2D laser, but if you want to go to the next level of robot autonomy, you will need to use either images, point clouds… or a combination of both!
Images are mainly used to recognize things. It could be recognizing faces, objects, or locations. You can also use images to compute distances to elements of a scene, but that it’s not its strong point. Actually, current algorithms computing distances to objects just from images are pretty bad.
In order to get distances to any element in a scene, it is better to use a point cloud. The point cloud is usually very precise providing a 3D map of distances to objects. This is useful to identify at which distance is the obstacle and at which 3D location. But also, point clouds are very useful to identify the shape of the objects around. Since you have a complete cloud of distance points, you can recognize the shape of a book, of a can, of a table…
In order to make image processing available to everyone, there is a library that provides the implementation of the best algorithms for image processing. That is OpenCV.
In order to make point cloud processing available to everyone, there is another library that provides the best point cloud processing algorithms. That is the PCL (Point Cloud Library).
If you want to become a robotics developer, you will need to master those libraries. Maybe now it is a good time to go and take some tutorials on it:
- Here a tutorial to learn OpenCV in Python
- Here a tutorial on OpenCV in C++
- Here a tutorial to learn the Point Cloud Library in C++
- Here a Live Class I delivered about basic usage of OpenCV with ROS.
Those are basic tutorials. Let me know if you know about better tutorials to learn those subjects so we can share it with the audience.
So, what are you waiting for? Go and learn it!