Robot development

From AIRWiki
Revision as of 10:21, 15 February 2010 by GiulioFontana (Talk | contribs)

Jump to: navigation, search

This research topic belongs to the research area Robotics.

We are developing robots since 1971, as tools for research and applications. Among the last ones, we mention the autonomous wheelchair LURCH, the team of soccer robots Milan Robocup Team, and several bio inspired robots.

Ongoing Projects

Project proposals

Wiki Page: Barking Robots
E2LateralHeadCutSmall.JPG

Title: Barking Robots
Description: Aim of this project is the development of a robot that can operate autonomously at exhibitions and malls to attract people to a given location, by showing interesting behaviors and interacting with people.

The robot first exhibition has been at Robotica 2009, within HI-Tech Expo at Fiera di Milano, on November 23-25, 2009. Here, the robot had to go around in an area delimited by a white stripe and contact verbally and with gestures people entering the area, in order to attract them to the booth.

Behaviors and gestures have still to be developed to come to an interesting and robust demo at next Robotica, or at other ehibits (e.g. at the Museo della Scienza of Milan).
Tutor: AndreaBonarini
Additional Info: CFU 5 - 20 / Bachelor of Science, Master of Science / Thesis

Wiki Page: CAN Bus bootloader for STM32 microcontrollers
STM32-H103-1.jpg

Title: CAN Bus bootloader for STM32 microcontrollers
Description: JOINT PROJECT with the Embedded Systems group (contact: Patrick Bellasi http://home.dei.polimi.it/bellasi/) In order to speed up the development and the maintenance of embedded applications, a way to update the firmware on a microcontroller without the need of connecting cables or programmers can be very handy. We are developing a framework for rapid prototyping of low-cost robots, with smart devices that exchange data on a CAN bus network. The CAN bus bootloader is one of the components we need for this project, enabling remote firmware upgrades of all the devices connected to the CAN network.

This project aims to develop a CAN bus bootloader for STM32 ARM Cortex-M3 microcontrollers, and eventually for other architectures.
Tutor: AndreaBonarini, MartinoMigliavacca
Additional Info: CFU 2 - 5 / Bachelor of Science, Master of Science / Course

Wiki Page: Embedded registers view plug-in for Eclipse
STM32-H103-1.jpg

Title: Embedded registers view plug-in for Eclipse
Description: JOINT PROJECT with the Embedded Systems group (contact: Patrick Bellasi http://home.dei.polimi.it/bellasi/) When developing embedded applications it is frequently needed to look at *hardware register content* in order to *debug the code*. All commercial development suites offer register views that show their contents as well as the meaning of each bit. Open source development solutions currently lack this feature, meaning that you have to look to the correct memory location and map the content to the corresponding register bits manually. This seems to be one of the most limiting issues when developing embedded application using open source solutions.

This project aims to fill this gap, developing an Eclipse plug-in that shows the register contents in a tree viewer, like most commercial suites do.
Tutor: AndreaBonarini, MartinoMigliavacca
Additional Info: CFU 2 - 5 / Bachelor of Science, Master of Science / Course

Wiki Page: LCM middleware on embedded platform
STM32-H103-1.jpg

Title: LCM middleware on embedded platform
Description: We are developing a framework for rapid prototyping of low-cost robotic systems. To fasten robot design and building, and to make software and hardware reuse easier, a modular architecture is mandatory. In a context of smart modules that have to cooperate by exchanging data to reach their common goal, the communication protocol and middleware are core components. This project is about the middleware component, a publish/subscribe system that takes care of managing topics, publisher and subscribers, and of marshaling data before sending it. This project aims at porting the LCM marshaling and middleware library, developed at MIT and used in the Grand Challenge competition, to embedded systems, in order to exploit the existing LCM tools and to be compliant with an existing and efficient technology.

The project consists in:

  • stripping non necessary features of LCM to match the constraints of an embedded system and of the communication protocol
  • adding necessary features, like the concept of deadline (and priority as a consequence), that are mandatory for a real time distributed system
  • building a gateway, on an embedded platform, that acts as gateway between the standard-LCM world and the embededd-LCM network

The projects has to be developed in ANSI C, and experience with embedded platforms is a plus.
Tutor: AndreaBonarini, MartinoMigliavacca
Additional Info: CFU 20 - 20 / Master of Science / Thesis

Wiki Page: Odometric system for robots based on laser mice
Calibration.png

Title: Odometric system for robots based on laser mice
Description: We developed an odometric system for robots by combining the reading of several laser mice. The system consists of a master PIC-based board and several slave boards where the sensors employed in optical mice are located. The readings are collected on the PIC and sent on the serial port to a PC which elaborates and combines the x and y readings in order to obtain a x,y,theta estimation of the movement of the robot.

The aim of the project is first to improve the current design of the PIC-based board, and realize a new working prototype, and then to implement and evaluate different algorithms able to estimate more precisely the x,y and theta odometric data from the mice readings. Experience with PIC-based systems and some experience with electronics circuits is a plus. Students are supposed to redesign the electronic board, improve the firmware of the PIC, and work on the algorithm that estimates the robot position on the PC. It would be also interesting to evaluate the possibility to embed the optimization and estimation algorithms in the firmware of the PIC in order to produce a stand-alone device.

Ask the tutors of the project for extra material, such as data-sheets and other documentation.
Tutor: MatteoMatteucci, LuigiMalago, MarcelloRestelli
Additional Info: CFU 5 - 20 / Master of Science / Course, Thesis

Wiki Page: R2P IMU firmware development
R2P IMU.png

Title: Embedded Inertial Measurement Unit for Unmanned Aerial Vehihcles
Description: We have developed the electronics of an Inertial Measurement Unit based on an ARM microcontroller to be integrated on an autonomous embedded aerial platform. The IMU has already some attitude heading reference system (AHRS) code implemented, but we are interested in:

  • implementing embedded algorithms for the estimation of the IMU attitude to be compared with the actual one (e.g., Kalman filter, DCM, Madgwick, etc.)
  • developing a, easy to use, procedure for the calibration of IMU parameters
  • making a comparison with commercial units using a robot arm as testbed
  • validate the accuracy of the IMU on a flying platform
  • integrate the measurements from a GPS to reduce drift and provide accurate positiong (this will make it definitely a MS thesis)

Material

  • electronic board and eclipse based C development toolkit for ARM processors
  • papers describing the algorithms we are interested in implementing

Expected outcome:

  • few different AHRS algorithms with comparative results
  • user-friendly procedure to calibrate the IMU
  • a sistem which integrated IMU and GPS to provide accurate positioning

Required skills or skills to be acquired:

  • C programming on ARM microcontroller
  • background on kalman filtering and attitude estimation

Tutor: AndreaBonarini, MartinoMigliavacca, MatteoMatteucci
Additional Info: CFU 2 - 20 / Bachelor of Science, Master of Science / Course, Thesis

Wiki Page: Scripting language on embedded platforms
STM32-H103-1.jpg

Title: Scripting language on embedded platforms
Description: JOINT PROJECT with the Embedded Systems group (contact: Patrick Bellasi http://home.dei.polimi.it/bellasi/) When developing embedded applications it is common the need to test some algorithm in some fast way, without to re-program the whole firmware every time. PAWN (http://www.compuphase.com/pawn/) is a *simple and lightweight scripting language with a C-like syntax*. Execution speed, stability, simplicity and a small footprint were essential design criteria for both the language and the abstract machine, making PAWN suitable for embedded applications.

This project aims to port the abstract machine to ARM Cortex-M3 microcontrollers, add a set of functions to interface with the underlying hardware peripherals and then to embed it as ChibiOS/RT (http://www.chibios.org) thread.
Tutor: AndreaBonarini, MartinoMigliavacca
Additional Info: CFU 2 - 5 / Bachelor of Science, Master of Science / Course

Wiki Page: Soccer Robots
RIeRO.jpg

Title: Soccer Robots
Description: Projects are available in different areas:

  • Implementation of mechanical and electronical parts of the robots for the management of the ball and kicking
  • Design of robot behaviors (fuzzy systems)
  • Coordination of robots
  • New sensors


These projects allow to experiment with real mobile robots. Participation to the championships is a unique experience (2000 people, with 800 robots playing all sort of games...)

The project can be turned into a thesis by facing different problems in depth.
Tutor: MarcelloRestelli
Additional Info: CFU 5 - 20 / Bachelor of Science, Master of Science / Course, Thesis

Wiki Page: Stability and motion control of a balancing robot
Proposta tiltone.png

Title: Stability and motion control of a balancing robot
Description: This project is focused on the control of both stability and motion of TiltOne, a balancing robot.

TiltOne is a robot with only two wheels that can stand in vertical position following an unstable equilibrium point. The control is applied by commanding an amount of torque to the wheels, allowing the robot to mantain it's gravity center vertical aligned to the wheel axis.

The aim of the project proposal is to implement and compare different control solutions, based on classical approach (as PID and LQR control) and Machine Learning approach (as Reinforcement Learning control policies), that allow the robot to move following a given trajectory at a given speed.
Tutor: AndreaBonarini, MartinoMigliavacca
Additional Info: CFU 5 - 20 / Master of Science / Course, Thesis