The Autonomous Robot

Christopher Moran

Issue 11, May 2018

Reminiscent of our SAM Robot project, but with its own flavour, we caught up with Christopher to see how and why Meerkat came to be.

We love the name “Meerkat” - with its high-standing ultrasonics on the front, it definitely looks like a Meerkat scanning the plains for predators. What made you want to tackle a robot project in the first place?

I blame Dr Who and K9, which debuted when I was in high school. I actually created a design for him using a lot of discrete logic, but there was no way I could afford to make it. I was also influenced by books like “How to build a self-programming robot” by David Heisermann and “How to build a computer controlled robot” by Tod Loofburrow. Both seem so simplistic these days, but back in the late 70s they were cutting-edge.

Of course now it’s so much easier with the availability of Arduino and all the low cost modules on the market; these days, you could build Meerkat in an afternoon and still have time left over.

It certainly has become a lot easier, with loads of information available. You’ve noted there are a few similarities with our previous SAM robot project, but differences too - can you take us through some of those?

Meerkat is based entirely on off-the-shelf components so it’s easy to reproduce. Even the chassis is available from several sources. The biggest difference is probably in the software because it abstracts the hardware components from the robot’s upper level logic. Meerkat has a few “cousins” as well, which have two or six wheels, or even caterpillar tracks. They basically run the same code for obstacle avoidance or navigation but the changes are in low level routines. I guess you could liken this approach to device drivers for your computer; your browser doesn’t care what kind of network adapter you have, as long as there is a standard way of using it.

Caterpillar tracks! Sounds like a lot of fun! And you’re right; the obstacle avoidance logic doesn’t really care how the wheels work. Did you design the ultrasonic mount yourself, or find a suitable design somewhere?

I found it through an online retailer. I’m not really sure why local retailers don’t carry something similar, because I think they would sell.

We agree there’s an opportunity for retailing of some unique parts like that. How long has Meerkat been in production?

Meerkat has been around for a year. It made its first public appearance in April 2017 and I’ve been publishing the details and software since then. I am aware of about a dozen that have been built, but there’s no production as such. That said, if schools, for example, wanted them I would consider packaging the components up.

It’s always amazing to see someone build a version of something you’ve created, for sure. We never tire of seeing people building DIYODE projects! What are some of Meerkat’s capabilities that may not be readily apparent?

The biggest feature is that Meerkat is an open framework. All the code is available on Bitbucket, so it’s well documented and I welcome contributions. The other not-so-hidden feature was added more recently, which is a small OLED display on the top deck. At the moment we find this really useful for debugging. The biggest problem I found with small robots is understanding what they are doing when they are on the move, so this little display provides some handy insight.

A great addition. It’s definitely hard to see what’s happening sometimes, when serial monitor isn’t available and something isn’t behaving as expected. Are there any unexpected challenges you faced getting this working?

Low cost motors don’t always turn at the same speed, so when you are controlling each motor individually you can get curious steering effects as a result. Fortunately, by using PWM drive for the motors you can cure a mechanical deficiency in the software!

The addition of an OLED screen gave powerful insight into what Meerkat was thinking..
The addition of an OLED screen gave powerful insight into what Meerkat was thinking.

Certainly, as long as the difference stands for all RPM ranges. We have noted similar issues with some of our designs, resulting in “straight not being straight” when driving! Stepper motors may be the answer, since they’re a predictable and repeatable revolution, but control becomes more difficult and maximum speeds are lower. But if accuracy is required, perhaps it’s a solution. What else would you like us to know about this project?

I built it as a way of showing kids, in particular, that there is more to computers than games and displaying funny videos. This is why it’s designed to be very easy and safe for little fingers. Also, I’d love to hear via a comment on my blog (https://nowwhywouldyoudothat.blogspot.com.au) if you build one yourself, or use any of the code or ideas in your own projects.

That’s great! If you had to do it all again but this time with the knowledge you gained from this build, what would you do differently?

I’d make up my own interconnect wiring rather than use the standard lengths, which always seem to be either a little too short or far too long, and I wouldn’t mess up the mounting for the sonar so that I had to use paperclips!

Oh yes we’ve been there too! The wiring harness would be much more versatile if it was just 10% longer much of the time! What are you working on now?

A self-driving car, based on a child’s electric ride-on.

That sounds cool - we can’t wait to see it! Thanks for sharing Meerkat with us!

Top down view of Meerkat.
Top down view of Meerkat.
The motor control module.
The motor control module.
Meerkat's Ultrasonics mounted on top of a servo.
Meerkat's Ultrasonics mounted on top of a servo.