CS4610: LAB 5 - Challenge or Project

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.

Optional Hardware

We will make the following optional hardware available upon request:

Preparing the Code

Follow similar instructions as for lab 2 to update your svn checkout and copy the lab 5 framework into robotics/gN/l5.

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 Final Challenge

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:

  1. Calibration: you may do whatever you like in this phase, subject to the constraints that at the end of the calibration phase
  2. 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

Grad Student Project

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:

  1. Proposal — Please prepare a 1–2 page document identifying your proposed project. Commit it to SVN and submit it as you would other homework assignments by the due date for the proposal. The proposal document should cite one or more key papers from the research literature and briefly summarize the core task and/or algorithm which will be the subject of the project. Please outline any modifications to the task or algorithm that you think will help fit it to the capabilities of our robot.
  2. Implementation — You will implement some version of the proposed algorithm and/or task using the course robot and the available optional hardware. Consider this carefully, as it will likely mean you will have to adapt or simplify the original algorithm or task to fit the cababilities of our robots. Like all labs, you will hand this code in on the final due date.
  3. Presentation — You will do a 20 minute group presentation in class describing the task and/or algorithm you have selected. Please make sure all group members have some participation (talking) in the presentation. You should explicitly describe the related work you have found on the problem in the literature. Please prepare some form of graphics to accompany the presentation, such as a video of the algorithm in action, or even just a diagram drawn on the board. In 20 minutes we do not expect to see deep technical details, but we do want to see a good basic overview of the area of research you are considering, presented in a way that should be understandable to all participants in the course.
  4. Demonstration — Like all labs, you will demonstrate your system on the final due date.
  5. Report — Please prepare a 2—10 page report documenting your project, to be submitted along with your final code. This must include

Grading

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.