COM1005编程讲解、辅导Python程序、Java,C++程序语言调试 辅导留学生Prolog|讲解留学生Processing

- 首页 >> Java编程
COM1005 Ver 1.0 2020–21
COM1005: Machines and Intelligence
Assignment 2
Exploring Intelligent Agent models 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. All students should have
code backups in case any questions arise.
Please post questions regarding the assignment to the relevant discussion board.
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 an agent-based program
that would let MiRo explore the environment, with the goal of reaching the ‘STOP’ sign at the far end
of the tables. You need to implement two agent models in one program. The first, simple reflex
agent, would move forward until it reaches a cliff, upon which it should turn away. The second,
model-based driven reflex agent in addition to avoiding cliffs should have some sort of memory of
previous states and can use complex movements. Switching between agents should be possible onthe-fly
by using one of the interaction buttons (e.g. stroke, clap).
Assessment
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 ‘memory’ of states and optimising exploration
strategy. Agent switching functionality is also included here.
• [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 variables in your code.
• [1p] Use of functions in your code.
• [1p] Bonus point if MiRo succeeds in less than 3 minutes!
Bonus points may be also awarded at tutor’s discretion for especially elegant solutions.
COM1005 Ver 1.0 2020–21
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.
Notes
• 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 sonar in the nose, provided MiRo’s head is in the correct
pose.
• You can use various methods when implementing the model-based reflex agent, such as
detecting on which side the cliff was detected, what is the best turn angle, what were the
previous turns, etc. You can even try to build a simple odometry system and approximately
track MiRo’s location on the table, to determine what is the best way to go.
• 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.

站长地图