A ROS Noetic package for automated carbon fiber draping on conical molds using a Universal Robots UR10e arm controlled via URCaps using MoveIt.
Note: This package targets ROS Noetic (Ubuntu 20.04), which reached end-of-life in May 2025. It is archived as a reference implementation and is not actively maintained.
The package automates a wet fiber draping process where a brush-tipped end effector must systematically cover a conical mold surface while maintaining consistent resin application and brush orientation.
Given the mold geometry (top/bottom diameter, height, brush size), the system:
- Meshes the conical surface mathematically and plans an ordered set of brush-sweep trajectories covering the full surface
- Controls brush tilt dynamically to keep it perpendicular to the cone slope at each waypoint
- Dips the brush in a resin tray between configurable path-length intervals, including a wipe sequence to remove excess resin
- Executes all motions as Cartesian MoveIt paths on the real UR10e
- Tracks end-effector velocity in real time via Jacobian computation on joint states
Two physical mold variants were used in experiments: a foam mold and a 3D-printed mold, each with its own calibrated workspace transform and launch configuration.
Three ROS nodes run per experiment, communicating over two custom services:
[trajectories_server] ◄──TrajectoriesService──► [draping_client]
[draping_server] ◄────DrapingService─────► [draping_client]
- Trajectories server — pure geometry: takes mold dimensions, returns an ordered array of 3D waypoint trajectories transformed into the robot base frame
- Draping server — MoveIt execution: receives trajectories, handles entry/exit poses, speed scaling, resin dipping logic, and collision avoidance
- Draping client — orchestrator: reads parameters, calls both services in sequence
- EEF velocity node — utility: publishes real-time end-effector Cartesian velocity using the MoveIt Jacobian, used for motion analysis
Custom messages: Trajectory (ordered geometry_msgs/Point[] with an ID), TrajectoriesService, DrapingService.
ROS Noetic · MoveIt · Universal Robots ROS Driver · Python: numpy, scipy