Microblocks.

MicroPython.

ROS2.

Two robots in one

Rosmo can be used for two different applications:

  • A STEM learning platform using microblocks with custom tools designed to learn and experiment with robotics.

  • A robot to introduce new Students and hobbyists to Python & ROS2 programming with the same tools, languages, and libraries used in professional and industrial robots.

Microblocks

1) Download ESP32-S3 bin

3) Visit ESP web tool in a Chrome browser

5) Connect ESP32-S3 and flash device (you may need to hold the ‘boot’ button)

7) Use the Pilot version in Chrome

8) In Microblocks; Cog icon > Install ESP firmware from URL > Paste https://microblocks.fun/downloads/pilot/vm/vm_esp32-s3.bin

9) Download this raw UBP file and open it in the Microblocks app.

Current status: Working but encoders not yet configured.

ROS2

Software; Best if you want to learn ROS2 based on Linorobot2

Status: Wheels spinning, encoders working but not fully tested yet.

Thanks to John Vial for contributing this code

  • Install Docker
  • in a terminal: docker run -p 6080:80 –security-opt seccomp=unconfined –shm-size=512m samuk/rosmorobot:humble
  • Open browser to http://127.0.0.1:6080/ fullscreen the Linux desktop tab
  • Open firefox in the virtual machine, open this page so you can copy/paste
  • in a second tab download & extract https://github.com/rosmo-robot/linorobot2_hardware
  • Get your IP address from your router or AngryIP.)
  • In file browser navigate to /Downloads/linorobot2_hardware-master/config/custom
  • right click on rosmo_config.h & open in pluma (put in your wifi credentials at line 116, set the agent IP at line 113 & lidar ip at line 129 to the address of your computer, save the file
  • open a terminal paste curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py python3 get-platformio.py sudo mkdir -p /usr/local/bin sudo ln -s ~/.platformio/penv/bin/platformio /usr/local/bin/platformio sudo ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio sudo ln -s ~/.platformio/penv/bin/piodebuggdb /usr/local/bin/piodebuggdb
  • cd /Downloads/linorobot2_hardware-master/firmware/
  • pio run -e rosmo
  • Open a file browser & search for .bin
  • Send the .bin file to yourself via email or Google drive
  • In your normal Windows/Mac desktop environment visit ESP web tool
  • Connect ESP32-S3 and flash device with the .bin file
  • Back in the terminal on your virtual machine; ros2 launch linorobot2_bringup bringup.launch.py micro_ros_transport:=udp4 micro_ros_port:=8888
  • In a browser access http://localhost:8888/ to get teleop UI
  • Have fun

MicroPython

Status: Beta released providing Webui to drive the robot with encoders

Please see Micropython repository

Thanks to Alex for contributing this code There is also a course from Coder Dojo

Openbot (Android) software;

Status: Needs tweaking for ESP32S3

C++/ Arduino software

Status: Doesn’t exist yet, Might be interesting to do something with Arduino Mecanum and maybe Smartcar Shield at some point. Perhaps building on this C reference document

Possible learning journey

  • Assemble 2WD bot
  • Drive 2WD bot with Microblocks remote control from Android
  • try to make the robot drive in a straight line
  • Configure the encoders in microblocks and try again
  • Add a pair of mechanical bump sensors, in microblocks do bump & run
  • Add a sharpie - Draw a straight line on a large piece of paper
  • Draw your initials
  • Add a pair of line sensors, follow a line
  • Add 2x wheels to make a 4wd bot
  • Configure Microblocks to run 4WD
  • Try and make it go in a straight line again
  • Complete the parking challenge using microblocks
  • Add Mecanum wheels.
  • In Microblocks make the robot go sideways with remote control
  • Complete the parking challenge again without making the robot turn at all
  • Install an IMU & configure in Microblocks
  • Add a ESP32 cam and watch the livestream from a computer
  • Install a grabber & move an object from a to b in the parking challenge
  • Move two objects
  • Add a daughterboard with 2x oled
  • Load the robot eyes in microblocks & make the eyes interact with the controls
  • Install thonny/ micropython and complete steps 1-15 in Micropython code
  • Install ROS and complete steps 1-15 again
  • Install a Lidar and map a room
  • Run the robot. A lot.
  • Add the protoboard add on - Add a novel sensor to the bot and get it working
  • In easyeda create a daughterboard to your own design

Further robotics resources