I’m working on getting our Turtle rover upgraded to the newest ROS-based Leo OS. The end goal is to use ROS and rtabmap or hector_slam with a Lidar mounted on the bot for autonomous driving.
I’ve tried the Turtle to Leo upgrade guide, and got the latest image (“tr_2019-07-15.img.xz”) running on our old raspi 3, but it had some issues that prevented me from actually using that image.
It kind of worked, but there were some issues with the leo service, and with ROS communicating with the Turtle Hat. I was able to get ROS connected to roscore running on my laptop, and could send commands to the tr_hat_bridge nodes, but the Web UI wasn’t working, no motor/servo control from there. I could get it to show battery voltage in the UI if I manually did ‘rosrun tr_hat_bridge tr_hat_bridge’, but that was it.
All of this, plus the fact that I want to run a new RPi 4 in the Leo, made me look at a fresh OS build. Ubuntu Core doesn’t have support for the RPi 4, and Ubuntu Mate support is in an early dev state so I didn’t want to use either of those.
I decided to just use Raspian Buster, which works on both RPi 3 and 4, and supports ROS Melodic (which is what I have installed on my linux dev environment).
So currently I’m building ROS melodic on the RPi. I didn’t want to deal with the QEMU build so I’m just taking the slow route, and doing all the compilation on the RPi. I’ve essentially followed the install scripts from the turtleos github repo, replacing ‘kinetic’ with ‘melodic’. I’ve also been following this guide: https://www.instructables.com/id/ROS-Melodic-on-Raspberry-Pi-4-RPLIDAR/
and this forum post: How to install ROS on a Turtle Rover - Tutorial
(for a few config.txt changes needed to enable communication with the turtle hat)
Right now, the RPi is building the ROS-Desktop environment plus the TurtleOS dependencies. If that fails, I’m going to try compiling the ROS-Core environment which is a lot lighter. I’m sure the RPi 4 could handle the compilation, but it won’t get here until Monday.
Once ROS is built, I just have to switch back to the pi user, create a catkin_ws folder and pull the tr_ros repo. Then I build that as my new catkin workspace, source the devel/setup.bash file, and I should have a working RPi with ROS and the tr_ros nodes.
If all of that works (or if it doesn’t haha), I’ll make sure to post a full guide here so anyone who wants to can do the same. I can post an OS image too, once I have a working system.
Is there any major reason Leo still uses kinetic besides that having been the major release when development started? Is anyone seeing any obvious roadblocks or reasons this will fail, or anything I’ve overlooked here?
I’m sure I’m forgetting some details or something important… oh well