-
Why All the Fuss About Real-Time?
04/17/2019 at 04:20 • 3 commentsIn order to get the best possible performance out of the balance controller, great care must be taken to ensure that the control loop operates at as close to a fixed 200 Hz loop rate as possible. From a write-up Jackie Kay (Open Source Robotics Foundation) contributed on real-time computing in ROS2:
A real-time computer system needs both an operating system that operates in real-time and user code that delivers deterministic execution. Neither deterministic user code on a non-real-time operating system or nondeterministic code on a real-time operating system will result in real-time performance.
The whole write-up is great and can be found here. All that to say, when your system needs real-time performance, it needs it. Bobble-Bot provides a safe way to learn more about this classification of systems at low cost. This is not an easy feat because typical real-time controller implementations are heavily proprietary. The whole subject is both fascinating and practical. We are passionate about sharing our experience here with the larger open-source community, and Bobble-Bot is a great platform for doing that.
Enough background, let's look at some examples.
Here's What Non Real-Time Control Looks Like
The performance is not good. If you look around on the internet you will find many examples of self-balancing hobby robots with performance that's along these lines. Keep in mind, this is the best we were able to get the non real-time Bobble-Bot to perform after many hours of tuning. The bottom line: non deterministic loop jitter (delay) kills performance in a system like this one. When you need real-time execution, you need it.
Here's What Real-Time Control Looks Like
In the video below, you are viewing one afternoon's worth of balance control tuning by James and Mike. The difference in performance between non real-time and real-time control is night and day. Watch to the end... it gets better and better.
Since the day these videos were recorded, we have continued to make performance improvements that enable the Bobble-Bot to do ramps and different surfaces like a pro! This would not be possible without the switch to real-time.
If you want real-time, why not just use a micro-controller?
Having a full Linux OS running ROS makes working with the robot so much easier and more accessible. Being able to wirelessly ssh into the system and poke around is what makes the learning enjoyable. Additionally, ROS has a huge ecosystem of packages that makes it very easy to extend Bobble-Bot's capabilities without having to reinvent the wheel.
-
New Bobble-Bots Coming Soon
04/16/2019 at 00:27 • 0 commentsTwo more Bobble-Bots in development!
These handsome guys are now ready for their electronics and software load! Changes on the CAD side were mainly geared towards improving the assembly process. Significant improvements were also made to the motor assembly. On both the mechanical and electrical side, this version will represent a significant leap forward in making Bobble-Bot plug and play.
On the software and electronics front, we're expecting the turn-around time to be significantly reduced this time through. Looking forward to making use of our continuous integration/deployment tools to flash the entire software load directly onto the SD cards. For the balance controller, we'll be using the master branch of our open-source controller repository. Results from sim indicate we'll have no trouble with the balance controller. Just a few updates to the control gains were required.
-
Simulation Validation Update
04/16/2019 at 00:26 • 0 commentsBobble-Bot Validation of Open-Source Sim
We're wrapping up a considerable effort in the validation of the Bobble-Bot simulation. For our users, this means they can safely assume that navigation, controls, and other software development activities can continue to rely on the open-source Bobble-Bot simulation for their testing. Our software architecture and infrastructure enables rapid deployment to hardware upon success of automated test results performed within the simulation environment.
The main point of all this is that we now have reliable data to back up the validity of the results produced by the simulation! Some of the highlights of this analysis effort are provided below.
Impulse Response Test
Sample plots
Full data sets from all validation tests are available upon request.
We will press on and continue to rely on our simulation to develop additional navigation and guidance routines. These can all be developed and tested using the open-source simulation. We are actively seeking contributors for this effort. SLAM experience would be great. Message us if you'd like to help!