Date: 16.01.2008
Duration of activity: 4 hours
List of participants: Alessandro, Daniela, Samuele
Goal: finish the last details and set up the presentation for tomorrow
Plan:
- build an exact copy of the robot;
- implement and debug MapBuilding;
- test the communication between the two robots;
- prepare a demo-show for the presentation.
MapBuilding
In our idea every robot has to keep the positions of all the party that it visited.
Every party can be considered just a couple (x, y) in the absolute coordinates system. We implemented this idea as an instance of the class Localization.
A map is then simply a list of these locations.
The problem of building the map is strictly connected with that of communicating the position of the party discovered.
This allowed us to merge the implementation of the management of the Bluetooth connection and the building of the map in the same class.
Subplan:
- add a 3rd sound sensor on the rear of the car
- test if this modification improves the performance
We noticed that sometimes our robot behaves in an unwanted way. When the robot is directed on the opposite side of the sound source, and close to a wall, while trying turning it would see the wall with the ultrasonic sensor, and avoid that continuously, while actually going far from the sound source.
We thought that we could avoid the problem by putting a third sound sensor on the robot's back, and using it only when there is a sensible difference between front sensors and rear sensor readings.
We implemented a new behavior, called Party Behind, which is connected to the Sound Perceiver as input, and is activated only when a sound source can be heard from behind the robot louder than on front.
We had then to had some more tricks to add. We previously had moved motors in the back of the robot in order to reduce noise on sensors. By putting a sound sensor on the back we made the robot continuously spin.
We then tried increasing the threshold needed between front and read sensors, but in this case, when the robot was going slowly, this behavior didn't work.
Then, as final solution, we added a trick inside the Sound Perceiver class. The Sound Perceiver class queries motors to know if they are moving or not. If they are, a fixed value is subtracted from rear sensor, otherwise not.
This is not an accurate solution, and therefore we couldn't use that for front sensor, that need to be accurate, but we decided to keep it for this experimental behavior.
Conclusion:
The Party Locating capability of our robots is ok, although it works better only for some kinds of sound.
We completed a working prototype of our original idea, but we still miss some details.
We should have worked more on motivations, to make robots less deterministic, and we should have tested the behavior of a big flock, but we didn't have time to test (and request enough NXTs).
File (all the project - under license GPL3):
PartyRobotsProject.rar
1 comment:
I seem very interesting your work.
Can you write me?
bre[at]juanantonio.info
Juan Antonio Breña Moral
www.juanantonio.info
Post a Comment