What is the ROSRider?

ROSRider is a low-cost robot control board, that can be configured for any differential drive robot

ROSRider Robot Control Board
  • ROSRider aims to be an Open Source robot control board that lowers the barrier for building a ROS based robot
  • In technical terms: ROSRider provides a ROS-Native Hardware Abstraction Layer, that allows any differential drive robot to be controlled
  • In simple terms: ROSRider, plugged to a USB port, turns any system into a ROS based differential drive robot
  • Any motor, any reduction rate, any encoder configuration can be used
  • Parameters such as gear ratio, encoder ppr, wheel diameter are passed from ROS to ROSRider board, thus allowing any encoder motor to be used as a servomotor
  • Using the ROSRider board, and commodity parts, one can build a ROS based robot easily

Specifications

Hardware Specifications

  • 32-bit ARM Cortex MCU
  • 6V to 15V wide input voltage
  • 70mA current consumption when idle
  • AUX 5V 500mA power, can be switched on/off by software
  • Two channel motor drivers up to 2.5Amps, with current feedback
  • 10bit PWM, up to 20khz
  • Hardware QEI, and signal conditioning for encoder input, to accomodate the use of any low-cost encoder motor
  • Supports single phase encoders, found in some low-cost motors
  • Driver for RGB LEDS
  • MOSFET Power switching, reverse current protection, polyfuse protection
  • Battery and current monitoring
  • On board RTC, can wake device from hibernate
  • 1024 byte serial buffer
  • Serial, I2C, SPI Ports
  • USB-CDC Serial up to 1Mbit
  • JTAG port for reprogramming
  • External reset, wake functions
  • Transient voltage supression diodes
  • Automotive quality parts
  • Uses standard JST connectors, and commodity JST cables

Features

Software Features

  • Compatible with ROS Melodic and ROS Noetic
  • Communicates with ROS over ROSSerial
  • Parametric

    ROSRider will requests parameters from ROS and will generate correct data according to the given configuration. Here are the configurable parameters:

    • update rate
    • motor polarity
    • encoder direction
    • encoder single phase or dual phase
    • encoder ppr
    • wheel dia
    • base width
    • motor deadzone
    • main current limit
    • motor current limit
    • battery volts low
    • battery volts high
    • max rpm
    • idle seconds before hibernate

    Under voltage, over voltage, over current, motor over current limits can be configured. If these limits are reached, ROSRider will disable drivers

  • Subscribers

    ROSRider will subscribe to following topics, providing PWM control of motors

    • /left_wheel/control_effort
    • /right_wheel/control_effort
  • Publishers

    ROSRider publishes the velocity and position of each motor at these topics

    • /left_wheel/state
    • /left_wheel/position
    • /right_wheel/state
    • /right_wheel/position

    ROSRider publishes a diagnostics message, containing current feedback, bus voltage, currrent and power, motor status

    • /rosrider/diagnostics
  • Services

    ROSRider provides a SYSCTL service for configuration, debugging, and testing and a LED emitter service for blinking LEDs

    • /rosrider/sysctl
    • /rosrider/led_emitter
  • ROS2 support is under development

Applications

ROSRider can be fitted to a 3D Printed Chassis, that is modeled after DuckieTown robot. Only a little bigger than the original DuckieBot, ROSRider board fits between axes, and RPI4 is located on the rear. It uses two N20 encoder motors, and few Pololu parts, and can run DuckieTown software with modification. The DuckieMod Chassis is OpenSource.

DuckieMod Chassis DuckieMod Chassis DuckieMod Chassis

Equipped with a LIDAR, ROSRider board can be utilized to build a robot that can run SLAM, Karto and Cartographer Navigation

ROSRider doing SLAM

Purchase

Production in progress. ROSRider will soon be available. Subscribe to our mailing list for announcements