RADU: Motor Controller Software for Arduino and Raspberry Pico

ROS1

Universal Libraries

  • PhidgetMotorControl HC (1064)
  • Roboteq AX2550 Motor Controller
  • Robotis Dynamixel Servos
  • Esmacat Motor Driver
  • Chip Robotics

Arduino

ROS2

Universal

Arduino

ROS Independent

Universal

Raspberry Pi

Comparing the Libraries

  • Embedded ROS: This category means to run ROS and the code to control sensor and actuator on the same device. In ROS1, you can use rosserial to obtain ROS message interfaces and access to publish/subscribe function. The actual message passing is done via the serial connection to a connected host computer, on which you need to setup a ROS node. This library works with many boards. In ROS2, you can use the experimental MicroROS library. You have similar options to work with ROS2 message formats, but sending and receiving messages is done best via UDP and TCP. Therefore, you need more powerful boards which are equipped with TCP/IP hardware.
  • ROS Wrapper: In this category, you have a host computer to which the client microcontroller is connected. The host computer starts a ROS node that is responsible for reading, processing and writing ROS messages. The node code communicates with the connected microcontroller node via a custom message format that you invent. On the host computer, you would run rosc or rospy, and then add Firamata, RPI.Gpio and similar libraries that will implement your custom message format and send it to the connected microcontroller.
  • Full Integration: The third category are complete frameworks that handle the ROS abstractions and the microcontroller interface. In this category, we can only place Simple Drive for ROS1.

Conclusion

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Sebastian

Sebastian

IT Project Manager & Developer