联系方式

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

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

日期:2019-03-12 10:26

Robotics Assignment 2: Maze Navigation and

Mapping

Due: 22 Mar 2019 at 18:00

Assessment

This exercise is assessed and is worth 20% of your module

mark.

Assessment is by demo and code submission.

Deadline

Your major deadline is Friday 22nd March. The following week, you

will have to give a presentation on, and demo, your work. Your

whole team must be present for this. Failure to attend a viva

means you get 0 marks for the assignment. If you have welfare

issues then your absence must be supported by the welfare team.

Assignment Overview

Figure 1: An example course from the RoboCupJunior Rescue Maze competition (if only ours looked

like this!)

This assignment is based upon the RoboCupJunior Rescue

Maze task. However, we will be only considering a subset of the

tasks involved in this challenge in this assignment which focuses on

getting your robot to navigate through the maze, identifying threats

and victims as it goes along. Your robot does not have to find the

fastest path through the maze, instead, it should explore as much of

the maze as possible while mapping the environment in the

process.

The following information describes the set up of the course:

The Maze:

Walls that make up the maze are ~30cm high (no peeking

over!)

The width of the path is between ~30cm.

Doorways are at least 29cm wide.

The Floor:

The floor can be viewed as a set of 30 x 30cm coloured

tiles.

Given this, the maze will be 6 tiles long by 9 tiles wide.

In between the tiles, there will either be a wall (~10cm

thickness) or a ~10cm space to travel across.

Your robot can travel over white tiles.

Green tiles in the maze represent "no go" zones that your

robot should not cross. Green tiles will be placed

randomly throughout the maze.

There are black lines on the floor to help the TAs can set

up the mazes. You should ignore these black lines. Don't

use the black lines to help you navigate or map the maze.

The Path:

In the maze, walls that lead to the entrance/exit are called

linear walls

Walls that do NOT lead to the entrance/exit are called

floating walls.

The starting tile, the home tile, will be the bottom leftmost

tile. Assume this to be as though you were viewing the

maze parallel to the widest edge.

The robot should start and finish their run at this home

tile (a robot has at most 15 minutes for a run, after which

time it will have to be stopped to let the next group be

marked).

The robot will encounter an end tile. This will be red.

When this is found, your robot, if it is able to, must travel

the shortest path back to the home tile.

The maze you encounter in the viva will be one that you

haven't encountered before, so do not waste time trying

to pre-map the maze before your viva.

The tasks that you have to consider for your robot system that you

will be developing are as follows. All of the robot's task should be

embedded into a single program that runs on your robot (i.e you

must not change the program that your robot is running to adapt to

the different tasks):

Part 1 [6 marks] - travelling through a maze.

Build a program that enables your robot to travel through a maze

to reach an end square. Your robot should be able to navigate the

maze without crashing into the walls. You can use the distance

sensors or the touch sensors to do so.

A basic robot should follow the walls of a maze. A more

sophisticated robot should use a heuristic based approach that

overcomes the shortcomings of wall-following maze solvers, such

as getting stuck in loops.

If your robot encounters a green square, it must not travel over this.

Code Submission For the code, please include your solutions for

the following problems, as described above:

Code that enables your robot to travel through a maze

environment without bumping into any walls.

Code that stops a robot from travel over green tiles.

Part 2 [6 marks] - mapping a maze

While your robot is travelling through a maze, it must also be

mapping the maze. It must generate a map indicating the location

of walls and potential paths from tiles. This must be accurate and

reflective of the current state of the maze that the robot is in. In

doing this, the robot must keep track of its current location, its

heading and a history of its previous locations.

Code Submission For the code submission, please include your

solutions for the following problems, as described above:

? Code that enables the robot to accurately map and store the

state of the maze.

Code that stores the current location of the robot and a history

of its previous locations in the maze.

Part 3 [4 marks] - travelling the shortest path

home

Your robot will eventually find an end marker in the maze. This will

be a red piece of paper. From this, your robot should determine

and travel the shortest path from the end square to the home

square. The shortest path is defined as the path from the end

square to the home square that covers the least possible number of

squares to be travelled.

N.B If your robot has not mapped the whole maze yet, it may not

know the shortest path. In this case, your robot should carry on

mapping the maze until such a point that it is confident about the

shortest path. At this time, it should travel back to the end square,

then back to the home square, following the shortest path.

Code Submission

For the code, please include your solutions for the following

problems, as described above:

Code that generates the shortest path from the end square to

the home square.

Code that decides if the robot has discovered enough of the

maze to make the decision regarding whether the shortest

path can be determined.

Part 4 [4 marks] - Viewing the map

Develop a way to view the current state of the map that the

robot is generating. At a minimum, an occupancy grid should be

displayed on your robot's LCD display. Preferably, your robot should

remotely communicate with a client running on a lab machine or

your laptop that should update a GUI containing an occupancy grid

in real-time in response to the robot's movements and its view of

the maze.

Code Submission

For the code, please include your solutions for the following

problems, as described above:

? Code that displays an occupancy grid on your robot's LCD

screen.

Code that displays an occupancy grid on a PC that is remotely

connected to your robot.


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

python代写
微信客服:codinghelp