联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2020-11-10 11:24

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.


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp