Let's Make Robots!

Robot Wall Racers

Finds the hidden racing track in every room.. and races it!

This is updated, reason is here


A video in better quality than YouTube & Google is here

How to make Robot Wall Racers yourself, see here

The car-chase was made by holding a camera on a stick, chasing the cars around. Some clips where made by placing the camera on a record-player. All editing was done in the standard "free" program that comes with a Mac, called iMovie. It is a nice program for light editing.. but phew, it was pushed to make this

The second video shows some work with the skid-turning. It also shows improved handling in general.

Notice how it sometimes mis-judges when the wall is not 90 degrees, but has bumps. But also how it handles getting out again :D (Me proud, love this, think it is cool, it drives so much better than what I can do with remote myself)

Of course I could just give it some more space to turn in the code, to drive more "safe", but I kind of like it to be tight :) And notice hw it never bumps into anything else - the polystyrene-blocks would fly right off if it hit them.

I have added an extra battery for more power.


Your home is a racing track, you just do not know it.

Look at your floor where it meets a wall.

Between 30 and 70 cm from that goes an imaginary path, following along the wall.

That is the racing track!

Where the wall meets another wall, or there is an obstacle, the track follows in a smooth path, always 30-70 cm away, on the floor.

The track returns to where you started, you see! :)

It is a full racing track:

You can time how long time it takes for a little robo-car to take one round. You can then try to improve the code, and time it again.


If you make the car like this:

One sensor (Could also be infra-red or whatever) looks ahead, another looks to the right. Then code could be something like this:


If something in front, turn left, go to main.

If something closer than 30 cm to the right, turn left, go to main.

if nothing in front and something closer than 70 cm to the right, drive ahead, go to main.

If nothing to the right closer than 70 cm, turn right, go to main.


A car is racing your home!

It can be timed how long before passing by the same line again and again.

But a single car is just test-labs, no?


Now take 2 cars with the excact same setup as above, let's say a red car & a blue car. Now it get's interesting!

If red car is behind blue car, what does it do?

Well.. Something (blue car) is in front, so we turn left to take over.. until nothing is on the right, so we pull back.. That is trying to take over!

At a point the blue car is turning left because there is something in front.

Then the red car will have the inner track..


What is actually going on, is that one car is behind, but is "strugeling" to take over.. when it is in front, the other will fight to get ahead.. and we have a full race :D

You can take Red & Blue and place them next to each other, next to the wall; They will both drive full speed ahead, until a turn, where the inner car will have advantage. But then..

Wall Racers are born, ladies and gentlemen.. I had these 2 cheap RC cars with crap maneuvering abilities, and thought of what I could do with them. Crap - but still; They sort of drive like cars - not like differential steered robots.

It has ben quite simple, have experimented with AZ8222's instead of motor drivers. And just a Picaxe on a standard board, simple and fast.

Of course, when turning angle is not enough to avoid obstacles, maneuvers with reverse and 3-point turns must be done. But this is why we have a microcontroller, and it is not spoiling the fun - on the contrary :)


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
The SRF's could just be better placed inside the cars.. Only the cars I made are completely filled up on the inside :)
Cant you place the ultrasonic sensors inside and cover it with a heavy spaces metal cloth like they do on top of the sensor and maybe paint it so it doesnt look as bad?
I would assume that as long as it has holes for sound to go in and out it should be ok. The more you block it the more of a chance that you will get a bad reading. If you put something in front I would try to make sure it is as close as possible to the sensor and that the holes line up if possible. I would just drill two holes and have the sensor peek through.

I made some similar robots a while ago.  I'll try and post a video of them.  They are designed to race around a track, in other words they are doing wall avoiding so when you make a track with walls on the inside and outside they will go around and around.  I made the robots myself, they are differential steering with a body made from laser cut polycarbonate.  I used the sharp IR rangefinders for navigation and have four on each robot, two forward facing and two side facing.  They also have four bumber switches, one pair in front and the other at the rear.

I made them because I occasionally run kids workshops about robots and I wanted an activity that was fun but didn't involve building or programming so I made some racing robots.  The controller (A PIC 18 device)  has eight potentiometers attached (as well as the sensors) and these can be used to control the behaviour.  Basically I can give one to a group of kids and tell them to experiment with the settings and get the robot to race around the track as fast as possible.  The controller also has a mode select switch so you can have several different operating modes and I have included (but not written code for yet) a pair of servo pulse outputs so you can use the controller on an RC car instead of a diff steer bot.  I was thinking of also using these ports to hook up an RC helicopter gyro so I could control the rate of turn more easily (espescially useful on slippery floors)

My robots are FAST, not quite as fast as a good RC car but certainly to fast for most tracks (there is a speed setting so you can tune the motor power) They work best on carpet where they get the most grip.  The algorithms I use for control are various and the mode switch allows you to try out different options.  The most useful one is the PD controller where you make the robot symetrical with sensors at the front and sides in pairs.  You then work out the difference ebtween each sensor in the pair, work out the rate of change of the difference, add the results together and subtract from one motor and add to the other.  This gives you a damped wall avoiding behaviour which works nicely.

I haven't done what the wall racers do yet and given them an explicit mode for following a left or right hand wall, Mine just avoid walls, I think I got half way through writing some code for wall following and got distracted by other things.

Got a video clip of my robots on youtube here:


Cool, you should post this as a robot on LMR!

Way Cool!!

(We should race some day)

I'd love to see you making this as a new robot-post - so we could have a place to ask & read more.

I'll try and post some more details soon, I also want to try and organise a proper robot racing competition (by specifying some rules - a bit like the robot football leagues).  At the moment I'm busy trying to finish a PhD

Robot-race could be really fun! (Specially since mine can do overtakings)

Only thing is that it is extremely incompatible with the crap low framerate video on the net has. Even HD/100 Hz can have a hard time with it, as not only is speed high - the things are small, so you have to be close to film anything but "little things on the floor" - and this is really not very compatible with the way film / video works in general :)

Need highspeed camera.