Grad Proposals Due Monday Apr 1, 11pm
Grad Presentations Fri Apr 12, in class
UGrad Challenge & Grad Demos Weds Apr 17, in lab
All Code, Documentation, and Reports Due Wednesday Apr 17, 11pm
This final lab is intended to draw together the different capabilities you studied in the prior labs. Undergrad groups will compete in an object collection task. Grad groups will select and implement an algorithm of interest from the research literature. All groups will have the option to use additional hardware.
We will make the following optional hardware available upon request:
Follow similar instructions as for lab 2 to update your svn checkout and copy the lab 5 framework into
Then rebuild and flash the LLP monitor code using the same procedure as for lab 2.
Finally, rebuild the HLP OHMM jarfile using the same procedure as for lab 2.
Undergrad groups will participate in a “final challenge” that integrates the capabilities you have developed over the term in the context of an object collection task. We will provide an obstacle course with the following characteristics:
The challenge course will be made available for testing during at least two lab periods prior to the final due date of this assignment. We will also try to make the course available for additional testing time, to be announced.
Each group will have a total of 9 minutes to compete on the due date of the assignment. During this time you may alternate as many times as you like between the following two phases:
Run: you may not interact with the robot in any way during this phase, except for specific “helps” as described below. The robot must act on its own to attempt to move as many of the objects as possible to goal zones, which are defined as the free spaces in the map within 30cm of each of the two vertical external boundaries (i.e. the two course boundaries parallel to the world axis).
Each run phase ends either when you decide, when your 10 minute time period expires, when all of the objects have been moved to goal zones, or (at the discretion of the course staff) when any rule is violated. You will accrue 10 points for each object in a goal zone at the end of each run phase. If all of the objects are in a goal zone at the end of a run phase, they will be manually reset to their original positions during the next calibration phase.
During a run phase all your code must run autonomously (no human intervention) on the HLP. No external processing is allowed except for optional, and encouraged, debug interfaces which may receive information from the robot but may not send anything back.
You may help the robot during a run phase by verbally declaring “HELP”. You may then interact with the robot in whatever way you like for up to 15 seconds provided that no object moves from outside to inside a goal zone or more than 30cm from its location at the start of the help. Five points will be subtracted from your score for each such “help”. The subtraction will be done at the end of each run phase, with the constraint that you cannot lose more points than you gained in the phase. Thus helps during one run cannot affect points accrued in past or future runs.
You are free to use any sourcecode you like as part of your solution, subject to the course policy on use of 3rd-party code. Specifically, for this assignment, you may use
Graduate student projects must identify an algorithm or task that has recently (loosely speaking, last 10–15y) been considered in the research literature and implement on or adapt it to our robot. Thus, you should be thinking about work in the areas of mobile manipulation, perception, wheeled robots, differential drive, etc.
You may use existing reference code in your implementation, but you must clearly cite the original authors, as always. You may also implement an alternate algorithm that achieves a similar task to one recently considered in the literature.
All your code must run autonomously (no human intervention) on the HLP. No external processing is allowed except for optional, and encouraged, debug interfaces which may receive information from the robot but may not send anything back). Exceptions to these requirements may be made by discussing with course staff at the time of your proposal.
Possible example projects:
There are five components to the grad student project:
You will be asked to demonstrate your code for the course staff in lab on the due date for this assignment (listed at the top of this page); 30% of your grade for the lab will be based on the observed behavior. Mainly want to see that your code works and is as bug-free as possible.
You will hand in your code following the general handin instructions by the due date and time listed at the top of this page. We will consider the code completeness, lack of bugs, architecture and organization, documentation, syntactic style, and efficiency, in that order of priority. You must also clearly document, both in your README and in code comments, the contributions of each group member.
For undergrads the remaining 70% of your grade will be based on your code. For grad students, 20% will be based on the written proposal, presentation, and final report and 50% will be based on your code.