Arduino + XBee + Web Server

I’ve been toying with an idea for a project involving a couple of Arduinos and XBees. Perhaps this forum can shed some light on it for me.

Suppose we have two Arduino based robots and we want them to map the topography of a room. Basically some basic touch sensors and programming so they turn when they come into contact with objects. Along with a bit of code/hardware to make sure they avoid each other. This part seems easy enough.

The challenging part (I think) is getting them to report and access information from a common node. I was wondering if it’s possible to use Xbee cards to have the two Arduinos send and receive data from a location stored on the web.

Essentially, if one robot contacts something in the room through their touch sensor they can send that information (let’s call it a ‘contact point’) back to the web server and the other (or others if more than one bot is used) robot will be updated with the position of that contact point via its Xbee card and know to avoid that point.

So the project entails this:

  1. robots that use Xbee to communicate with a central access point that stores information.
  2. Robots send ‘contact point’ data to that central access point
  3. the access point is web based
  4. Robots receive the updated data from the access point when the access point is updated.

I’ve done some preliminary reading about XBee systems coupled with Arduinos and it seems possible to get them to transmit and receive data, but I haven’t seen anything on the web aspect of this project. How about it, folks, is this one possible?

Don’t think I’m just posting a hypothetical, here. I’m currently working on acquiring the funds to complete a project like this via a grant from my university. So I feel like this project will happen, I’m just wondering if the Arudino+XBee combo is a good approach.

Thanks everyone.

There could be a central arduino node theat recieves all the info from the moving units and transmits (via serial comm.) it to either a PC that is on the net or the central node could be on the net it self (xport or other ethernet device). I don’t know much about Xbee modules, but i assume some kind of “many to one” communication is possible ? Then there is the problem of relaying the data back to the other Arduinos. Some kind of protocol and adressing need to be developed.

one thing i don’t see in your post is how to determine location. How will the moving units know where they are? this is usually a major challenge in this kind of project. Especially if it you need decent precision.

You raise a good point, MikMo, and it’s one I’ve been pondering for a couple of days now. My intention with this project was to do it as a proof of concept and control the environmental conditions pretty specifically.

For example, we build a square ‘arena’ with known dimensions and set up one of the Arduinos to ‘trace’ the outer perimeter of this arena. That way the outer boundary is known and calculation can be done to determine distance based on this outer boundary and triangulating with position based on the distance from each side. Then we can insert an object into the arena and a bot can realize the object is there becuase the robot itself is X distance away from two of the walls, but not the expected distance from the another wall, meaning it’s encountered something that isn’t the wall. Methods will also have to be introduced to determine that this ‘encountered something’ isn’t another robot. This is just a thought, though, and it may not even work.

However, this puts a condition on the project that isn’t really practical in ‘real world’ use, where the bots may not know anything about the environment they’re being put into. This isn’t really the point of the project in my eyes, though.

What I really want to do with this is highly document the process and distribute all the plans and source code via a wiki so that it can be reproduced, reimagined, and refined by others. The whole point of it to me is to use cheap, open source systems to develop the project. I’d like to end up with a simple proof of concept type project that can be recreated by perhaps a high school science class or college professor with a limited budget so that he/she can demonstrate it to their students. Something that can serve to say, ‘hey, you don’t need a multi-thousand dollar grant from the US government to play with swarming robots. You can do it for less than $2k’.

I know other groups are working on this cheap swarming principle, but the best I’ve seen so far still has the bots costing almost $800 each. Albeit they are more fully featured than the final product I have in mind. I’d rather build three or four bare bones $200 robots in a highly controlled environment to demonstrate the swarm concept rather than build something expensive and extremely full featured.

I don’t say all this to detract from your question, MikMo, because it’s a great one and perhaps the most challenging portion of this project. I’m just saying this to state my intentions with the project. If I have to highly control the environment to make the project cheaper, easier to understand, and more accessible to those with a limited budget, then that’s what I will opt to do.

Thanks for your question and thoughts.