On February 18, 2020, NASA’s rover called “Perseverance” successfully landed on Mars. The mission of this high-tech 6-wheel rover is to explore the surrounding areas, analyse the Martian soil on different locations, take high definition pictures as well as audio recordings. The ultimate hope for NASA is that this rover may find evidence that there was once a form of life on planet Mars. You can read more about this rover on the official NASA website.
The rover and all its various sensors and electromechanical devices are controlled using a range of preloaded algorithms. New algorithms can also be transmitted to the rover via ultra high frequency (UHF) radio transmission.
The NASA is asking you to write a few new algorithms that will be used to explore a new specific zone on planet Mars. You will have to design, implement and test 7 algorithms to compete the different missions set by NASA. You will be able to test your algorithms using our Mars Perseverance Simulator Environment (MPSE).
Mission 1: Delimiting the area
The area, the rover will cover is a square of 400m by 400m situated in the North-West area of the Jezero Crater. Your first mission is to implement an algorithm to direct the rover around the perimeter of this area: The path to follow has been traced in white on the Mars Perseverance Simulator Environment.
The code used to initialise the rover for this mission has already been completed for you (line 1 to 20) and you will not need to update this code. However, you will need to complete this code from line 22.
Note that the rover can respond to the following instructions:
- rover.forward(distance)
- rover.left(angle)
- rover.right(angle)
For instance, you can try the following code to get you started:
rover.forward(200) rover.left(45) rover.forward(100)
Mars Perseverance Simulator Environment (MPSE):
Mission 2: Code Optimisation
The rover being located more than 240 million km away from NASA’s Control Centre (on planet Earth!), the radio transmissions needs to be optimised by reducing the quantity of data that needs to be transmitted to the rover.
NASA would hence like you to review the code you produced to complete mission 1 to see if it would be possible to provide a shorter algorithm (in other words to reduce the number of lines in the code needed to direct the rover around the perimeter).
To do so you will need to use a for loop which will enable you to reduce the number of repeating instructions in your code.
For instance, you can try the following code to get you started:
for i in range(3): rover.forward(200) rover.left(120)
You will need to adapt your code from mission to make effective use of a for loop, and hence reduce the amount of data to be transmitted from planet Earth to planet Mars.
Mars Perseverance Simulator Environment (MPSE):
Mission 3: Exploring the whole area
NASA would like to create a detailed surface map of the delimited area. To do so, it needs the rover to circulate through the whole area. The path to follow has been highlighted in white in the simulator environment. Write an algorithm to direct the rover alongside this path. Make sure your code is optimised to limit the amount of data to transfer across to the rover.
Mars Perseverance Simulator Environment (MPSE):
Mission 4: Alternative Path
NASA would like to investigate an alternative path to cover the whole area. The path to follow has been highlighted in white in the simulator environment. Once again, your mission is to write an algorithm to direct the rover alongside this path. Make sure your code is optimised to limit the amount of data to transfer across to the rover.
Mars Perseverance Simulator Environment (MPSE):
Mission 5: Finding Craters
While completing the full map of the area, the rover identified three small craters. NASA would like you to write an algorithm to visit these three craters one at a time using the information provided on the highlighted path.
Mars Perseverance Simulator Environment (MPSE):
Mission 6: Finding Craters near a rift!
NASA would like the rover to explore three additional craters. However these are located next to a rift. NASA would like you to write an algorithm to visit these three craters one at a time. You will have to do so making sure the rover does not fall into the rift!
Mars Perseverance Simulator Environment (MPSE):
Mission 6: Giant Crater Exploration
Finally, NASA would like to explore one giant crater by taking the rover all around the crater. You will need to write an optimised algorithm to go around the crater using the information provided on the highlighted path.
Remember: To optimise your algorithm, you should make use of a for loop. e.g.
for i in range(3): rover.forward(200) rover.left(120)
Mars Perseverance Simulator Environment (MPSE):
Solution...
The solution for this challenge is available to full members!Find out how to become a member:
➤ Members' Area