Over the years I have built several small 2 and 4 wheel robotic carts using off the shelf hardware and rolling my own firmware. In each design I have added additional features and complexity such as gesture control and facial recognition. Now I'm looking at adding Lidar, object detection, avoidance and some degree of autonomy. This got me thinking that it might be time to make the jump to ROS as there are several good examples available with decent documentation and tutorials. as well as good support for the complex software thats makes me dizzy every time I think about having to do the code.
I chose ROS1 instead of using ROS2 mainly because my initial review of ROS1 looks a bit easier that ROS2 and apparently there are some issues with running WIFI on ROS2. I do plan to revist ROS2 once I get a bit more experience with ROS.
I already have Noetic running under Ubuntu 20.04 on my laptop, Noetic running under Ubuntu 24.04 on a RPI5 using Robostack and a PICO for motor control using Arduino and serial interface. So far I am able to complie using catkin and run code from my laptop to the RPI over WIFI.
LInorobot seems to be a good fit for what I want to do, but there are a few issues that I already know that will need addressing. I will need to change the encoder module as I plan to use a PICO PIO for the motor control and reading the encoders, In addition I will switch to rosserial instead of my current serial code so is unclear what issues I will encounter compiling rosserial for the Pico. Also I don't know whether Noetic will work with linorobot release 1.4.0.
Any help on poential gotchas, hints or anything else to watch out for is appreciated.
Mark
My current design:
2 wheel differential drive
PICO motor control and L298 dual motor driver.
RPI for main control
Rplidar C1 Lidar
TOF sensor
IMU
Camera