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.
-
Provides a block programing interface
-
Provides an Android app for remote control & detailed instructions
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
- Android app and Arduino for computer vision & AI
- https://www.openbot.org
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