I ran across this “[u]Choose between LIDAR and Stereo Camera Robot Navigation[/u]” post today, which touches on a subject I have thought a lot about since getting my GoPiGo3 robot over three years ago.
I started trying to create “occupancy grid” (map) for my GoPiGo3 using the DI Distance Sensor mounted on servo. The math was oppressive and I got mired in frame-transform mud trying to use someone else’s ultrasonic-sensor-ROS code in the GoPiGo3 “frame”.
Another coding/learning excursion for my bot was to use the PiCamera as a light, motion, color sensor, and also to use OpenCV for lane following and object detection (Knowing the difference between my wife’s green Crocs and the green LEDs on Carl’s dock).
One of the attractions of ROS for me has been the idea that someone already figured out the math and created a software-integrated-circuit component that I could “simply” connect to with a few wires / lines in my programs and voila, my GoPiGo3 would know where it is. (Understanding those “simple wires” is almost as complex as understanding the underlying math.)
For my robot(s), I often vacillate between wanting the simplicity of a bug’s life “responding” to stimulus without needing to be fully aware of the world, and wanting my bots to move up the function hierarchy toward “observing”…“remembering”…“thinking” … “understanding” … “learning.”
One of the basic principles of ROS is to allow decentralizing the computation, so many ROS robots are quite lifeless without WiFi communication with relatively supercharged off-board processing. I want “all that and more” to occur autonomously on 20-25Wh batteries, with a “must be on-board” RPi3B(+).
In parallel with folks writing more modules for ROS, there are folks packaging enormously complex code, a graphics processor (GPU), and multiple cameras together to bring a “camera with depth” sensor that can actually be used for on-board vision processing. The “discontinued or not?” Intel RealSense product, the Zed line, and one I expect in December - the Oak-D-Lite.
All this is to say “A Robot’s Life Is Complicated”