联系方式

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

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

日期:2020-11-06 11:26

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.


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

python代写
微信客服:codinghelp