Every robot needs a brain. Arduinos, teensys & raspberry pi’s are popular first stops for hobby robotics. In this case with so many disparate systems that I’ll be building in multiple stages a microcontroller or collection on a serial bus would quickly become a documentation and debugging nightmare. It is also not a very professional system and this project is a learning opportunity after all.
Enter ROS, the Robot Operating System. A complex series of applications and packages designed to run on top of an existing oppearing system (linux, windows) for the purposes of robotics. Somewhat similar to MQTT for internet applications, ROS allows various nodes running on the host machine and across a network to publish and subscribe to topics, data streams. These nodes can then process data and publish it for other nodes. A classic example is one node processing video from a webcam through openCV, then publishing distance and mapping data. That stream is then accessed by a PTZ inspection camera to automatically focus on points of interest whilst a path finding node mapse a route which is published to a motor controller connected to the network.
My first thought was a raspberry PI. However despte their cheap cost out of the box, by the time you purchase screens, memory cards & power supplies you can quickly spend $200 for something that is fragile, not very powerful and difficult to work on. Instead I bought a used Lenovo X220 Thinkpad from an auction for $80, bought a new battery & charge cable from Ebay for $38 and was given a 250GB SSD drive from a friend for free. It even came with a windows 7 license if I wasnt already planning on running Ubuntu. Now I have something I can record lots of data for playback (another feature built into ROS) easily work with it whenever I want and dont have to worry about a stray static shock damaging my brain.
All I need to do now is learn how to use ROS…..