arrow_left_alt

After working for a long time on aerial robotics, I wanted to exercise some skills that extend well beyond drones. I am passionate about robotics more broadly, and I am particularly drawn to manipulation systems that can contribute to meaningful applications: precision manufacturing, laboratory automation, assistive technology, sustainable agriculture.

This project is also about applying the same rigorous development practices I learned in previous roles to a different domain. The principles remain similar (systematic testing, modular architecture, comprehensive documentation) but some technical challenges shift when you move from free-flying systems to ground-based manipulators.

Beyond the technical goals, FRET allows me to demonstrate capabilities that do not always surface in commercial work: modern ROS 2 architecture, clean development practices, Python, Linux, real-time systems, modular and maintainable code, and the ability to own the entire pipeline from high-level planning algorithms down to hardware integration and firmware.

FRET is a complete robotics system focused on trajectory planning, state estimation, and control for robotic manipulators, with a progressive validation strategy that spans simulation, hardware-in-the-loop testing, and physical prototype operation.

SCARA robot model visualized in RViz with joint control interface.
SCARA robot model visualized in RViz with joint control interface. Source: alexandrelheinen/fret

Resources

Technical Overview

FRET is built on a layered architecture with progressive validation across three stages: Software-In-The-Loop (SITL), Hardware-In-The-Loop (HITL), and physical prototype operation. The system integrates a Raspberry Pi 5 as the high-level controller running ROS 2 Jazzy, an Arduino Mega for low-level real-time actuation, and a Micro-ROS serial bridge for communication between layers.

ROS 2 architecture. Modern robotics middleware with Python-based launch systems, custom environment hooks, package management, and integration with simulation tools. Next challege: Integration with ARCO 🏹.

Simulation & modeling. Custom URDF/XACRO robot descriptions with automated mesh generation, Gazebo physics simulation, and RViz visualization for virtual validation.

Control systems. Jacobian-based trajectory tracking with feedback correction, inverse kinematics, and motion planning for robotic manipulators. This layer is being implemented in ARCO.

Software engineering. Automated testing with mocks, code formatting (black/isort), modular architecture, CI/CD practices, and comprehensive documentation. Very good SDD coding framework. < 1 week per module in half time job.

Embedded systems. Real-time firmware for actuator control, serial communication protocols, hardware-software integration from planning layer to physical actuators.

Progress

What Has Been Built

The SITL phase is complete, establishing the foundation for everything that follows:

  • Fully operational simulation environment with custom SCARA robot model
  • Parametric URDF/XACRO descriptions with automated mesh generation from geometric specifications
  • RViz visualization with live joint control and Gazebo physics simulation
  • Extensible architecture supporting both custom models and external robot descriptions (Universal Robots, etc.)
  • Unit test coverage ensuring model resolution and configuration logic reliability

Work in progress

The roadmap moves autonomous manipulation from virtual environments into the physical world.

Intelligent control. Inverse kinematics and Jacobian-based trajectory tracking for smooth, precise motion. Done in ARCO 🏹

Hardware integration. HITL communication between Raspberry Pi and Arduino, validating the control stack before physical assembly. TODO

Physical realization. Building the mechanical prototype with calibrated actuators and sensors. Candidate: wooden delta picker.

Autonomous planning. Moving beyond hardcoded trajectories to dynamic motion planning that adapts to task requirements.

Vision-based autonomy. Closing the loop with visual perception for object detection and real-time replanning.