
Mirko Ferrati
Verified Expert in Engineering
Robotics Developer
Florence, Metropolitan City of Florence, Italy
Toptal member since February 1, 2018
Mirko has been developing products with C++ for over seven years now, ranging from embedded ARM chips to high-level distributed networks of control nodes. Currently, he is leading a team at a robotics company—managing the software lifecycle and optimizing C++ algorithms.
Portfolio
Experience
- Robotics - 12 years
- Linux - 10 years
- Algorithms - 10 years
- C++ - 10 years
- Robot Operating System (ROS) - 7 years
- Autonomous Robots - 6 years
- Autonomous Navigation - 4 years
- Python - 3 years
Preferred Environment
CMake, Visual Studio Code (VS Code), KDevelop, C++, Linux, Boost, Debian, Debian Linux, Bash
The most amazing...
...software architecture I've designed consisted of controlling a full humanoid robot with real-time requirements, multiple processes, and networking capabilities.
Work Experience
Robotics Software Team Lead
Aeolus Robotics
- Designed, implemented, and maintained C++ software modules used for autonomous navigation, such as robot localization, high-level topological planning, and occupancy maps.
- Supervised and managed software projects creating tools to improve our humanoid service robots: robotic simulation in CI for testing, configuration manager for all the robot parameters, tools, and GUI for factory calibration.
- Led the team responsible for high-level planning of autonomous behaviors for Aeolus humanoid service robot, developing new behaviors required by customers, and managing the shared codebase.
- Trained junior members using tutorials, 1:1, and pair programming to get them up to speed quickly. I mentored two senior developers to get promoted and create their teams.
Robotics Software Team Lead
Magazino
- Built the C++/Python hardware abstraction layer of the robot using a CAN bus and the Robot Operating System (ROS).
- Designed and managed the automatic driving system of the mobile robot.
- Developed and designed the embedded ARM Cortex firmware with FreeRTOS.
- Managed the autonomous navigation team to deliver better navigation/localization/slam/obstacle avoidance to our robots used in the customers' warehouses.
Cloud System Developer
Tagetik
- Ported the SQL database that was running on-premise into the Microsoft Azure cloud.
- Built the Java/JavaScript web interface for the management of AWS/Azure machines from customers.
- Optimized core Java components of the SaaS (software as a service).
Experience
Grasp Planner for a Robotic Arms Systems
More can be seen in the YouTube video here: Youtu.be/vq10SvHYzsk
The Complete Software Architecture for a Humanoid Robot
https://www.frontiersin.org/articles/10.3389/frobt.2016.00025/fullThe architecture included multiple operators and onboarding computers, along with tens of distributed process interconnected by two different communication middlewares: one for high-frequency control on the robot and one for the 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. More information can be found at the YouTube video here: Youtu.be/94ngO1nKXgs
Distributed Planner for the Coordination of Multiple Robots
The website describes how to use the whole system in the simulation, but requires some prior ROS knowledge and external dependencies.
ASCARI | A Component-based Simulator for Distributed Mobile Robotic Systems
Authors: M. Ferrati, A. Settimi, and L. Pallottino
Written for the International Workshop on Modelling and Simulation for Autonomous Systems.
A Modular Approach for the Remote Operation of Humanoid Robots in Search and Rescue Scenarios
Education
Ph.D. Degree in Robotics
University of Pisa - Pisa, Italy
Master's Degree in Information Engineering
University Scuola Superiore Sant'Anna - Pisa, Italy
Master's Degree in Robotics and Automation
University of Pisa - Pisa, Italy
Bachelor's Degree in Engineering
University Scuola Superiore Sant'Anna - Pisa, Italy
Bachelor's Degree in Computer Engineering
University of Pisa - Pisa, Italy
Skills
Libraries/APIs
Eigen
Tools
Gazebo Simulator, KDevelop, CMake, Arm Cortex-M3, Jira, Jenkins
Languages
C++, Bash, C++14, Python, C#, SQL, Java, Embedded C++
Platforms
Linux, Debian, Debian Linux, Visual Studio Code (VS Code), Amazon Web Services (AWS), Azure
Paradigms
Agile Workflow, Test-driven Development (TDD), Scrum, Behavior Trees
Frameworks
Boost
Other
Autonomous Navigation, Autonomous Robots, Robotics, FreeRTOS, Thread Scheduling, Robot Operating System (ROS), Processing & Threading, Algorithms, Mathematics, Embedded Systems, CI/CD Pipelines
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring