IRALAB habits

This page introduces some habits and requirements of IRAlab to prospective students.

  • Admission test
    As we had a few bad experiences in the past, we ask prospective students to pass a very simple test in order to be allowed to work at iralab; the test is analogous to the famous FizzBuzz test for programmers (in case search the internet for it), although it is biased towards robotics. Students taking the test are allowed to freely search the internet as well as to ask any question to the person looking after her/him during the test. Students not passing the test will not be admitted to work in iralab.
  • Roto-translations
    Representing roto-translations is quite intrinsic to robotic projects; if you do not master this topic you have to spend some time for learning it, before getting crazy debugging your recklessly-developed programs; therefore the test requires knowledge of roto-translations, although in the trivial planar version. Prospective students that did not pass the exam of the course "Robotics and Automation" or "Machine Perception and Robotics" or "Computer and robot vision" should contact D. G. Sorrenti in advance, in order to be given a few pages about representation of roto-translations to study, before taking the test. On the other hand, having passed the exam of such courses usually suffices.
  • Programming
    Most of the programming activities in iralab are performed in C and/or C++, usually under ROS + Linux/Ubuntu; if you do not master C/C++ or you do not master the basics of ROS or you do not master Linux, you will have to spend some time for getting proficient with them. If you are new to Linux, you may find it helpful to first take a quick tutorial on common command line tools for linux. A good and quick one is here. Frequently, prototypes of systems are first developed in Matlab®, because this makes it much quicker to check the effectiveness of ideas; if you do not master Matlab® and you need it for your work, you might have to spend some time for learning it.
  • Planning your work and describing your plan
    We ask our students to plan their activities, and to document their planning on our project management system, which also includes software versioning, issue tracker, etc. We believe this to be a very useful professional habit, and we are happy to "force" our students to follow it. We are currently using redmine (
  • Safety precautions
    In this lab you need to be very cautious! You might end up soldering your finger while soldering an electronic component, drilling a bar as well as the hand of yours that was keeping the bar in place, etc. etc. Safety precautions MUST be followed accurately! If you do not like some of the safety precautions you can discuss them with the people looking after you (tutor, relatore, etc.), but you CANNOT avoid following them until they are changed. Most important precaution: before launching your code on one of our robots you need to have a mean to stop it independently on your software.