|
Week 3:
Task
|
Comments |
Meeting with Mentors and Team |
We decided to leave the Mezzanine Project into John's hands for now. However, new questions/tasks arose:
1) Do you need an instance of player for each robot or 1 instance of player to control multiple robots?
2) Can one computer control multiple robots at the same time using bluetooth?
3) Can other bluetooth dongles interfere with the robots being controlled?
4) Look at PosixSerial on how to change the ROBOT_ADDRESS argument for one controller being used for multiple robots.
and Learn about Socket connections
5) Figure out how to model Scribbler robot (instead of the Pioneer in Player/Stage
(Look into Pyro's "How to interface your own robot")
|
Troubleshooting Pyro to use Player/Stage
|
Due to a change in the interface for shared libraries (particularly in playerc.h) in the newer version, there was trouble with Pyro's Python-binding. I learned that when bug fixes alter a library's interface, dependent programs run into problems. Therefore, it is important to be aware of changes in supporting libraries and keep them unmodified as much as possible so it provides backward compatibility.
The troubleshooting steps for getting Player/Stage to work with Pyro are in my notes.
|
Pyrobot
|
Look at how Roomba works within Player/Stage in Pyro. Observed its limitations, such as not being able to control multiple robots within the same graphical interface. Although Pyro makes the use of configuration files, robots, and controllers a straight forward process within a uniform interface, its limitations force me to continue using Player/Stage through the command line.
|
Myro |
Got Roomba and Scribbler connected at the same time using myro's libraries, but through an independent python shell, for example:
First, navigate to the myro folder where the robots (classes: roomba.py and scribbler.py) are located, and then start a Python console:
../myro/robots$ python
>>> import roomba
>>> robot1 = roomba.Roomba('/dev/ttyUSB0')
>>> import scribbler
>>> robot2 = scribbler.Scribbler('/dev/rfcomm0')
|
|