AIBurroNAVIORaspberry PiRobocarUncategorized

Updates to Burro self-driving platform

I’ve been busy implementing some cool updates to Burro, the self-driving RC car/robot platform I’m building. Here’s a summary:

The Adafruit Motor HAT is now supported in addition to NAVIO2. Both boards are fully supported 1, and in fact you can use the same SD card in different cars/robots, without the need to reinstall anything, as detection of boards is done in runtime. Currently, auto-detection assumes a RC car setup with Ackermann steering if using NAVIO2, and a differential steering setup if using the Adafruit Motor HAT 2.

My intention is to expand hardware support of Burro with more motor drivers. My next goal is to add support for native PWM generation on RPi, a technique used to drive two of Pololu’s motor driver HATs. It seems that RPi has a hardware PWM generator that can generate ultrasonic PWM for quiet motor operation, and is easily usable through WiringPi and its Python wrapper. In addition, if anyone would like to have a specific piece of hardware supported in Burro, I’m actively looking for hardware.

The second improvement is on the web interface. That has seen a gradual series of improvements in the last few weeks, and now presents more information in a more concise way. Even though I’m currently quite satisfied by the web interface’s current status, there is more to come on this matter, so stay tuned!

The new Burro web interface. Viewport image is illustrative.

In addition to these features, many tidbits have seen improvements, many bugs have been squashed and infrastructure improved, so that future features are easier to add. I have set a v1 milestone for Burro, and there are still a number of issues to attend to till it is reached.

Finally, the last weeks saw the first public release of the training code, which includes a series of pre-processing Python generators, for generating training examples and raining Neural Networks for autonomous driving using Keras. The training branch of burro contains an early implementation, which is functional but requires some tweaking to get it working. Once this is streamlined and bugs ironed out, I’m going to merge it into master and it’ll be part of Burro.

Take a look at the Burro repo on Github

  1. Even though NAVIO2 support includes additional features, such as RC decoding and status indicator
  2. With a little bit of configuration, NAVIO2 could be used to control a differential steering car with continuous rotation servos quite easily

Leave a Reply

%d bloggers like this: