Open hardware ROS2 robot.

BOM

~£60 ~$75 for 4wd can be reduced, by using existing powerbank for example

Components Description Quantity
Ziobot ORP Chassis Plates Custom PCB Chassis get fabricated at JLPCB, or solder your own 5
Motor with encoder 6v 150RPM $Bringsmart motors or $$Pololu 2
Motor Driver Zio H-bridge Motor Driver 1
ESP32-S3-C1 Olimex open hardware, UK US or generic version 1
N20 Wheel N20 rubber wheels or 3mm shaft Mecanum wheels A,B or C 4
Motor mount N20 mounts 1
USB powerbank battery case 1x or 2x 18650 battery or open hardware 18650 battery 1
3x 18650 Batteries 1
USB > Motor driver cable JST cable 1
Qwiic cable For connecting ESP32 1
Hex Spacers 45mm height M3 standoff 1
M2 Bolts & nuts 400pc Bolt pack 1
M3 Bolts & nuts From Bolt pack 10
Screw Driver 2 in 1 Flat and Philips Head Screw Driver 1
Optional IMU MPU6500 or BNO085 2
Optional LiDAR Kit for use with ROS2 LiDAR module, USB Cable and Data Convertor Box 1

Parts excluding PCB and motor driver are available on this List ensure you get correct quantities, eg 4x wheels and motors.

If you don’t get JLPCB to fabricate the PCB you’ll also need some 2.54mm screw terminals or a breadboard For connecting encoder

Note a previous iteration of this project used the Pi Pico dimensions, if you wanted that the PCB is here

Optional extras

Microblocks Software - Best if you’re just starting

Current status: Working but you have to build in Platformio to get ESP32-S3 support

Use the Pilot version from the bottom of the downloads page. Then to quickly get started download this raw UBP file and open it in the Microblocks app.

Ros2 - Best if you want to learn ROS2

Current status: I2C comms with Zio driver established and wheel spinning, but not working fully yet

  • Linorobot2 Zio driver now supported.
  • Virtual machine for download Ubuntu 22.04 with ROS2/Linorobot. For use with Virtualbox
  • On a Linux host; sudo adduser $YOUR-USER vboxusers then follow this guide reboot your computer
  • nano /linorobot2_hardware/config/custom put in your wifi credentials near the bottom of the file, set the agent IP to the address of your computer
  • cd /linorobot2_hardware/firmware
  • pio run -e esp32_zio -t upload
  • ros2 launch linorobot2_bringup bringup.launch.py micro_ros_transport:=udp4 micro_ros_port:=8888

Micropython

Doesn’t exist yet, might be interesting to do something with ESP32_Car_Platform & Motor driver code at some point

Arduino

Doesn’t exist yet, might be interesting to do something with Smartcar Shield at some point

## Configurations

  • 2WD

  • 4WD/ Mecanum

Alternate IMU

Older iterations

Top plate removed to expose battery layer Battery layer removed to expose motor controller, microcontroller, exposed motor/encoder connections. Mikrobus click footprint Not shown are screw terminals as I haven’t soldered them yet.