The goal of the final project is to demonstrate two robots working together to find the location of simulated "mines" within a defined operational area. For the purposes of the project, the operational area is defined as by a 15x5 m rectangle with a fixed origin. The "mine" targets are simulated using an array of RFID tags which are placed in known locations, relative to the origin of the search area. The project can be completed individually, or in teams of 2-3 students.
Deliverable - Project Report
You should submit an technical report on the results of your work. The final report is due Friday 16 September. Each team should submit the final report as a PDF document via email.
The report should include the following:
- Introduction: Summary of approach and results.
- Approach: Description of how your team solved the problem.
- What was the ROS architecture of the solution? Images from rqt_graph and/or rqt_tree might be useful here.
- What algorithms were used? If you developed any algorithms for controlling the robots (leader-follower, etc.), please describe them using pseudocode.
- Performance: Document what you were able to achieve. Use experimental data (bag files) to quantify the search performance. Below are some suggestions, but how you document the performance will depend on what you are able to achieve in the project.
- Show the path of the robot(s). Show the path of the robots with the locations of detected "mines".
- Quantify any control errors (waypoint error, leader-follower error, etc.)
- How long did it take to accomplish the survey? If you did multiple runs, how long did each take, what is the mean? (Here you might compare your results to other class teams.)
- If you did experiments with a single robot and with multiple (two) robots, compare the survey time for the two cases?
- You should have groundtruth for the "mine" locations relative to the odometry origin. Compare the estimated "mine" locations with the known groundtruth.
- Conclusion: Summary of results, lessons learned and future work.
Each team of 2-3 students may submit a single project report.
The project report is a an opportunity to demonstrate that you are able to put to use the tools we've learned in the class to solve a particular robotics challenge. The report should describe what you were able to achieve (system performance) and how you approached the problem (system design). Where possible, quantify your results using experimental data.
Below is a rubric that will be used in evaluating the reports:
- Technical Content (40%)
- Appropriate, viable discussion of conclusions based on experimental and theoretical results
- Clearly describes what experiments were executed
- Employs and applies relevant engineering principles to analyze and interpret experimental data.
- Technical Writing (40%)
- Appropriate figures (graphs), images and tables to describe results
- Figures and tables include captions with number and description of contents
- Caption provide a stand-alone description of the contents
- Graphs have labels on all axes (with units), use appropriate linestyles and include a legend (if appropriate)
- All figures and tables are referenced and discussed within the text
- Text within figures (labels, legend, annotations, etc.) is of appropriate size and format to be clearly legible
- Organization and Writing (20%)
- Proper format of document including logical organization of document into appropriate sections (and subsections)
- Report includes brief Introduction and Conclusion sections.
- Ideas a segmented into logically complete paragraphs
- Correct spelling and grammar
- Compliance with Strunk and White’s “Elementary Rules of Usage”
- Comparisons and conclusions are as quantitative as possible: avoids qualitative words such as “good”, “reasonable”, “acceptable”, “significant”, “about”, “approximately”, etc.
During the course we have tried to demonstrate an incremental approach to developing robot capabilities (crawl-walk-run). You are encouraged to think about what incremental steps would be most appropriate for your system design: what subsystems can you test individually? could you use a simulator?
Below are some suggested incremental milestones that might be useful in developing a system to achieve the objective.
Single robot “mow-the-lawn” search
Use the MATLAB waypoint control to do a search of the 15 m x 5 m search area (in odom frame)
- What spacing between waypoints is appropriate for finding the RFID tag arrays?
Develop the MATLAB post-processing to illustrate the path of the robot and the detected RFID tags
Quantify that observed navigation error that accumulates with using odometry.
- Leader-follower control: Teleoperated leader
- Prototype a MATLAB controller that uses the waypoint algorithm to navigate the follower.
- Test the prototype by driving the leader with the joystick.
- Develop MATLAB post-processing to illustrate the performance of the approach - what is the position error (goal-actual) as the leader executed simple maneuvers (e.g., straight line, circle, turning, etc.)
- Generate some intermediate results: what does rqt_graph illustrate; how do you deal with coordinate frames and namespaces?
- Leader-follower search
- Put these two subsystems (mow-the-lawn and leader-follower) together execute a coordinated search of the operational space.
Multiple Robot Recipe
The use of namespaces to enable multiple robot work in ROS is new to the class. We'll discuss the concept in class and we have posted an example (with some useful startup scripts) at Two Pioneers: Leader and Follower.