辅导COM1005编程、讲解Python设计程序、Python语言编程调试
- 首页 >> Matlab编程 COM1005 Ver 1.1 2020–21
COM1005: Machines and Intelligence
Assignment 2
Exploring Intelligent Agents with MiRo
Logistics
For this assignment students are randomly allocated into groups of four. The Groups tool on the
module’s Blackboard page can help you collaborate and organise your work.
Working within your groups, you will develop a Blockly program within the MiRoCloud simulator
(description below). Once group members decide the work is ready for submission, one of the
students should submit the code on behalf of their group via Blackboard. If needed, a comment to
the program can be added on the submission page. All students should have code backups in case
any questions arise.
There is a dedicated thread ‘Questions on Assignment 2’ for any queries regarding this assignment.
Task description
In Assignment 2 you will use the concepts of simple and model-based reflex agents, introduced in
the lectures, to build an exploration program for the MiRo robot.
Working within the default ‘tables’ world in MiRoCloud, your task is to build a program that would let
MiRo explore the environment. Reaching the ‘STOP’ sign at the far end of the tables would indicate
the completion of the program. In this program, you need to implement two agent models and a
mechanism to switch between them on-the-fly by using one of the interaction buttons (stroke, clap).
1. The first, simple reflex agent, should simply move forward until it reaches a cliff, upon which
it should move back slightly and turn away. It can differentiate which cliff sensor was
triggered (left, right, both) to determine turn angle. The agent should also have a mechanism
to detect the ‘STOP’ sign.
2. The second, model-based driven reflex agent can react to percepts with a sequence of
movements and should take into account previous percepts to optimise exploration. This
agent may use information about previous cliff detections, orientation, distance from the
starting point, etc — anything that can be obtained from the environment and previous
actions. The exact implementation is not specified; however, note that your agent should not
become a goal-based agent, programmed simply to move to the ‘STOP’ sign.
Hand-in
Assignments in the form of MiRoCloud code should be submitted via Blackboard. Please use the
following format to name your submission: ‘GroupX_Assignment2.mirocloud’, where X is your
allocated group number. Only one submission per team is accepted.
The deadline for submission is at 15:00 on Tuesday, November 10, 2020.
Standard departmental penalties for lateness will be applied. Standard University rules pertaining to
plagiarism, collusion and unfair means also apply.
Assessment
COM1005 Ver 1.1 2020–21
Assignment 2 constitutes 5.0% of the module mark (10.0% of Semester 1). The submissions are
assessed on a point-based system, with a maximum of 10 points. All group members receive the
same mark. Code submissions will be checked against the following criteria:
• [2p] Simplex reflex agent: implementing a robust edge detection and avoidance system. MiRo
should not fall of the table and should recover if it drives too close.
• [3p] Model-based reflex agent: implementing an internal state tracker based on percept
sequence—“memory”, to improve the improving exploration strategy when compared to the
simple reflex agent. Agent performance indicators include: distance travelled and time to
completion, number of tables visited.
• [1p] Mechanism to switch between the agents, while the program is running.
• [1p] Detection of ‘STOP’ sign, indicating successful completion of the task.
• [1p] MiRo should do a celebratory dance upon reaching the ‘STOP’ sign.
• [1p] Use of functions and variables in your code.
• [1p] MiRo succeeds in less than 3 minutes.
Extra points may be also awarded at tutor’s discretion for especially elegant solutions.
Notes
• Please consult the wiki for Block descriptions, code examples, and more.
• Save often! Make versioned backups of your work in case you need to revert back.
• Your program should run with the built-in cliff reflex disabled (see figure)
• You can remove unnecessary objects that might interfere with your program (e.g. coke cans)
by right-clicking on an object and selecting ‘Delete’. However, note that to bring the object
back you will need to restart your MiRoCloud instance!
• ’STOP’ sign can be detected using the sonar in the nose, provided MiRo’s head is in the
correct pose. Using vision Blocks is allowed, but it is more complex and less reliable.
• It is useful to print comments on the terminal during runtime for key stages of your code. In
the same way, you can also add a description at the beginning of you program, if you think
you need to explain some functionality.
• Python submissions are allowed, but discouraged.
COM1005: Machines and Intelligence
Assignment 2
Exploring Intelligent Agents with MiRo
Logistics
For this assignment students are randomly allocated into groups of four. The Groups tool on the
module’s Blackboard page can help you collaborate and organise your work.
Working within your groups, you will develop a Blockly program within the MiRoCloud simulator
(description below). Once group members decide the work is ready for submission, one of the
students should submit the code on behalf of their group via Blackboard. If needed, a comment to
the program can be added on the submission page. All students should have code backups in case
any questions arise.
There is a dedicated thread ‘Questions on Assignment 2’ for any queries regarding this assignment.
Task description
In Assignment 2 you will use the concepts of simple and model-based reflex agents, introduced in
the lectures, to build an exploration program for the MiRo robot.
Working within the default ‘tables’ world in MiRoCloud, your task is to build a program that would let
MiRo explore the environment. Reaching the ‘STOP’ sign at the far end of the tables would indicate
the completion of the program. In this program, you need to implement two agent models and a
mechanism to switch between them on-the-fly by using one of the interaction buttons (stroke, clap).
1. The first, simple reflex agent, should simply move forward until it reaches a cliff, upon which
it should move back slightly and turn away. It can differentiate which cliff sensor was
triggered (left, right, both) to determine turn angle. The agent should also have a mechanism
to detect the ‘STOP’ sign.
2. The second, model-based driven reflex agent can react to percepts with a sequence of
movements and should take into account previous percepts to optimise exploration. This
agent may use information about previous cliff detections, orientation, distance from the
starting point, etc — anything that can be obtained from the environment and previous
actions. The exact implementation is not specified; however, note that your agent should not
become a goal-based agent, programmed simply to move to the ‘STOP’ sign.
Hand-in
Assignments in the form of MiRoCloud code should be submitted via Blackboard. Please use the
following format to name your submission: ‘GroupX_Assignment2.mirocloud’, where X is your
allocated group number. Only one submission per team is accepted.
The deadline for submission is at 15:00 on Tuesday, November 10, 2020.
Standard departmental penalties for lateness will be applied. Standard University rules pertaining to
plagiarism, collusion and unfair means also apply.
Assessment
COM1005 Ver 1.1 2020–21
Assignment 2 constitutes 5.0% of the module mark (10.0% of Semester 1). The submissions are
assessed on a point-based system, with a maximum of 10 points. All group members receive the
same mark. Code submissions will be checked against the following criteria:
• [2p] Simplex reflex agent: implementing a robust edge detection and avoidance system. MiRo
should not fall of the table and should recover if it drives too close.
• [3p] Model-based reflex agent: implementing an internal state tracker based on percept
sequence—“memory”, to improve the improving exploration strategy when compared to the
simple reflex agent. Agent performance indicators include: distance travelled and time to
completion, number of tables visited.
• [1p] Mechanism to switch between the agents, while the program is running.
• [1p] Detection of ‘STOP’ sign, indicating successful completion of the task.
• [1p] MiRo should do a celebratory dance upon reaching the ‘STOP’ sign.
• [1p] Use of functions and variables in your code.
• [1p] MiRo succeeds in less than 3 minutes.
Extra points may be also awarded at tutor’s discretion for especially elegant solutions.
Notes
• Please consult the wiki for Block descriptions, code examples, and more.
• Save often! Make versioned backups of your work in case you need to revert back.
• Your program should run with the built-in cliff reflex disabled (see figure)
• You can remove unnecessary objects that might interfere with your program (e.g. coke cans)
by right-clicking on an object and selecting ‘Delete’. However, note that to bring the object
back you will need to restart your MiRoCloud instance!
• ’STOP’ sign can be detected using the sonar in the nose, provided MiRo’s head is in the
correct pose. Using vision Blocks is allowed, but it is more complex and less reliable.
• It is useful to print comments on the terminal during runtime for key stages of your code. In
the same way, you can also add a description at the beginning of you program, if you think
you need to explain some functionality.
• Python submissions are allowed, but discouraged.