RADU: Motor Controller Software for Arduino and Raspberry Pico

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • rosserial

    A ROS client library for small, embedded devices, such as Arduino. See: http://wiki.ros.org/rosserial

  • A core package of ROS1 is the Rosserial. It supports several concrete microcontrollers, including the Arduino, STM32, Teensy. Effectively, this package is a set of C/C++ headers that you incorporate in your microcontroller code. Then, you can directly receive and send ROS messages using the imported ROS message format. The receiver, e.g. your single board computer, needs to implement a ROS server. Here, you can use either C++ or Python. There are several examples in the Github repository. I also recommend a great blog article about connecting ROS to Arduino with L298D to directly convert TWIST messages to motor controller PWMs.

  • ROS2 does not provide a package similar to rosserial. A technical study how serial communication could be implemented is the ROS2 serial bridge. The basic idea: Incoming data from the ROS2 network is serialized and send to the microcontroller, and received messages are translated to ROS2 messages. However, this not a concrete library.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • rclpy

    rclpy (ROS Client Library for Python)

  • Alternatively, you can use the default client libraries like rclpy or rclcpp for writing custom code that reads and writes ROS2 messages.

  • rclcpp

    rclcpp (ROS Client Library for C++)

  • Alternatively, you can use the default client libraries like rclpy or rclcpp for writing custom code that reads and writes ROS2 messages.

  • micro_ros_arduino

    micro-ROS library for Arduino

  • MicroROS is a project to implement a complete ROS2 node in your microcontrollers. The experimental MicroROS Arduino branch extends Arduino programs with additional C/C++ headers for full ROS2 compatible message subscription and publication. Specifically, its provides as precompiled binaries that support specific Microcontrollers such as the Arduino Nano RP2040 Connect or the Teensy 4.1. The list of natively supported ROS messages is impressive.

  • ros2arduino

    This library helps the Arduino board communicate with the ROS2 using XRCE-DDS.

  • The ROS2Arduino library support more powerful Arduino Boards with at lest 32KB RAM and a TCP/IP hardware. Internally, it is build on top of the Micro XRCE-DDS framework, which provides Serial, UDP or TCP connections. According to the documentation, it only supports ROS2 up to the Dashing Diademata distribution.

  • Micro-XRCE-DDS

    An XRCE DDS implementation. Looking for commercial support? Contact [email protected]

  • The ROS2Arduino library support more powerful Arduino Boards with at lest 32KB RAM and a TCP/IP hardware. Internally, it is build on top of the Micro XRCE-DDS framework, which provides Serial, UDP or TCP connections. According to the documentation, it only supports ROS2 up to the Dashing Diademata distribution.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • pymata4

    Discontinued A High Performance Python Client For Arduino Firmata

  • The Firmata Protocol provides an abstraction layer for communicating with a microcontroller to read and write its GPIO pins. Currently, it works with Arduino based microcontroller. To use this, you need to install the Firmata firmware on your microcontroller, and then use the client library for sending Firmata commands. The protocol support different client libraries, like Python Pymata4 or other languages like JavaScript and Ruby. There are no ROS abstractions, which means inside the client you would need to write custom code for processing and generating ROS messages.

  • u2if

    USB to interfaces implementing MicroPython "machine" module functionalities on a computer.

  • Still experimental is U2IF, a very specific library to run MicroPython code on a host computer, like an Raspberry Pi, to which a Raspberry Pico is connected via USB. The MicroPython environment gives full access to the GPIO Pins and additional bus systems like I2C or SPI.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Top 10 GitHub Repositories for Python and Java Developers

    21 projects | dev.to | 3 May 2024
  • Azure SDK is over 500 MB and growing on each release

    1 project | news.ycombinator.com | 3 May 2024
  • AI enthusiasm #9 - A multilingual chatbot📣🈸

    6 projects | dev.to | 1 May 2024
  • Install Asdf: One Runtime Manager to Rule All Dev Environments

    10 projects | news.ycombinator.com | 27 Apr 2024
  • A Rigorous Derivation of the Bubble Sort Curve

    1 project | news.ycombinator.com | 24 Apr 2024