11.2. Project Description
Project aim and objectives
The aim of the project is to apply what you have learnt in this module and think of ways to solve a robotic problem that require the combination of computer vision and planning.
This project should offer the following opportunities:
Solve challenging robotic and computer vision problems.
Use ROS to program a simulated and real robot.
Collaborate with other people.
Write up a report about your system, reflecting on your experience.
Problem Definition
Example world. Two modules are shown. Left is the green module and the right is the red
module. The robot needs to enter the green module, explore the space, find the windows which contain the Earth and the Moon, process these images and produced the desired result as outlined in this specification.
Skip to main content
The assignment is set on a spacecraft that is travelling to the Moon from Earth and has been knocked off course by an explosion in one of two modules of the spacecraft. In order to recover the spacecraft, mission control needs to locate the craft which can only be done by finding the current distance of the craft from the Earth and the Moon. Time is limited, the mission control needs to locate the craft within 5 minutes.
You are asked to implement a program that controls a Turtlebot to record the measurements required by mission control using only the views from the windows of the spacecraft.
Your task
In order to record the necessary measurements, the robot must enter the safe module of the spacecraft and construct a single image containing both the Earth and the Moon using the views from the windows in the module.
Your robot needs to enter the “safe module”, which has a green circle near its entrance. The second module has become decompressed and has a red circle near its entrance. If your robot goes into this module it will be sucked out into space and destroyed.
Once you are in the safe module the robot must first locate the windows containing views of the Earth and the Moon. Due to the explosion, there may be several obstacles to navigate around in the module to reach each of the windows.
Skip to main content
Example view from window
Once the correct windows have been located the robot should acquire an image of each view and stitch the two images together to build one panoramic image. You will notice that the views from the two windows overlap.
From the panoramic view you should record a measurement of the distance of the Earth and the Moon from the spacecraft and the shortest distance from the surface of the Earth to surface of the Moon at their equators. In your calculations you should assume a camera scaling factor of 3 and that the size of the earth (at its equator) is 12,742km.
Note |
The images used in this project have all been generated to simplify the task and therefore the distances and sizes of planets etc. are not to scale. In order to record the distances as accurately as possible it will be necessary to acquire the images of the views while the robot is perpendicular to a window. |
What you need to do
You will work on this project as a group and should test your program using the Turtlebot Gazebo simulation in several different worlds. Your program will be given a map of the environment (similar to the one you created in lab 4.
You will be given (x,y) coordinates of the entrance points of the two modules in the map. One module will have a red circle on the wall near its entrance, and the other a green circle. The green/red circles on the walls will be visible from these entrance points, but not necessarily from a direct angle.
Your robot will need to enter the module with the green circle on the door. You will be given the (x,y) coordinates of the center points of both modules.
Note |
More specific implementation details, and the interface you need to build, can be found in the Group Python Code Details page. |
Skip to main content
We will provide you with a link to set of images of different planets and their names if you wish to use it. Your robot will need to identify the “views” that contain only the Earth and Moon. You can find that information in the “Getting Up & Running” page.
We will also provide you with example Gazebo environments, and associated maps, and example input files. We are inviting you to create your own worlds at a later stage to test the robustness of your solution.
Important Notes
-
These will be just examples; the actual shape of the environment, shape of the modules, exact size/position of the green/red circles, and the number, position, identity, size, and/or appearance of windows may change. Your program should be robust to such changes.
-
Please note that, although you can get most of the marks available from a simulated solution, we award some points for running experiments on the real robot. Therefore, to aim for full marks, make sure that you attempt running your solution on the real-robot. You will learn how to access and use a real robot in lab 6.
-
You might or might not need to move your robot around the entrance points to have a better view of the circles. We suggest that you experiment with different worlds, with different positions of the circles and robot, build a robust program, and report your findings in your report.
11.3. Next steps
As next steps, please read carefully the following pages and make sure you understand the requirements:
1. Details about the “Group Progress Report” deliverable
2. Details about the “Group Python Code” deliverable
3. Details about the “Final Group Report” deliverable
To learn how to set up your system and get started, please read the “Getting Up & Running” page (this page will become available on Monday the 26th of February).
11.4. Your Checklist
Please check, that ... Skip to main content
You are aware of your group and you have access to a GitHub group repo. You contacted your group to arrange meetings to discuss the project.
You read this page, and all the linked pages, carefully and you understand the requirements, what is expected and you are aware of the multiple deadlines.
You understand that your code should run smoothly, without errors, in our Singularity container.
You understand that one member of the group should ...
Submit the group progress report (in PDF format) on Minerva by the deadline.
Submit the group code on GitHub and GradeScope by the deadline.
Submit the final group project report (in PDF format) on Minerva by the deadline.
You understand that everyone will be marked equally, unless you ask for individual marking.
If you have any questions or problems, please kindly ask one of the Teaching Assistants of the module for help during the lab hours, or send post your questions on the module’s Teams channel.
Previous Next
10. Lab 6: Real-robot lab 12. Group Project: Progress Report (5%) Details