Personal Page

After getting my Master Degree in Robotics and Automation (2012) with a background in computer science (Bachelor, 2009), I worked for a B2B company developing financial applications as cloud service , with a focus on robustness and reliability of the software.
In 2016 I got my PhD in robotics, focused on planning and control algorithms for humanoid and mobile robots.
In the teams I have worked with, I usually handle the complexity of the design and management of the software architecture and API. I like to take part in robotics competitions and to develop industrial applications, because that's where the difference between a demo and a working product becomes evident.


Check the right menu for my contacts.

Things I Can Do

I have been learning advanced topics about robotics and planning, but my background remains computer engineering and software architecture.

Things I have done

Either in a large team or alone, playing with robots is always fun. This is a short list of projects I enjoyed since my first robot in 2009, a P3AT.

Magazino GmbH

More +

From electronics software integration to leading the automated navigation team, I helped turning this large robot from a prototype to a product deployed in multiple warehouses.

Less -

Team leader autonomated navigation
I lead 5 full-time software developers and created the team responsible for autonomous navigation, localization and mapping. I introduced daily statistics for measuring the performances of the robots along software releases, achieved the adoption of pull-request workflow with code reviews in the entire software department and coordinated the effort and goals with the other software team leaders in the company.

Software and motion controllers
I developed the software responsible for communication and control of motors and sensors over the canopen protocol. The main focus was on robustness and error handling because the entire robot movements used this sub-system. The software reliability reached 99.9% of uptime with no human intervention required. I developed a differential drive controller that supports speed/acceleration saturation and safety constraints with Magazino custom-built drive base. The controller is used in all the different types of robots.

Embedded Firmware
Designed the requirements and the architecture for the real-time firmware running on Arm Cortex M3. Tutored two students on how to develop and use the firmware.

Show video of Toru grasping boxes

Darpa Robotics Challenge - Walkman Team

More +

I had the pleasure to co-design and manage the development of the software running on the Walk-Man robot, during the DRC.

Less -

Humanoid Software Architecture
I designed most of the software architecture used to control and teleoperate Walk-Man robot. The architecture included multiple operator and on-board computers, along with tens of distributed process interconnected by two different communication middlewares: one for high-frequency control on the robot, and one for low-frequency teleoperation and visualization by the human operators. Such processes were developed by a team of more than ten robotics researchers and engineers, in a common framework with multiple shared libraries and utilities.

Network Management
I developed the robust networking software used to move information between the pilots and the robot. The network setup between operators and the robot consisted of a wireless link and an artificially degraded wired connection. Robot and operators computers were asyncronously connected by a set of channels dedicated to different prioritized information; the networking software was designed to survive blackouts longer than 60 seconds without affecting any running process on any computer and automatically reconnect all of them once the connection was available again.

Operator GUI
I co-developed part of the operator interface used to teleoperate the Walk-Man robot. The interface uses Qt widgets along with robotics middlewares (YARP,ROS) in order to provide a dynamic and customizable operator window. Customization is based on XML files read during launch, and different operators use a different set of widgets. By using the loosely coupled inter-process structure of the software architecture, multiple operators can have the same widgets on their own computer without affecting each other.

Show video of Walk-Man doing stuff
Open access paper

Distributed Coordinated Planner for Warehouse Mobile Robots Code repo

More +

I have been working with coordination algorithms in a decentralized multi-robot environment.

Less -

I believe that exchange of information and speed management are the key points for energy efficient traffic management. A time-space planner can provide both collision avoidance and speed control, while avoiding abrupt stops and acceleration. I designed two versions of a time-space planner, respectively in a discrete or continuous environment.

Discrete Search

The first algorithm is based on a modified graph representation of the space-time where the robotic vehicles operate. The proposed graph representation augments standard path planning strategies by allowing multiple speeds. Robots can make and exchange accurate predictions on their planned routes and speeds, so as to prevent and solve possible collisions. Indeed, the algorithm is formally proved to provide collision free paths.

Continuous Sampling

In the second version, a sample based approach in a discrete state and continuous time space is used for the trajectory computation of a single robot. The procedure is thus extended, based on a local robot information exchange, to the computation of collision free trajectories of multi-robot systems.

Multiple robotics arm planning for object moving Code repo

More +

Planning for multiple arms and robots movements with a graph-based search considering their grasps and kinematics capabilities.

Less -

Moving objects with autonomous robots is a wide topic that includes single-arm pick-and-place tasks, object regrasping, object passing between two or more arms in the air or using support surfaces such as tables and similar. I developed a planning scheme which, based on the use of pre-defined elementary manipulation skills, aims to unify solutions which are usually obtained by means of different planning strategies rooted on hard-coded behaviors.
Both robotic manipulators and environment fixed support surfaces are treated as end-effectors of movable and non-movable types, respectively. The task of the robot can thus be broken down into elementary building blocks, which are end-effector manipulation skills, that are then planned at the kinematic level. Feasibility is ensured by propagating unforeseen low-level failures at the higher level and by synthesizing different behaviors. Finally, a time varying graph is build in order to handle multiple objects in dynamic chains of robots.

Show video with multiple arms
Show video with arms and mobile robots

Footstep planning for Humanoid Robots Code repo

More +

Online planner for footsteps of a humanoid robot walking on irregular terrain.

Less -

I developed an online planner that computes the necessary steps to be followed by a humanoid robot, with arbitrary kinematic structure, to reach a desired position based on the scene captured as a point cloud. The proposed method provides a sequence of feasible footsteps in terms of kinematic reachability and stability according to a desired direction of motion. The best footstep among all possible solutions resulting from the procedure is thus selected. The approach has been tested on the COMAN and Walk-Man humanoid robots in different scenarios including stairs and uneven terrains.

Autonomous exploration with reactive behaviors

More +

My first experience with a robot (good old P3AT)! Laser and vision based reactive navigation that avoids obstacles and heads to a goal.

Less -

As a part of my bachelor thesis, I partecipated at the robotour2009 competition. My work was focused on a local planner based on a reactive set of behaviors, coordinated by time-varying weights depending on the perceived environment. A laser sensor and a webcam provided the necessary perception about road limits and obstacles.

Show outdoor video
Show indoor video