NE-Five Upgraded, ROSSerial and RP2040 Based Boards

I thought I’d share a link to an update on my ROS based robot, NE-Five. The item that’s most likely of interest is using ROS with a Pimoroni Yukon board.

Disclaimer: I know the person who designed the Yukon but bought mine and I’m certainly not getting paid for this :sweat_smile:

The Yukon is an RP2040 based board that has six module slots that let you customise the setup to whatever you need. In my case I’ve four of the big motor and encoder modules for my mecanum motors/wheels, one LED strip module, and a quad servo direct module for the torso linear actuator.

For reasons of “I’ve not had enough time to learn it yet” I’m still using Noetic rather than ROS2, so ROS Serial seemed the way forward to get things up and running. The Yukon runs on Micropython, there’s a C++ firmware coming but low priority I think, so the micropython-rosserial seemed the way forward. That’s a link to my fork as the original only supports ESP32 boards and there were a few quirks that prevented it working on the Yukon.

You’ll need my fork for the GenPy library too. One big caveat here, and I’ve not fixed it yet, is that the message generator will create an md5 of whatever msg file you feed it, that includes comments and whitespace! As I understand it, these are stripped out by the full GenPy library so if you get an MD5 mismatch, this is likely why. Manually stripping out the comments and copying over to the Yukon seems to work.

I need to write up the rest of my notes on this, as it stands though I’m able to control the robot with velocity messages, or driving manually with a joystick, and I’m now able to publish odometry too. I’m still getting that working though now I’m able to generate the actual data, the rest should be easier. I hope…

If anyone has any questions about the Yukon, let me know. If I can’t answer I should be able to pass questions on to the designer easy enough.