The CAD elements of the MCBD project focus on optimizing the omniwheel and main body designs to ensure functionality and adaptability. The omniwheel was refined from a six-roller to an eight-roller design, eliminating gaps between rollers for improved ground contact, stability, and reduced wear on the ball. The main body was redesigned to be compact and stable, featuring a hexagonal layout that allows for efficient use of space while accommodating the system's weight and ensuring compatibility with the ARGOS 3.0 platform.
The circuit design (to the right) allows for seamless integration of motor control and wireless communication, making the MCBD highly responsive to user commands. The independent control of 2 of each motor through the motor drivers enables precise adjustments in speed and direction, which is essential for achieving complex movement patterns and smooth omnidirectional control. The use of PWM signals allows for efficient power modulation, conserving battery life while ensuring that each motor operates at the desired output. Additionally, the Arduino’s ability to continuously monitor and adjust motor behavior based on incoming wireless signals provides real-time responsiveness, making the MCBD adaptable to dynamic control inputs and enhancing the overall user experience. The main switch and organized power distribution further enhance reliability and user control over the system's operation.
Power calculations are done to ensure that the MCBD has the necessary energy to move remotely. Additionally, there should be sufficient overhead to ensure that the ARGOS can be powered on by the same system.
Currently, the calculations are rated for one leg of the MCBD system which utilizes 4 motors, 1 roboclaw controller, 1 Arduino, 1 wireless receiver, and 1 12.8V 100Ah battery.
Using real world load approximations, 1 leg of the MCBD robot should have about 5 hours of runtime.
This flowchart outlines the logic of the MCBD control system. It first checks if the kill switch is on; if not, it exits the loop. Then, it reads joystick PWM values and verifies their validity. If the inputs are valid, it calculates the motor velocities for all three motors (M1, M2, M3) and sends the commands to the RoboClaw controllers, followed by a small delay before repeating the process.