Project overview
Developed with an industrial partner, the project combined control software and custom hardware for a spine surgery robot guided by stereo X-ray and a 3D endoscope.
The EtherCAT network connected three motor-driver slaves and an Arduino-based EasyCAT I/O slave in a daisy chain. The custom slave handled two limit switches and an emergency-stop button, with capacity for seven additional digital and six analog I/O channels. The IgH master ran through a standard PC network interface.
The software stack used ROS 2 Dashing on PREEMPT_RT Xubuntu 18.04 with kernel 4.19.182-rt74. I developed the C++/Qt control framework and designed supporting electronics and mechanical parts with Altium Designer, EasyEDA, and SolidWorks. Three ROS 2 nodes were implemented, with a fourth safety-monitor node planned to check the system state on every cycle.
- EtherCAT node: Handles communication between the master and slaves, publishes feedback at 1 kHz, and sends control commands to the drives.
- Control node: Performs kinematic calculations and converts slave feedback into motor commands.
- GUI node: Displays the camera feed, motor and communication states, and emergency-stop status while forwarding operator events.