Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
2. Learning Outcomes
This assessment is relevant to the following Learning Outcomes:
1. Analyse and Solve computing problems; Design and Develop suitable algorithmic solutions using software concepts and skills both (a) introduced in this course, and (b) taught in pre-requisite courses; Implement and Code the algorithmic solutions in the C++ programming language.
2. Discuss and Analyse software design and development strategies; Make and Justify choices in software design and development; Explore underpinning concepts as related to both theoretical and practical applications of software design and development using advanced programming techniques.
3. Discuss, Analyse, and Use appropriate strategies to develop error-free software including static code analysis, modern debugging skills and practices, and C++ debugging tools.
4. Implement small to medium software programs of varying complexity; Demonstrate and Adhere to good programming style, and modern standards and practices; Appropriately Use typical features of the C++ language include basic language constructs, abstract data types, encapsulation and polymorphism, dynamic memory management, dynamic data structures, file management, and managing large projects containing multiple source files; Adhere to the C++11/C++14/C++17 ISO language definition and features.
5. Demonstrate and Adhere to the standards and practice of Professionalism and Ethics, such as described in the ACS Core Body of Knowledge (CBOK) for ICT Professionals.
3. Assessment details
One challenge in robotics is called path planning. This is the process of the robot figuring out how to navigate between two points within some environment. In this assignment you will implement a simplified path planning problem for a robot moving about a simple 2D maze.
In this assignment, the simple 2D maze will be represented as a grid of ASCII characters. For example:
Aspects of the maze are represented by different symbols:
Symbol Meaning
. (dot)
= (equal) ~ (tilda)
Empty/Open Space. The robot can enter any open space.
Wall or Obstacle within the maze. The robot cannot pass obstacles
The edge of the maze. Every maze is always bounded by the edge symbols
Each location in the maze (including the maze edges) is indexed by a cartesian (x,y) co-ordinate. The top-left corner of the maze is always the co-ordinate (0,0), the x-coordinate increases right-wards, and the y-coordinate increases down-wards. For the above maze, the four corners have the following co-ordinates:
For the purposes of this assignment we will make two important assumptions:
1 The robot knows the map of the whole maze
2 It may not be possible for the robot to reach every empty space
For this assignment, the robot:
• May only be located at cells with empty spaces.
• The robot can move to any one of 4 cells, that are to the left, right, up, or down from the robots originating cell. • For this assignment the direction the robot is “facing” is ignored.
In worked examples, the robot’s position will be marked by a star.
For example, if the robot is at position (8,2):
then the robot could move to positions (8,1) or (8,3). 3.1 Reachable Positions
For this assignment, you will develop a simplified path planning solution1. In Milestone 2 you will develop a base algorithm, which can be used in Milestone 3 to develop the path planning algorithm.
The Milestone 2 algorithm, is given the starting position of the robot and calculates:
• All possible locations that the robot can reach from x
• The number of spaces that each position is from x, which is equivalent to the number of moves the robot would need to make to reach each position.
This algorithm is given below.