go_away

Author Topic: 21 Wireless Robots...Advice Needed!  (Read 2304 times)

0 Members and 1 Guest are viewing this topic.

Offline joemcm63Topic starter

  • Beginner
  • *
  • Posts: 3
  • Helpful? 0
21 Wireless Robots...Advice Needed!
« on: December 24, 2008, 01:53:54 AM »
I am part of a engineering senior project team tasked with creating a design for 21 robots that are able to reliably avoid obstacles for an art exhibit.  We have explored the traditional option of ultrasonic/IR sensors, and decided against them because of mutual interference issues with 21 robots.

We have decided to use the MIT Cricket indoor positioning system (http://cricket.csail.mit.edu/ ) to avoid interference issues and determine each robot's position.  This can then be communicated to a base station with RS232.  Each robot has a Roboteq AX500 motor controller, which can be controlled by RS232.  The MIT Cricket system will require us to program a central laptop to "map" the room and robot positions, then choose a new position and calculate L and R motor commands for each robot.  The Cricket system runs on TinyOS, which will only work with Linux.

Each robot will require one outgoing RS232 link for the positioning system and one incoming RS232 link for the motor controller.  This must be wireless, and we have explored the option of RS232 over wifi.  However, I am concerned that it is not practical to have 42 RS232 ports coming into a single base station laptop.  Does anyone have experience with this?  Is there a way to use one transmitter to communicate with all of these ports?  Also, most methods I have found use microsoft, so is there any method using ubuntu linux?

Any advice or insight will help.  Thanks!
« Last Edit: December 24, 2008, 01:57:04 AM by joemcm63 »

Offline dunk

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 1,086
  • Helpful? 21
Re: 21 Wireless Robots...Advice Needed!
« Reply #1 on: December 24, 2008, 05:21:40 AM »
hi Joemcm,
no solutions i'm afraid but a few comments.

Quote
The Cricket system runs on TinyOS, which will only work with Linux.

nope.
the Cricket firmware runs on TinyOS but this is all on the actual Cricket module. TinyOS is nothing to do with Linux. it is a RTOS for embedded processors.
the Cricket module can communicate with a host computer over RS232 and as you know what control codes it sends over the RS232 link you can control it from any OS you want.

if you don't know much about RS232 already take the time to read about it now.
try connecting 2 laptops together using serial ports and type data from one terminal to the other.
learn how to use hardware flow control.
trust me, it is simple once you have done it once and getting familiar with the basics will save you a lot of time later.

RS232 over wifi sounds like a nightmare to me. they are 2 completely different ways of transferring information so the process of converting on to the other would be very wasteful. this is only my opinion though. i have never looked into it.

you can connect as many serial ports to a Linux machine as you like within reason. 42 RS232 ports is easily possible.
i have no idea if this is possible on windows or not.

Quote
Is there a way to use one transmitter to communicate with all of these ports?

no simple way i can think of.
the problem is RS232 has no addressing so no way to send to just one individual base station.

so, if i was doing this and it had been decided to definitely use your chosen motor controller and Cricket sensor and that one central laptop was to control everything
i think i would be looking for some way to make the robots addressable so communication from the PC can be initiated to only one of the mobile platforms at a time.
try reading up on XBee RF modules. http://www.digi.com/products/wireless/point-multipoint/xbee-series1-module.jsp
with a little circuitry one could be connected to your PC serial port.
the modules are pair-able so in theory the address on the PC connected one could be changed to communicate with a particular remote device.
i don't know how easy (or quick) it is to change the address while the XBee is in use though.
i *think* the XBees also have GPIO pins so you could use those to enable communication to either the Cricket or the motor controller.

an alternative (but Ugly)  method would be to find RF modules that can pair with each other and have enough bandwidth to allow 42 pairs and just attach 42 of them to 42 USB-Serial dongles attached to your laptop.
i think the XBee would be capable of doing this as well. you would certainly need something with high bandwidth to allow 42 channels open. 2.4GHz would be the most likely frequency for a successful solution.


dunk.

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,659
  • Helpful? 169
    • Society of Robots
Re: 21 Wireless Robots...Advice Needed!
« Reply #2 on: December 28, 2008, 01:51:42 AM »
Just a thought, not sure how useful tho . . .

If the data transmitted is sparse/compressed/highspeed, your robots can be programmed to send data randomly over time (or sequenced) in the same frequency about once every few seconds. The likelyhood of data collision is small, and if it happens the data can just be dropped and retransmitted in the future.

Bluetooth and Zigbee also have data addressing capabilities, but each have drawbacks . . .

Offline Webbot

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 2,150
  • Helpful? 109
Re: 21 Wireless Robots...Advice Needed!
« Reply #3 on: December 28, 2008, 11:53:50 AM »
Building on what Admin said...

You could use RF links with one transceiver for the base station and one transceiver on each 'bot. I would imagine that the laptop only sends motor control commands once it knows where the robot is. So if you give each robot a unique address number then each robot could send a packet such as:

byte 0:  a fixed 'signature' to represent the start of a packet
byte 1: a message number. ie (1=from robot to base)
byte 2: the robots unique ID number
byte 3...n : the robot x,y position
byte n+1: a calculated checksum - used to throw away any corrupted messages


Since all transceivers may receive the packet successfully then the other robots will see that this is a transmission to the base - so they can ignore it.

The base then responds
byte 0: a fixed 'signature' to represent the start of packet
byte 1: a message number ie (2=from base to robot)
byte 2: the robots unique ID number that the base is replying back to ie 1 to 21
byte 3...n: the motor control info
byte n+1: a calculated checksum - used to throw away any corrupted messages

All other robots will ignore the message as it is not for their unique ID

To minimise the interference - when robot ID = x hears a reply back from the base which is for robot ID = x-1 then it knows that it is his turn to talk next. So they will each take it in turn to talk to the base and hear back.

Each robot should also have a timeout (as it may not 'hear' the response back to the previous robot in the sequence which would then halt ALL further comms) which puts the robot into an 'initiate comms' state. All robots would revert to this state at power up. When in this state the robot will set a random time delay and then send its message - keep repeating until it 'hears' any packet from the base to a robot - now it knows whereabouts in the sequence the base station has got to. The random time delay will help overcome the problem of all the robots being turned on at the same time.

Word of caution: most RF kit only allows you to transmit data in short bursts - so each robot (when it is its turn to talk) should pause for a while before doing so.


Webbot Home: http://webbot.org.uk/
WebbotLib online docs: http://webbot.org.uk/WebbotLibDocs
If your in the neighbourhood: http://www.hovinghamspa.co.uk

Offline hgordon

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 373
  • Helpful? 7
Re: 21 Wireless Robots...Advice Needed!
« Reply #4 on: December 28, 2008, 07:17:43 PM »
You can configure the XBee radio modules to share a single radio channel in broadcast mode, so you just need to create a simple protocol for individually addressing each robot from the host on the shared channel.  We did something along these lines with our first generation robot using the XBee radios.  See -

    http://www.surveyor.com/cgi-bin/robot_journal.cgi/2006/10/04#056
    http://www.surveyor.com/cgi-bin/robot_journal.cgi/2006/10/06#057
    http://www.surveyor.com/cgi-bin/robot_journal.cgi/2006/10/07#058

Note that to coordinate the communication with the robots without packet collisions, you want to initiate all communication from the host, individually polling each robot or generate a broadcast command (robot id "255") to all robots.

You can accomplish the same using UDP broadcast on a Wifi system, but the XBee approach will be cheaper with lower power consumption.
Surveyor Corporation
  www.surveyor.com

Offline roboboy12

  • Jr. Member
  • **
  • Posts: 26
  • Helpful? 0
  • bang man
Re: 21 Wireless Robots...Advice Needed!
« Reply #5 on: December 31, 2008, 12:58:00 PM »
could try sonar, line following or hacked gps
Roboboy12 ;>

Offline jamort

  • Supreme Robot
  • *****
  • Posts: 375
  • Helpful? 2
Re: 21 Wireless Robots...Advice Needed!
« Reply #6 on: December 31, 2008, 02:27:56 PM »
could try sonar, line following or hacked gps
ok well sonar unless you got different frequencies would be hard to do and it would be hard to buy 21 differtent frequencies
line following? i'm not sure how that would make them communicate with each other...
hacked gps might work if the robots are big enough.... it be pretty hard to do it in one little space because i hear most gps can be off be about 10 feet
my english teacher once said, "dont talk about what you dont know in public...."

so I replied the truth, " Exactly why I dont ever talk about English."

Offline joemcm63Topic starter

  • Beginner
  • *
  • Posts: 3
  • Helpful? 0
Re: 21 Wireless Robots...Advice Needed!
« Reply #7 on: January 05, 2009, 10:31:07 PM »
Thanks for your help!  I have been taking a closer look at Bluetooth RS232 adapters, specifically the Sparkfun (http://www.sparkfun.com/commerce/product_info.php?products_id=8495 ).  Class 1 Bluetooth has a 100 meter range and uses 10 to 100 times less power than wifi.  Bluetooth seems to be a simple solution because the wireless connection is automatically mapped as a COM port on your computer.  We would only need a single cheap USB/Bluetooth dongle on the laptop to communicate with all devices.  The drawback is that only seven RS232 devices can connect to one master.   This should be fine for our initial three robots, but might cause problems when more are added. 

Is there any way to get around the limit of seven devices in a piconet?  Could we "park" unused devices so only seven are active at a time, or use multiple base transmitters from the laptop?

Also, does anyone have experience with Bluetooth RS232 operating a motor controller?

Offline hgordon

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 373
  • Helpful? 7
Re: 21 Wireless Robots...Advice Needed!
« Reply #8 on: January 05, 2009, 10:41:46 PM »
Good luck getting anywhere close to 100m with Bluetooth Class I.  I got better range with the 1mW XBee radios than I ever got with Bluetooth.

If you use a shared radio channel with Zigbee, you only need one device attached to the host computer and can share the channel between a large number of robots.
Surveyor Corporation
  www.surveyor.com

 


Get Your Ad Here