Skip to content

Incomprehensible/Mad_Bot

Repository files navigation

Mad_Bot

Exploratory project in Embedded Robotics and Swarm Algorithms

Warning: This is an ongoing project, and the repository is under construction!

Features

  • Small PCB-based frame, minimum 3D printed parts
  • ESP32-S3 MCU with vector instructions, acceleration for neural network computing and signal processing workloads
  • Wi-Fi, Bluetooth 5 and BLE connectivity
  • Omnidirectional movement
  • Quadrature encoders for precise movement
  • 8 MB PSRAM for image processing
  • 2 Megapixel camera and ToF sensors for running embedded robotics algorithms
  • Powered via USB-C or 3000mAh LiPo battery with inner protection and external charging circuit
  • Load sharing circuit for operating the robot while charging
  • Buck-Boost converter for powering the MCU and peripherals
  • 6V regulator for powering the middle power range motors
  • ESPNOW, ESP-WIFI-MESH or ESP-BLE-MESH for communication between several robots
  • Integrated MEMS microphone for sound recognition
  • micro-ROS support

Note: Software support for some features is still in progress.

Fusion360 design

URDF model

Details
Robot Wheel

Operation demo

Details
Forward movement Backward movement Rotation

Charging mode

Details

Board layout

Details

Future work

  • Add a BOM
  • Design a carrier extension in Fusion360
  • Test battery charging circuit
  • Test load sharing circuit
  • Test basic functionality with motors and ESP32-S3
  • Test Wi-Fi
  • Motors library (in progress)
  • Encoders testing
  • Device firmware (in progress)
  • Sensors testing (in progress):
    • Camera
    • ToF
    • IMU
    • MEMS microphone (requires PCB bug fix)
  • Remote controller based on ESP32
  • PSRAM memory testing
  • ROS2 integration via micro-ROS (in progress)
  • Web page with control interface and telemetry
  • URDF model
  • Joystick control via ROS2
  • Digital twin for simulation in Gazebo and Mujoco
  • ESPNOW and Mesh experiments
  • Multi-agent algorithms
  • Computer vision algorithms
  • Mini SLAM experiments

Fix list for new hardware revisions

  • MEMS microphone footprint flipped
  • Non-fixed Buck-Boost mentioned in the schematics instead of 3.3V fixed
  • 6V regulator doesn't disconnect the load if disabled because of topology - extra switch needed
  • Battery connector is hard to remove - source power switch needed
  • Better (aligned) placement for camera & ToF sensors

Software Troubleshooting

micro-ROS build issues

If you encounter issue like this building micro-ROS for the ESP32-S3 platform, edit libmicroros.mk file at line 110 to include esp32s3 as follows:

ifeq ($(IDF_TARGET),$(filter $(IDF_TARGET),esp32s2 esp32c3 esp32c6 esp32s3))

Acknowledgements

This project takes inspiration from the following open-source projects: