Jul 10th 2009 (Friday) bug:
*I set up the RFID tags on the bottom of 12 rugs and put them in a 4x3 grid
in the lab for testing. I used the OMRON tags since the Frog tags appear
to all have the same ID
*I connected the RFID reader and all of the other devices (webcam, roomba,
urglaser) to the USB hub
*I began trying to run Travis's RFID logger program and the player logger
simultaneously, which is what my heatmap generator requires. However, I
was having trouble getting the RFID reader up at first. I then realized
that the device ID had changed to /dev/ttyUSB0 from /dev/ttyUSB1 (I do not
have a device alias set up, so I have to be careful about this). This
allowed me to begin taking RFID tag readings every specified time interval.
I then started up the logging program first, and tried to start up the
player server to communicate with the roomba and urglaser as usual, so that
I could have RFID reads, laser, and odometry data all logged
simultaneously. However, I started getting weird hex values in the console
where the player server was running, and the player server would hang.
Here are the steps I took to try to solve this problem (none of which
solved the problem):
-Unplugged the RFID reader from the USB hub and put it into its own port
-Lowered the BAUD rate in Travis's RFID reader program
-Started the player server first, then the RFID reader instead of the other
way around (the RFID logger would start successfully, but then the player
logger would freeze)
-Unplugged all USB devices and plugged them back in
-Varied the timeout in Travis's program (the time interval between RFID
reads); from 50 (default), to 100, to 200, to 500, to 1000. None of these
changes helped this problem
**The problem appears to be some sort of interference between USB devices.
The player logger works absolutely fine still when Travis's RFID logger
program is not running. But it consistently hangs when I try to run them
both simultaneously. I find this strange, since the roomba and the RFID
reader explicitly have different device aliases. One solution could be to
wait for the new RFID reader, which has a bluetooth connection. My hope
would be that if I used the RFID reader through bluetooth instead, that the
two separate programs would log happily without interfering with each
other. If this doesn't work, then plan B would be to create a script to
start up Travis's program, to stop it, then to start up the player server
and have the robot inch forward a bit, to stop that, then to start up
Travis's program again, etc.. This is not desireable for obvious reasons,
so hopefully the Bluetooth will solve the problem.