Reference no: EM132725382
This Assignment assesses the following module Learning Outcomes (Take these from the module DMD):
Learning Outcomes:
9a. Knowledge and Understanding:
Successful students will typically:
• have a knowledge and deep understanding of a variety of AL techniques and methods applicable across domains ranging from molecular computational biology and evolution of agents to behaviour-oriented and social robotics.
9b. Skills and Attributes:
Successful students will typically:
• be able to critically evaluate and articulate some recent Artificial Life paradigms for building agent systems and modeling biological systems.
Assignment Brief: Robot Navigation - Line Following and Passing Interaction Program for Thymio II Robot.
This assignment is Practically based and requires you to plan and produce a program for the Thymio II robots. Your program, which should be running identically on two Thymio Robots, should provide the following behaviours when the robots are running in the provided simulated Robot Arena (ASEBA Playground) :
1. The two robots should both be initially placed in random positions, one outside the dark blue oval track, and one inside the dark blue oval track. The track consists of a dark blue line on the Arena floor, and which is in the shape of an oval. Both robots should explore, avoiding any obstacles in the way (including the Arena Wall boundary) until the dark blue oval track is encountered.
2. When the circular track/line is encountered, the robots should both turn left and then follow the darl blue track/line (i.e. in opposite directions, one moving Clockwise (CW) and the other Counter-Clockwise (CCW)). Whenever the respective robots meet each other at any point while following the track, they should both move aside allowing them to pass each other safely without collision, then find their way back to the track/line, then carry on following the circular track/line in the same direction they were originally travelling in.
Program Planning and Robot Architecture
Robot Control Architecture Diagram
Before writing your program code, it is necessary to plan and organise your program. Typically this involves selecting a control architecture to be used, defining the various states and/or behavioural elements that will be necessary to allow the robot to navigate round the track, and using some form of Arbitration to trigger the appropriate actions for the robot to make suitable movements (i.e. sequences of actions) when another robot is encountered. For planning your program, it is essential that you first produce a diagram that shows your proposed Robot Control Architecture, and how the various behavioural elements are triggered. Though it is possible to use a number of possible Control Architectures (see lecture notes) to plan your program, for this task it is recommended to use a control architecture which uses Augmented Finite State Machines (AFSMs) and/or Subsumption principles. A hybrid type control architecture is acceptable. For example, where an AFSM might be used to select/enable sets of Subsumption Behavioural Elements, or Subsumption might be used to activate/trigger different AFSMs (Sequences), etc.
Developing Your Program
Using your Robot Control Architecture Diagram as a guide, write the program for the Thymio II robots. Use the ASEBA Playground simulator to develop your program. You do not need to run your program on the real Thymio robots but just use the ASEBA Playground simulator. When developing your program, do not try to do everything in one go! The suggested order to implement the functionality is as follows:
Basic Functionality:
1. Implement the "LINE_FOLLOW" state/behaviour, so your robot can reliably follow the desired circular track on the Robot Arena in ASEBA Playground, when initially placed ON the track/line.
2. Add an "EXPLORE" state/behaviour that allows the robot to drive forward until the dark blue oval track is found, which then triggers or enables the previously tested "LINE_FOLLOW" behaviour. Make sure that the "outside" robot follows the line in the opposite direction to the "inside" robot. (Note, both robots should run the same program)
3. Use two robots and first get them to stop at a suitable distance when they meet each other when driving around the circular track. This should then trigger a transition to a suitable state(s) or set of subsumption behaviours.
4. Implement the sequence of robot Actions (states/sequence/behaviours) that are required to allow the robots to pass each other safely. The basic algorithm for this is: robot turns by some angle to the Right, then drives in a leftwards semi-circular path so that the robot deviates away from the line but then swings around in an arc back towards the line further on, then resumes LINE_FOLLOW. This sequence should allow the other robot to do exactly the same actions, so that both pass each other without collision. Hint: use the timer to trigger the robot actions in the order/sequence required.
5. Code comments and clarity of reading and understanding
Advanced Functionality, in order of increasing difficulty:
1. Add a "STOP" state/behavioural element to your program that allows one of the buttons to Stop/Start the robots (convenient for placing your robot before running it after re- programming it!). Note, Although not essential, this is very convenient for setting up and testing your program!
2. Implement a behaviour that keeps the robots within the outer boundary Dark Black line.
3. Modify your safe passing sequence to allow for the case when an object blocks the track while in "LINE_FOLLOW" state. (Hint, you possibly only need to modify the various parameters used for the passing sequence (motor speeds, timings etc.)
4. Implement object avoidance in the case that an object is encountered while "EXPLORE" behaviour is active and the robot is searching for a Line to follow.
5. If the Line is lost while the robot is in "LINE_FOLLOW" state, implement a recovery behaviour/sequence that triggers a transition to "WANDER" state. Hint, use a timer to abandon "LINE_FOLLOW" after a period of NOT sensing a line.
6. Code comments and clarity of reading and understanding.