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.
Resources
- GitHub Repository. Full source code and technical documentation.
- Project Roadmap. Detailed milestone breakdown.
- SCARA Specifications. Technical documentation of a custom robot model.
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.
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.
Software engineering: Automated testing with mocks, code formatting (black/isort), modular architecture, CI/CD practices, and comprehensive documentation.
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
What Comes Next
The roadmap focuses on bringing autonomous manipulation from virtual environments into the physical world:
- Intelligent control: Inverse kinematics and Jacobian-based trajectory tracking for smooth, precise motion
- Hardware integration: HITL communication between Raspberry Pi and Arduino, validating the control stack before physical assembly
- Physical realization: Building the mechanical prototype with calibrated actuators and sensors
- 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