Posts Tagged ‘robot’

Dojikko v2

Sunday, July 8th, 2018

I’ve given my little robot a huge upgrade – she can now see the world properly! This video is just an introduction, and there’ll be a proper demonstration of her path-following abilities later.

[Watch in HD]

Her brain is now a Raspberry Pi instead of an Arduino, and she sees with an infrared camera (for better low-light performance) in greyscale, instead of just measuring the distance in front of her. This means she can now have a proper goal – instead of just moving towards walls and then turning, she can now drive along a path!

She uses a neural network to judge how quickly she should be driving and how to steer. Although she only sees at 128×64 resolution, this is a huge improvement! Currently, I’m still in the process of training her well (driving along paths with her recording the view and the controls that I’m giving her).

In a future video, I will also go into details of the circuitry, including the way that the Raspberry Pi can hold its own power on and only turn it off once it’s finished shutting down, because the only explanations for how to do this that I could find online required a ridiculous number of components and constantly leaked small amounts of power when turned off, which this way does not. Plus, this way only requires a relay, transistor and resistor.

Please forgive the inverted colours of the subtitles!

I only noticed this after I had subtitled the entire video, and there’s no easy way to batch-change this in the video editor. I tried using a hex editor to find/replace the colours, but to no avail… orz
I could pretend that it’s a throw-back to the time when I used the colours this way, but it was actually a mistake.

Dojikko Gets Side Sensors

Monday, April 20th, 2015

I’ve given her another 2 ultraound sensors on either side, so that she can see how well lined-up she is to walls on either side of her. This is to try to keep her heading directly towards a wall, so that the head ultrasound sensor will get the best reflections possible (assuming that her environment uses lots of right-angles).

[Watch in HD]

The Arduino fires all 3 ultrasound sensors and listens for their echoes at the same time in order to “see” at the highest frame rate possible (typically 20-50 FPS), but this causes issues with echoes from one sensor bouncing around and returning to a different sensor. Although the code avoids any clearly-bad echoes like this (e.g. 2 echoes on the same sensor), it’s far from perfect, and she often thinks that she’s crashed into something (an object is very close to the head) when she hasn’t. I think there’s also a strange bug in the function that times the echo delays, or something strange is going on with hardware interrupts, because the function sometimes returns 0 for a sensor which clearly has an object in range, and at the same time, the sound of the tone playing on the speaker (using the built-in tone() function) becomes distorted so that it doesn’t even sound like a square wave anymore. I’ve never experienced that before, and I have no idea what’s wrong there. Oh well, she looks cool aligning herself half of the time.

Fun game to play: See how many inconsistencies there are in this video. It’s a combination of videos recorded 7 months apart.

The Making of Dojikko

Sunday, August 24th, 2014

A look at how the clumsy autonomous robot was made, and her very first versions, when she was worse than clumsy, before she was even slightly clever. There’s more to show, but it was already approaching my longest ever video, so I decided to end it here.

[Watch in HD]

A later version can be seen here. She’s progressed a little further still, now – I should upload a video of her outside soon!

Music by Kevin MacLeod (

  • “The Way Out”
  • “Dance Monster”

Dojikko Weight-Carrying Test

Thursday, June 13th, 2013

I decided to see how much weight Dojikko, my work-in-progress robot, could comfortably carry. I cut out 3 boring tests and yet it’s still kind of boring.

[Watch in HD]

Dojikko on a 9V battery (or two) (2013-03-28)

Thursday, May 16th, 2013

She drains them in minutes. They were cheap, though. Her usual battery is an 11.1V 5000mAh LiPo.

[Watch in HD]

Dojikko vs a corner (2013-03-18)

Thursday, May 2nd, 2013

Ultrasound fails when it comes to corners. It gets reflected away by the walls and the walls become invisible to it.

[Watch in HD]

[Dojikko] Turning bug (2013-03-03)

Thursday, May 2nd, 2013

The code was supposed to prevent constantly overshooting while turning to face a new direction, but it had quite a different effect. This is the kind of weirdness that happens on the very first attempt of adding new code.

[Watch in HD]

It was fixed shortly after recording this. =)

Ultrasound and Slow-Motion Recordings of Dojikko

Sunday, April 14th, 2013

The ultrasonic pulses that let Dojikko “see” her surroundings are normally inaudible to humans, but now, you can hear in detail exactly what’s going on. The ultrasound is 40 KHz, about double the highest frequency that most people can hear. When slowed down, not only can you hear the transmitted pulses, but the echoes and the delay between them are clearly audible, too!

[Watch in HD]

I recorded the sound at a very high sample rate (192 kHz – at this rate, the microphones can hear frequencies up to 96 KHz). Afterwards, I slowed down the sound to a quarter of the original speed, 1/8th, 1/16th, etc, even down to 1/128th (at that speed, just 2 seconds would be over 4 minutes long). I also recorded video in slow-motion, but my camcorder can only go up to 200 FPS (1/8th speed when played back at the usual 25 FPS), meaning that lower speeds such as 1/64th aren’t smooth, as I had to futher slow down the video in editing. But the main point of this video is the sound.

[Dojikko] Amusing bug – First test of closed-loop system for moving forwards

Thursday, March 28th, 2013

I tried to implement a closed-loop system to keep the actual speed the same by increasing power to the motors if e.g. stuck on an object. Results were… amusing.

[Watch in HD]

The speed was correctly being calculated from readings from the ultrasonic rangefinder. There turned out to be a combination of 2 problems (a variable overflowing, and something specific to the format of data that the Sabertooth motor speed controller requires), but they’re fixed and it’s working much better now. I’m still fine-tuning it, as it’s still far from ideal, though (either slow to respond or over-aggressive and dangerous, and interferes with other systems such as the part that detects if it’s stuck).

Dojikko, a Clumsy Robot (Demonstration)

Saturday, March 9th, 2013

This is a project I’ve been working on since December 2012. Dojikko explores her environment using an ultrasound “radar” to see, and a compass to tell which direction she’s facing. An Arduino Mega controls everything. She tends to be clumsy due to my lame programming. The battery lasts for about 3 to 3.5 hours non-stop.

[Watch in HD]

I’m currently working on a video showing the construction process, but there’s an awful lot of footage to work through, so I wanted to at least make this video to introduce this project.

The chassis is a LynxMotion A4WD1 (the wheels and motors were included in the A4WD1 kit v3). The pan/tilt mechanism (head) is also a kit from LynxMotion, although the servos that move the head were sourced separately and I’m using nuts and bolts rather than the pathetic excuse of the nylon fasteners that the kit comes with. The ultrasound module is the extremely cheap Chinese HC-SR04, and I’m very impressed with it considering it’s a 10th of the price of the “Ping)))” module that it is an alternative to. I bought a handful of them since they were so cheap, but I’m ending up enjoying the challenge of using only 1 and making use of the pan/tilt servos.