Ben's Posts (4)

Sort by

Introducing the Nomad (working title)

The Nomadtl;dr: I'm building an open-source, 3D printable rover.

What is it?

Now that I have something to show, it's time to share something I've been working on and excited about!

The Nomad is a 3D printable rover that's designed to be an open rover platform for exploring electronic and software systems. These include micro-controllers (TinyDuino, Arduino), companion computers (Raspberry Pi, Chip, Onion), sensors (cameras, LIDAR, GPS), actuators, computer vision, autonomous navigation APM:Rover, orthorectified imagery etc. etc.

My aim is that the Nomad should

  • be 3D Printable. Perhaps if there's demand the parts can be mass-produced, but replacement parts should be 3D printable, possibly with degraded performance (e.g. simplified axial systems).
  • use commercial off-the-shelf (COTS) parts as far as possible. You should be able to buy bearings, servos, motors and the like form your local hobby store.
  • use COTS, open electronics like Arduino and Raspberry-PI as far as possible.
  • use and generate Open Source software.

The suspension, steering and drive mechanisms are based on the NASA Mars rovers, implementing a rocker-bogie suspension with individual motorised wheels. It is not a fast-moving rover, and it should be able to handle uncertain environments to a certain degree. I want it to be able to navigate outside environments like farms, beaches and mines, as well as inside environments (with small steps and obstructions).

I've been concentrating on the suspension, steering and drive systems a starting point, and as you can see the details are way more evolved than the payload body.

The Suspension and Steering

Here's the printed and assembled suspension and steering for one side:

One side

This is the result of a lot of design iterations. Saying that, there's still a long way to go with both the form and function, but it's now at a point where I can attach these to a body and do some work on the basic movement micro-controller software.

The steering system uses a standard micro-servo with a Dubro ball link and a bit of bended 0.032" piano wire. Here you can see a prototype:

Ball link prototype

Excluding the wheels, one side of the suspension can be printed in one go:

Single print

The axes for the steering system and rocker are 3D printed and a RC Car bearing is used, but the 3D printed axis shaft is too weak and easily breaks off at the junction. Another design is required, possibly using metal shafts. Here's a prototype:

Prototype axis

The motors are standard Polulu Micro Metal Gearmotors, and the motor shaft fits snugly in the 3D printed wheel:


Zortrax M200

As an aside, I want to wax lyrical about the Zortrax M200. This is an awesome printer. The results are consistent and reliable, and my enthusiasm for low-cost 3D printing has been rekindled.

I've printed these templates to figure out the measurements for a snug fit on the bearings and motor shaft:


and the printer reliably produces the same result.


The parts for building both sides of the suspension have arrived, so I can produce these, but I'm waiting for some electronics. The first iteration will use TinyDuino and a Raspberry-Pi. I'll design a basic body and determine any problems with the suspension and steering, and if all goes well my next post will show a driving rover!

The design files (Rhino) and STLs for printing are available on github under a Creative Commons license if you're curious.

You can follow @calvinrobotics on Twitter for updates.

Read more…

Evolving aircraft control values using a genetic algorithm

I've been doing some experiments to evolve PID control values in X-plane using a genetic algorithm, with some success. I posted a description about the experiment on my blog. I didn't want to reproduce the entire post here, but thought I would link it and post a video of the experiment:

Blog post:



Read more…
As my inaugural blog post on DIY drones, here's a video of my first step towards building an autopilot: browser-based flight instruments using HTML5 canvas and websockets, with measurements from X-plane via UDP. Here I am flying (badly) off into the subset over Cape Town:

HTML5 Flight Instruments Demo from Benjamin Nortier on Vimeo.

(ed: seems like embedding videos from vimeo are not supported?)

My intention is to build an autopilot, where I'll be doing in-silico development using X-plane at first, then moving on to actual hardware (if the autopilot proves feasible). The plan is to do things a bit differently than what I've read here so far. Notably I'll be programming in Erlang for the autopilot, with the intention of running on something like a Beagleboard on a plane. All my visualisation, ground station, configuration etc. will be browser-based (i.e. Javascript).

The reasons for this approach, in a nutshell are
1. A desire to homogenise the development environment between GS and plane
2. Ability to develop in-silico as much as possible, e.g. not having to deploy each build to hardware and use complicate Hardware-In-Loop setups for testing
3. If you don't know Erlang, it's a great choice for building fault-tolerant soft real-time systems, with the emphasis on "fault-tolerant".
4. Basing control and configuration on a browser will enable you to control and configure from a laptop, ipad, smartphone, form across the world.

Hopefully there will be more to come. Some of these ideas may turn out be be bad decisions, we'll have to wait and see...

Read more…