Let's Make Robots!

Multipurpose Robot: XRB3

Mapping, very low-level vision things
Cost to build: 
$400
Time to build: 
100 hours

XRB3 is powered by an AVR ATMEGA324P micro controller on a custom board that I made. Although he is fully autonomous, he is using an XBEE module to communicate with my PC for debugging (and eventually with other robots). Onboard sensory includes: 3 Sharp IR sensors (for wall following and obstacle detection), an SRF-05 sonar sensor and AVRcam. The sonar, a gp2d12, and the camera are mounted in a 2-axis head. He also has quadrature encoders on each wheel, I currently have code implemented for closed loop turns and rolling forward a set distance, but have yet to do continuous speed control. 

This is intended to be my map-making test platform. He currently does have an onboard planner that, when given an a priori topological map of an area, can navigate the area. I'm still working out the bugs in his ability to actually build the topological map of an area.

dscn3972.jpgdscn3938.jpgdscn3965.jpg

 

OddBot's picture

Very Nice

That is a very neat Bot, yours is the second I've seen on this sight with basic vision. Is it difficult to connect a camera to the MCU or is the camera designed specifically for the MCU? I'd like to try a robot with vision but don't know where to begin. Any pointers would be appreciated.

AVRCAM

The camera is an AVRCAM from http://jrobot.net/

It is about $100, has an AVR on board that does basic image color segmentation and blob detection, and then provides a serial port to get the data out. It is also entirely open source, so you can replace the blob detector or the image segmentor with your own code to change the characteristics of the vision.

I do have some sample code for using the AVR cam with another avr, on my subversion server.

-Fergs

Mr Clean's picture

Wow.  This thing is very

Wow.  This thing is very cool.  Keep up the good work, and keep posting videos!  :D

Very cool !

Very cool !
Nicola's picture

wow great robot! so advanced

wow great robot! so advanced and so good looking. How is that AVRcam ? easy to use ?

AVRCAM

The AVRcam is probably the hardest sensor to use out there. It uses a well-defined serial interface, so it isn't terribly hard to get that working, however, it gives off so much data that it has a tendancy to overwhelm the robot's main processor.

The biggest problem, with any camera - not just the avrcam, is that you have to set your colors for the environment you are in. The brightness of the room affects the way things look to a camera, no camera out there has the same compensation build in as we humans do.

-Fergs

rik's picture

mapping

Good to see a design that starts out with a clear idea of the concept: topological mapping (rather than geographical mapping). I like that. Also cool design to look at!

8ik

Mapping

The biggest reason for a topological map was that a) an AVR has limited memory, so a metric map would be pretty small, and b) searching through a topological map for a new area of interest is far easier.The robot's topological mapping was pretty good, in a limited world.

However, I have been working on an extended model that basically builds a local (6'x6') metric map of the world. The metric map is updated over time as the robot moves and older data "falls off the face of the earth" as the robot moves away from that area. The metric map is then used to extract more relevant points of interest to add to the topological map. The system also adds a small amount of metric data to the topological map, in the form of the approximate distance between nodes on the map. This limited-metrics is primarily for the problem of loop closure (is this a new node, or have I been here before?).

I'm also slowly working to get the robot off the grid, as the current method only uses orthagonal maps.

-Fergs

robologist's picture

Onboard and offboard

So many things put together on this, really incredible! How was Python to develop in, what sort of experience did you have before and during development with it? Really great looking bot!

Python was only used for the

Python was only used for the system console, which is a small program that allows the PC to connect to the Xbee network and view the output of the robot (and also start or stop particular behaviors/programs). Python is a great language, because it is fairly simple and has many libraries - such as pySerial, which was used to connect to the Xbee over the USB serial port. The python program is only 205 lines of code. Had I written the code in Java, that serial port interface alone would have occupied about 200 lines of code (in fact, an earlier version was coded in Java, and was about 700 lines of code to create even less functionality).

-Fergs

MaltiK's picture

Wasnt this robot at

Wasnt this robot at trossenrobotics.com, I have seen this thing everywhere!

 

Yes it was. B3 won third

Yes it was. B3 won third place in thier August competition, and thus got a small picture of it in Robot Magazine.

-Fergs

gsandaya's picture

Nice!  I really like your

Nice!  I really like your chassis.  Is that maze in your own home?  I wish I had room for that.

Maze

Yep, that is a replica of the Trinity Fire Fighting Arena, in my basement. Although I have also made extra walls for reconfiguring the maze.

-Fergs

Mr Clean's picture

Nice, that's pretty cool.

Nice, that's pretty cool.  Does this bot do fire fighting, or did you just copy that maze because it's somewhat "standard?"

This bot doesn't do

This bot doesn't do firefighting, but one of my other bots does: http://www.blunderingbotics.com/xrb4.php

I've reused this maze many times for multiple purposes other than just the fire-fighting. 

-Fergs

robologist's picture

Cool, just noticed the ARC1.1 board

that XRB4 has.  From Maximum robotics?  I've got an old one with an 8535 in, need to do something with it.
Trap's picture

Wow

So much and so cool!

mintvelt's picture

Nice

Nice design. I really like the object following / tracking vid. Very smooth

I like the maze too. 

I likw this bot :)good work

I likw this bot :)

good work

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.