Title: Cooperative%20Robotic%20Simulator%20Environment%20Simulator
1Cooperative Robotic SimulatorEnvironment
Simulator
- Masters Report
- Scott J. Harmon
- May 12, 2004
- Cooperative Robotics Simulator Group
2Outline
- Introduction
- Overall system
- Demo
- Environment Module
- Main Loop
- Map Component
- Robot and Sensor Components
- Module Communications/Major Protocols
- Robot lt--gt Environment
- Viewerlt--gt Environment
- Future Work
- Network improvements
- Map improvements
- Reflection
3Overall System Architecture
- Multiple Modules written in Java
- Environment
- Robot
- Viewer
- Control Panel
- Communications
4Overall System Architecture-2
1
5Example Deployment
6Demonstration
7System Components
8Environment Components
9Environment Module
- Coordinates and drives the simulation
- Main Loop using time-step based approach
- Models the virtual environment
- Keeps track of positional and state information
of all objects in the virtual environment
10Environment - Main Loop
- Iterated for each time-step
- Time-steps size is set at runtime
- Drives the simulation
11Environment - Main Loop-2
1 waitForRobots() 2 setState(STATE_ROBOTS) 3
sendObjectsToVRMLClients() 4 currentTime 0 5
running true 6 setState(STATE_RUNNING) 7
while(running) 8 //get the event for this
timestep from each Robot 9 //lock the
robotqueue 10 synchronized(robots) 11 //This
double-stepped get allows the stuff to travel
here before I block trying to get it. 12 for
(int i 0 i lt robots.size() i)
13 EnvironmentObjectRobot robot
(EnvironmentObjectRobot) robots.get(i) 14 robot
.prepGetEvents(currentTime) 15 16 for (int i
0 i lt robots.size() i) 17 EnvironmentObj
ectRobot robot (EnvironmentObjectRobot)
robots.get(i) 18 robot.queueEvents() 19 20
21 //process queue from front
(top). 22 processActionEventQueue() 23 //send
out sensor readings to robots. 24 processSensorEve
ntQueue() 25 //add timestep to
VRMLUpdates. 26 for (int i 0 i lt
viewerUpdateQueue.size() i) 27 ((ViewerUpdat
eLocation)viewerUpdateQueue.get(i)).timestep
currentTime 28 29 //send out VRMLUpdates to
the VRML viewer 30 sendViewerEvents(viewerUpdateQu
eue) 31 currentTime 32 try 33 Thread.sleep(
steppausetime) 34 catch (InterruptedException
e) 35
12Communications between Modules
- Java Socket used
- Each component connects on a pre-determined port
to the Environment. - Serializable objects are sent over the Socket
connection.
13Robot lt--gt Environment Protocol
14Viewer lt--gt Environment Protocol
15Conclusions
- Simulator is distributable because of the
modularity - Modules communicate using protocols over a socket
connection - Environment module is responsible for
orchestrating the simulation and for modeling the
virtual environment.
16Future Work
- There are three areas in the Environment module
to improve - Network
- Map
- Reflection
17Future Work Network
- Network is utilized for communications between
modules - Enhancements
- Optimize by reducing amount of communications
- Improve latency
- Fetch Robot commands in separate threads while
previous commands are being evaluated
18Future Work Network-2
19Future Work Map Component
- Map Component in charge of modeling the virtual
environment - Enhancements
- Domain specific Map components
- What physics needs to be modeled?
- Collision Detection improvements
- Java3D
- Grid World (Change time into space)
- Distribute
- Can we distribute the maintenance of the virtual
environment across multiple system? - Compound objects (grouping)
- A robot might be made up of more than one
geometric shape.
20Future Work Reflection
- Java Reflection allows the dynamic loading of
classes by name - Enhancements
- Make all sensors and effectors loaded dynamically
by name - Allows us to add sensors and effectors without
the need to modify the original code - Different Maps (virtual environment maintainer)
loadable by name - Allows pluggable components
21References
- 1 The Official Project website,
http//www.cis.ksu.edu/sdeloach/ai/projects/crsim
.htm
22Acknowledgements
- Committee
- Dr. DeLoach
- Dr. Gustafson
- Dr. Hsu
- Teammates
- Venkata Prashant Rapaka, Arun Prakash Ganesan,
Esteban Guillen, and Aaron Chavez
23Questions