AMB3R
(Autonomous Mobile Balancing 3D Robot)
(Autonomous Mobile Balancing 3D Robot)
During my third year I had to work on a individual research project and write a dissertation about it. I wanted to challenge myself and learn more about autonomous systems and 3D mapping and use my research findings to develop a robot with such capabilities. I felt inspired by an existing robot called ASCENTO and so, with my previous knowledge about balancing systems i designed, manufactured and programmed AMB3R.
The aim of my dissertation was to research the current issues with 3d mapping of unstable, dangerous and inaccessible environments and design a robot capable of traversing and mapping with great manoeuvrability in such environments without posing a risk and/or minimize human intervention. I selected a self-balancing differential robot as an optimal choice due to its high mobility compared to 4 wheeled vehicles, by implementing 3d mapping capability to such robot it possible to traverse areas with great control while creating a map for analysis and inspection, this was done by Ascento robotics with a similar robot used in the security sector to inspect and patrol areas where security is needed.
Ascento Pro
Develop a differential drive robot with 3D mapping capability using an affordable and commercially available depth sensor camera.
Give autonomous capability to the robot using Simultaneous Localization and Mapping (SLAM)
Make the robot capable of self-balance using feedback control system
Besides the main objectives I chose some smaller goals not required for the main robot functionality but added for increased capability.
Make use of the high torque servos at the hip joints to allow to control the robot hight movement, this should allow the robot to move in smaller locations and tilt its body.
Design a custom rechargeable battery and charger, this was done to learn more about power management and battery development.
I had to work with a small budget to select appropriate components to build a robot with such characteristics and features to produce a similar result achieved with the high-end and expensive components used in the Ascento Pro. Based on extensive research i found suitable components within my small budget:
2 DS3240 Pro Servos: 40kg servo motors, to change the robot height, high torque required
2 JGB37-520 12V 530 RPM DC Motors: Enough speed and torque to move the robot, cheap, low power
2 Encoders: Used to provide data about distance and speed travelled by the robot, its a must to develop an autonomous robot, built-in with the motors
6 18650 Li-ion batteries: to power the all the robot components and motors, used to make the custom battery
1 4S 40A BMS: Battery management circuit to protect, equalize and balance the custom battery
1 Power Bank: Separate battery to power the raspberry pi variant (ROCK PI 4 SE).
ROCK PI 4 SE: ARM based single board computer to run complex and heavy robotic systems (Autonomous Navigation, SLAM, ROS).
Teensy 4.1: Fast microcontroller, high RAM, runs the differential control and communicates with the ROCK PI 4 SE
IMU MPU-6050: Measures acceleration, orientation and angular rate, a proprioceptive sensor required to develop a balancing robot.
2 LM2596: DC step-down voltage regulator, feeds the correct voltage to the Kinect and Motor driver
XBOX 360 Kinect: cheap gaming depth camera, used to create a 3D map of the environment.
L298D Driver: Controls the large current need to operate the DC motors
DS3240 Pro Servos
JGB37-520 12V 530 RPM DC Motors and Encoders built-in
18650 Li-ion batteries
4S 40A Battery Management System (BMS)
Power Bank 5v
ROCK PI 4 SE
Teensy 4.1
MPU-6050
L298D Motor Driver
XBOX 360 Kinect
LM2596 Buck Converter
The electronic system can be defined with a simple architecture diagram for an easier understanding of the signals data and relationships
Creating a 3D map using ROS, RTABMAP and Kinect
Publishing odometry and velocity data from Teensy 4.1 to RVIZ
Controlling the differential robot manually through WI-FI while simultaneously mapping
AMB3R PID Tuning tests
Almost stable AMB3R test
Custom 14.4 V, 6000 mAh battery finished
Here is a 3D map example produced by the Kinect of my room using ROS and the appropriate drivers.
TUNED AND BALANCING AMB3R
AMB3R SIZES
AMB3R Cost: £430.40
Weight: 3.075kg
Power: 16.4v 6A 119W
Height Reach: 39cm - 59cm
Torque:6.2kg
Power runtime: 54 minutes
List of parts
This project has been the most complex one I have develop so far, Linux and ROS versions proved really difficult at first, taking at least one month to find a compatible version to make it work along with the raspberry pi variant (ROCK PI 4 SE). Another challenge was the ROS versions, finding the correct drivers that would work with the Kinect in a more recent version of ROS was hard, old versions of ROS lack support but eventually I learned how to make things work.
Sadly, due to time constraints I wasn't able to finish the autonomous and slam implementation. Building a package with SLAM required more time for research and testing. Besides of not achieving the main goal of autonomous navigation, the robot was indeed capable of balancing itself and create a 3d map manually.
If I had more time I would have made a few improvements:
Larger wheels for balancing improvements
Replace servos for steppers or high-torque DC motors
Implement suspension to aid motors on changing robot height
Implement a cascading PID algorithm with the speed control loop and balancing control loop for a more stable balancing
Replace Kinect for a smaller depth camera
Design PCB for better connections and ease of operation, fixing and replacing.
Design and implement covers to protect internal hardware.
I'm satisfied with the work done and with the new knowledge obtained, i will continue working on AMB3R and improving it until its original goal is met.