COMP329: RoboSim

Robotics and Autonomous Systems

 

Resources

  1. Jar:

  2. comp329robosim.jar

  3. Getting Started:

  4. RoboSym Guide.pdf

  5. JavaDocs:

  6. comp329robosym java docs

  7. Note that these documents could be improved.  If there are any queries or inaccuracies, then please contact me

  8. Example config file:

  9. robosimDefaultConfig.txt

  10. Jason Environment:

  11. Jason Github Site

  12. Programming Multi-agent Systems in AgentSpeak Using Jason. Rafael H. Bordini, Jomi Fred Hubner and Michael Wooldridge (Wiley, 2007)

  13. The AgentSpeak / Jason book (pdf)

Simple Robot Simulator for COMP329 Assignments

The RoboSim Java package is designed to simulate a simple LeJOS style Lego Robot environment that can be used to test out simple programs, and to simulate robot control within the AgentSpeak / Jason environment.  It has been modeled around the APIs used for the Lego Robot, which were taught and used for the first Assignment within COMP329 Robots and Autonomous Systems.  Thus, they provide complementary functionality including:


  1. Bump Sensor (in the direction of travel) - isBumperPressed()

  2. Directional UltraSound Proximity Sensor - getDirection(), setDirection(int degrees), getUSenseRange()

  3. Colour Sensor - getCSenseColor()

  4. Pose Query methods - getHeading(), getX(), getY()

  5. Speed / Rotation / Distance methods - setTravelSpeed(int travelSpeed), rotate(int degrees), travel(int distance)

  6. Real Time Robot Diagnostic Information - monitorRobotStatus(boolean verbose)


Furthermore, the arena, in which the robot moves, provides:


  1. Configurable arena modeling

  2. Obstacles and “victims” (red, green and blue)

  3. Dead Reckoning control


The functionality provided within the RoboSim API is basic, but provides the necessary action and perception methods that more complex functionality can build upon.  A number of assumptions have been made with the package, including:


  1. The robot has a 10cm radius circular body to simplify navigation around obstacles

  2. The robot can navigate around cells and can be positioned independently of the number of cells in the arena, and can move in any direction

  3. Cells are 35cm (350mm) square; this is also the size of obstacles and victims

  4. The robot can rotate in a positive and negative direction by specifying the number of degrees to rotate.  Simple rotation (e.g. turning left or right) can be achieved by specifying an angle of 90 (or -90), but finer grain control is also possible

  5. The robot can move a fixed distance and will then stop, based on a distance to travel.  This is specified in mm, and thus moving from the centre of one cell to the centre of another can be achieved by moving 350mm.

  6. The bump sensor triggers if the body comes into contact with an obstacle that causes the robot to stop.  If the robot rotates such that it no longer collides with the obstacle, then the sensor resets.

  7. Methods for moving forward, rotating or turning the UltraSound Sensor are blocking (i.e. the code will wait until the robot has completed the task), but the robot will move at a specified speed until it has reached its goal.


Full details on getting started with the system are available from the Robosim guide (see at the top of this page).