Title: Cooperative Robot Communication
1Cooperative Robot Communication
Client Supervisor Tom Gedeon Student Yi
WAN Date June 13 2007
2Overview of presentation
- Project background
- Project objective
- Architecture
- Design
- Implementation Details
- Conclusion
3Project background
Cooperative Robot Communication
4Project background
Cooperative Robot Communication
I am robot. I dont know the goal, and I dont
know who is foreman, but I will figure out who is
foreman later, I will help him to achieve the
goal.
I am robot foreman. I am the only one who know
the goal.
5Project Objective
A simulator with many useful functions for
cooperative robot communication.
6Project Architecture
7Project Design
Surface
CRC
Env
Further
Rules
Move
Control
Robot
Table
Recorder
8Implementation Details
9GUI
10Environment
- 2D top down view
- Environment can be square or rectangle
-
- Rules in the Environment
- Robot can not break out the border
- Table can not reach the border
- Robot can not push a robot
- Robot can not push from short side of table
- Robot and table can not over any robot and table
11Environment
- Robot ID and Table ID
- Robot and table has position parameters and
state - 2 dimension int array
- empty cell is 0
- robot cell is robot id
- table cell is table id
- push, rotate, every thing based on the array.
12Control
Allow Two players play together. -----------------
------------------------------- To Solve the Hit
multiple key in one time in Java
13Push and rotate
After any moves of robots, the simulator will
check situation of tables and robots. If it meet
the condition of pushing and rotating, it will be
pushed and rotated.
14Push and Rotate
In these situations, table will be pushed.
15Push and Rotate
In these situations, table will be rotated.
16Push and Rotate
In these situations, table will not be moved.
17Opening- Random position
In the default opening, the position of robots
and tables will be random. But they wont over
each other. Table wont next to border. Robot wont
in the blocked configuration.
18Opening- Initial file
There will be a crc.ini file as a initial file
besides the program. If there is no initial file,
the program will be started with default options.
19Opening- Inside the Initial file
These parameters define simulators option. Width
is width of simulator GUI. Height is height of
simulator GUI. size1 and size2 is environments
width and height. robot is the number of robots
when start the simulation. table is the number of
tables when start the simulation.
20Opening- Save and load opening
The positions of robots and tables can be save in
a file. When click the menu save start in file,
the program will save the start as start.txt
besides the program. When click the menu load a
start file, it will bring up a file chooser,
select any start.txt what saved previously and
click ok button, it will load the start.
21Opening- Inside start.txt
The line with 3 numbers defines a robot position,
first two number are position parameters of the
robot. The last number is the ID of robot. The
line with 4 numbers defines a table position,
first 3 number are position parameters of the
table. The last number is the ID of table.
22Replay
During the running of simulator, it will record
every moves of every robots in a replay file
replay.txt automatically. When click the menu
load a replay file, it will bring up a file
chooser, select any replay file and click ok
button, it will play the replay file. After
replay finished, the simulator will close itself
automatically.
23Replay inside replay file
- First part of replay file is same as start file.
- It will load start first.
- Then every move of robot.
- Parameters
- first two is position of robot
- Third number is robot id
- Fourth is the move direction
- Last one is state of robot
24Basic instinct
There are some basic instincts implementation in
this project. Basic instinct is very simple
artificial intelligence behavior.
25Basic instinct - Go to nearest robot
The robot can find nearest robot, then go to the
place near that robot. During the moving, the
robot can avoid the obstacles.
26Basic instinct - Go to nearest table
The robot can find nearest table, then go to the
place near that table. During the moving, the
robot can avoid the obstacles.
27Basic instinct - Obstacles avoid
The robot will avoid any obstacle during the
moving, when the basic instinct is enabled.
28Basic instinct - Functions
- There are some useful functions for future uses.
- getTableStatus(id)
- getDistance(id1,id2)
- pushingSideCheck(id)
- blockedCheck(id)
29Conclusion
- Summary
- Future work
- Add more basic instincts
- Change the robot size to smooth the rotating
- Add pull function to robots
30Questions?