Legacy: https://idsc-frazzoli.github.io/documents/the_frazzoli_experience.pdf
# Lab's philosophy
TODO: EF
## Why we do what we do
TODO: EF
## How we do what we do
TODO: AC, JT
## What do we do
TODO: AC, JT
## Who does it
### Complete roster
The official and updated list of all the people affiliated to the lab is [at this page
on the IDSC website][website], where you can also see their contact information.
This documents only lists the people that have specific roles.
### People in administrative roles
[website]: http://www.idsc.ethz.ch/research-frazzoli.html
These are the people who have an administrative role---they deal with student enrollment, supervision, evaluation.
Emilio Frazzoli is the **director** of the lab.
Andrea Censi is the **deputy director**.
Jacopo Tani is **oberassistent**.
Annina Fattor is the **lab manager**. She makes sure that the people above remember to do what they are supposed to do.
### People in technical roles
#### Safety officers
We work with heavy equipment that is potentially unsafe if not used properly. Moreover, we work on autonomy: not only we have heavy equipment, but that heavy equipment is autonomous!
Therefore, we have *two* safety officers:
Marc-André Corzilius (Mac) is **physical safety officer**. He provides training and guidance regarding the physical environment and tools. Operating our equipment without proper training and without respecting best practices endangers everybody's safety. Conscious transgression of those rules is ground for immediate termination of a student's relation with our lab.
Jan Hakenberg is **software safety officer**: he is responsible for best practices in software development, so that we minimize the risk of unintended unsafe behavior due to software defects. Similarly to Mac for the physical lab space, Jan provides training and makes the rules regarding our "virtual lab space". Software safety is as important as physical safety. Conscious trasgression of rules for software development and software usage are ground for immediate termination of a student's relation with our lab.
#### IT support
Julian Zilly is the **IT support person**. If somebody need access to accounts or machines, he is probably the person to ask.
# Facilities
### Operational offices
All our offices on ETH main campus are in the ML building [directions](http://www.idsc.ethz.ch/the-institute/how-to-find-us.html).
In case finding any room is unclear, please refer to the [floor plans](https://www.ethz.ch/services/de/service/raeume-standorte-transporte/raeume-gebaeude/orientierung/gebaeude.html?args0=ML).
Starting from the entrance from the staircase connecting to the ML hall our rooms are:
ML K 32.1 - Prof. Emilio Frazzoli's office
ML K 32.2 - Annina Fattor's office
ML K 37.1 - IDSC library / meeting room
ML K 37.2 - Dr. Andrea Censi's office
ML K 37.3 - Dr. Jacopo Tani's office
ML K 37.4 - Postdoc room
ML K 37.5 - Coffee room
ML K 42.1 - Julian Zilly's office
ML K 42.2 - Claudio Ruch's and Jan Hakenberg's office
ML K 43 - Student working room
ML K 39/41 - Rooms belonging to our group but currently unused
TODO: JZ: number of seats, (ML K 43): 6?
### Autolab, Autolab control room (Duckielabs)
Number of seats (ML F 44.2): 4
TODO: JT: map and directions
### Dübilab
If you are involved with Dübilab please refer to this [doc](https://idsc-frazzoli.github.io/documents/rules_dubilab.pdf).
### General rules about spaces
At the beginning of each semester, the door signs of the student rooms should be updated. One PhD student will be responsible for the student room per semester.
If you are working either on your master’s thesis or as a full-time assistant, you are allowed to occupy one workplace full time. You may leave your stuff (like computer, literature, etc.) on your desk.
If you are working only part-time in the room (e.g, semester project, Bachelor’s thesis), then you should not occupy a workplace full-time. Please clear your desk every time you finish working. You may leave your stuff inside the room, but please make sure that other students have the possibility to use the desk as long as you are not using it.
Generally, it is the shared responsibility of all students to properly organize the distribution of workspaces. There should be enough workplaces for all of you.
Please notify your supervisor only if collisions are unavoidable and unacceptable.
Please always lock the door if you are the last one to leave the room. Other students might have left their stuff (laptop, wallet, etc.) in the rooms.
If you have finished working on your thesis or project, please do not forget to remove your stuff from the rooms prior to returning the key.
# Research
TODO: discuss main research directions of the lab
<!--
# Research philosophy
Three axes:
components -> system
simple behavior -> complex behavior
simulation -> reality -->
# Academic integrity
TODO: principles of academic integrity, etc.
# Teaching
Every year we offer these three courses:
[Control Systems I](http://www.idsc.ethz.ch/education/lectures/control-systems-i.html) - Autumn semester
[Control Systems II](http://www.idsc.ethz.ch/education/lectures/control-systems-ii.html) - Spring semester
[Autonomous Mobility on Demand](http://duckietown.org/classes/2017/17-ETHZ/) - Autumn semester
# Administrative procedures
## How to buy/order materials
Students cannot order items and cannot get reimbursed if they do order something. For all orders students should contact either Mac or Annina as described below.
Orders: For hardware orders (mechanical, electrical, research-related) for the lab - contact Mac.
Office ware: Other items (e.g. books, accessories for laptops, other) -> put it onto the order list on google drive (with all the information needed) Annina's spreadsheet
TODO: add link
Note: Katharina and Annina are the only ones that can process orders with ETH credit card.
Autolab: see autolab rules
Conferences: Please book flights and hotels on your own and ask for reimbursement through ETHIS. If your budget is tight, contact Annina and we will find a solution.
TODO: add links, polish
Reimbursements: Please scan the whole receipt – it has to be clearly visible what you bought and describe it accurately (what occasion, date, people you were with (if it was a lunch etc.)). Reimbursements requests that do not respond to these requirements will be declined.
Reimbursements of flights: ETH launched a project for the reduction of CO2 emissions and therefore wants to have specific information about all the flights. Please indicate : class (economy, business, first); flight no.; no. of persons divided by semicolon into the Buchungstext-field.
## Borrowing materials
This is the list of materials available:
TODO: add link to material spreadsheets
Note: the spreadsheet is password protected
TODO: double check and verify access criteria for payroll / students
## Key request procedure
The scientific supervisor writes an e-mail to Katharina Munz (CC Annina Fattor) with the following information:
full name of the student;
the macro project the student is working on (ex. GoKart, Autolab, etc.);
room the student needs access to (ex. ML K 43);
the period (starting and end date) for which the access is needed.
The student will get an e-mail as soon as the key is ready for pick up.
Usually, the student will be able to pick up his/her key within one or two days at the ISC Loge in LEE F314, Leonhardstrasse 21, Open Monday to Friday, 7.30 - 12.00 and 13.00 - 17.00. He/She will get an e-mail as soon as the key is ready for pick up.
# Accounts
## IDSC infrastructure
TODO: JZ: Give pointer to IDSC documents for printing
TODO: JZ: Give pointer to IDSC documents for file sharing
## Github
TODO: JH: Who creates the repos? any convention?
## Slack
This is our [group-Slack](https://idsc-frazzoli.slack.com/messages).
This is the [Duckietown-Slack](https://duckietown.slack.com/) if you are working on Duckietown-related projects.
## Calendar
To get access to the group calendar, please contact Julian Zilly via Slack. This step is handled during the onboarding procedure.
## Mendeley
To get access to the group's Mendeley, please contact Julian Zilly via Slack. This step is handled during the onboarding procedure.
TODO: JT: conventions
## Overleaf
To get access to the group's Overleaf-pro team, please contact Julian Zilly via Slack. This step is handled during the onboarding procedure.
TODO: JT: figure this out
## Rudolf
TODO: JZ: What is it? Why use it? How to get access to it?
To get access to the Rudolf, please contact Julian Zilly via Slack. This step is handled during the onboarding procedure.
## Zoom accounts and other teleconference software
We use [_zoom_](https://zoom.us/) as videoconferencing service. Every official meeting is recorded on the group's calendar and has a constant zoom link associate with it, to allow remote attendance.
## Policies
### No email policy, no personal messages
We do not like emails, because we receive plenty and it is easy to miss important ones.
Keep the work related conversations on Slack. Our Slack is organized it with #general, #research-directions, and #project-specific channels. There will be an appropriate channel for each topic.
When in doubt on which channel to use, go for the #general one. Do not send personal messages, but use the dedicated #research or #project-specific channels. We like sharing.
### No attachments
We like email attachments even less than emails. If you have an attachment to share, use other means.
Videos, working files and spreadsheets go in the dedicated Google drive project folder, which was created during the onboarding.
Machine readable files go in the appropriate Github repository.
# Life of a Ph.D. student in the lab
TODO: philosophy
TODO: procedures
## The defense
TODO: philosophy
TODO: procedures
### The snake-fight portion of the thesis defense
During the thesis defense you will have to fight a snake.
Please see these [FAQs about the "snake fight" portion of your thesis defense][snake].
[snake]: https://www.mcsweeneys.net/articles/faq-the-snake-fight-portion-of-your-thesis-defense
# Grading
We have predetermined grading criteria. We weight the different criteria depending on the project level.
## What are you graded on?
Rigor: mathematics, data collection, experimental procedures.
Placing the work in context: assessment of the state of the art, technical preliminaries.
Quality of the reports: structure, flow, attention to detail.
Quality of the code: see "code quality" section.
Quality of the presentation.
Imagination and creativity.
Being a good citizen of the lab: demo participation, proactivity.
Technical contributions beyond the particular project.
## Who is evaluating you?
Rigor: your scientific supervisor(s).
Placing the work in context: your scientific supervisor(s) and mentors.
Quality of reports: your scientific supervisor(s) and mentors.
Quality of the code: Jan, our master of software.
Quality of presentation: by group members attending the presentation.
Imagination and creativity: evaluated by your supervisor(s).
Being a good citizen of the lab: evaluated by averaging the whole group's feedback, including your peers.
Technical contributions beyond the particular project: feedback from the whole group, including your peers.
## What is the weight of each grading criteria?
It depends on the level of your project. We weight differently: (a) master theses, (b) semester projects, (c) bachelor theses and (d) studies on mechatronics.
# Master Theses
## Application
Students apply by submitting the form at <http://bit.ly/frazzoli>.
## Supervision
We distinguish between:
The **scientific supervisor**(s) for your project. This is also called Co-Betreuer on MyStudies. This is a person with a Ph.D. who supervises the project in addition to prof. Frazzoli.
The **mentor**(s) for your project - this is the person that follows you day-to-day. It might be a postdoc, Ph.D.student, a research staff person. In some case, the mentor and the scientific supervisor are the same person.
## Timeline for a master thesis project
A Master thesis is assumed to be a full time commitment.
Given $t$ as the start time, the schedule is expected to be:
$t + 2\ \text{weeks}$: lab orientation; get to know the system.
at $t + 2\ \text{weeks}$: choose the mini-project from the pool of mini-projects.
at $t + 6\ \text{weeks}$: end of mini-project. mini-presentation. mini-evaluation. This is a formal moment in the lab and the outcome will influence your master thesis project.
at $t + 4\ \text{months}$: **mid-way evaluation** according to factors below. Excludes "quality of reports", as the report is probably still to be written. This is a formal moment in the lab.
at $t + 6\ \text{months}$: presentation and end of thesis.
<!-- TODO: at t + ? months: receive grade -->
## Mid-way evaluation
Refer to the [Checklist-2 middle](https://idsc-frazzoli.github.io/documents/checklist2-middle.pdf) for details.
### Deliverables timeline
You are expected to provide a final version of the thesis on the day of your defense presentation.
A draft of the thesis will be sent to your supervisor(s) and mentors at least two weeks prior to your defense presentation.
A draft of your presentation will be sent to your supervisor(s) and mentors at least one week before the defense presentation.
Extra time can be awarded exclusively in extraordinary cases.
## Grading
These are the factors that are taken into account when evaluating your master thesis:
20%: Rigor.
20%: Quality of reports.
20%: Code quality.
10%: Quality of presentation.
10%: Placing the work in context.
10%: Being a good citizen of the lab.
5%: Imagination and creativity.
5%: Technical contribution beyond the particular project.
Results of particular quality are awarded up to a bonus 10% points upon recommendation of the supervisor(s).
# Semester projects
## Application
Students apply by submitting the form at <http://bit.ly/frazzoli>.
## Grading
These factors will influence the evaluation of a semester project:
15%: Rigor (mathematics, data collection, experiments).
15%: Quality of reports.
15%: Code quality (see "code quality" section).
10%: Quality of the presentation.
15%: Placing the work in context (assessment of the state of art, technical preliminaries, etc.).
15%: Being a good citizen of the lab (includes demo participation).
10%: Imagination and creativity.
5%: Technical contribution beyond the particular project.
# Bachelor theses
## Application
Students apply by submitting the form at <http://bit.ly/frazzoli>.
## Grading
During a bachelor thesis we look for potential:
15%: Rigor.
15%: Quality of reports.
15%: Code quality.
10%: Quality of presentation.
10%: Placing the work in context.
15%: Being a good citizen of the lab.
10%: Imagination and creativity.
10%: Technical contribution beyond the particular project.
# Studies on Mechatronics project
## Application
TODO
## Grading
15%: Rigor.
10%: Quality of reports.
10%: Code quality.
15%: Quality of presentation.
20%: Placing the work in context.
10%: Being a good citizen of the lab.
10%: Imagination and creativity.
10%: Technical contribution beyond the particular project.
# Software development
## Policies
TODO: JH: repos, etc.
## Code quality measures
Following conventions
Unit tests
No bad habits that make the code unmaintainable
The following characteristics are desirable: Many short source files (as opposed to few large files), functions with few lines of code, modularity, minimal redundancy, use of immutable objects, tests and test coverage, comments, uniform code format.
Typically, these objectives are not achieved in the first version of the implementation. The staff will give you suggestions on how to modify your code in order to come closer to the above standards. Please give the suggestions of the reviewers a high priority in your schedule.
Make your work visible: push your code modifications to Github no later than at the end of the day. That way, reviewers can give feedback immediately and coordinate the work better. Only commit your own source code. If you adapt a code snippet from another source, state the origin and give credit, for instance via a URL.
## Good references to read
TODO: AC: add references
# Paper writing
## Process
TODO: JT link to Bernstein's guides
## Authorship policy
TODO: AC: write authorship policy
# Internal procedures
<!--
*Note: describe the procedures, but obviously don't write here the passwords/links to the documents that contain confidential information.*
-->
## The student tracking spreadsheet
Goal: make sure we don't forget any procedure connected to student supervision
Access: Andrea, Jacopo, Postdocs, Ph. D. students, Annina, research engineers.
[Link to student tracking spreadsheet](https://docs.google.com/spreadsheets/d/1bh3yMiMRerpdHBk81AVDp_aiHbY-0eRuOqtoLD18_DM/edit#gid=0)
## Meeting notes
Goal: document our meetings
Access: all lab people
[Link to meeting notes](https://drive.google.com/drive/folders/1Zr5X4gEaju-jbY1IcSWmaJ1RJPt_7qJG)
## The big TODO list
Goal: not forget what we need to do
Access: all lab people
[Link to big TODO list](https://docs.google.com/document/d/1rTrCvcTOAjNyXxry2qDpBqN7D2cGusir_jlChyVvyJk/edit)
## Definition and advertising of projects
TODO: put in IDSC page
TODO: put in ETH-wide website
## Emilio's cockpit list
Goal: prioritize Emilio's actions so that nothing falls through the cracks
Access: Andrea and Annina