|Posted on June 28, 2018 at 11:10 PM|
After the WRAV v3.0 I decided I wanted to do something more challenging. So I tought about doing a self balacing robot, after all, what do I need a 3D printer for if not for building myself a new Robot.
I designed the panels out of Carbon Fiber plates and most of the rest is 3D printed, except the electronic components of course.
Electronics and PCB
The balancing, motion and sensor controller is a Tiva C, while the main vision and decision making ECU is a RaspberryPi 3. I created a launch board for the Tiva C, in order to easily connect the ultrasonic sensors, the IMU, GPS, serial comm to the RaspberryPi and to the stepper motor controllers. Here are some pictures of the board:
I don't have a better picture of the Robot BoosterPackXL (I don't want to dissasemble BR-1 :P), but here you can see the main components.
Do you like videos of stuff being 3D printed? I know I do... there's something so satisfying about them. Here is one of the LiPo support platform being printed:
After printing everything, including a base for BR-1, I assembled the components and started coding. The repo for the Tiva C code can be found here. (migrated from GitHub after Microsoft purchased it of course).
Currently the balancing loop is running at 100 Hz, which is too low and is causing it oscillate. My next steps are to increase the loop to 250 Hz at least and to re-work the COMM module to support multiple buffered instances of UART.
I ran a few load tests and I think 250 Hz shouldn't be a problem for the Tiva C. My only concern is touching the IMU code, which took me a long time to have running stable.
I'll post an update once I've done the 2 tasks I mentioned above.