Project Overview
Development of spine surgery robot system guided by stereo X-ray and 3D endoscope
In the physical integration part, the system consists of three motor driver slaves, three motor connected to motor drivers and one Arduino based custom slave (EasyCAT) for additional sensor integration. Currently, custom slave has two limit switch sensors, and emergencystop button added to EtherCAT bus. Seven more digital I/O and six analog I/O can be added to the bus by using the custom slave. Slaves are connected to the master in daisy-chain topology. Since implementation of EtherCAT master does not require any special hardware, any PC with network interface card can be EtherCAT master. Software integration part consists of real-time patched (RT PREEMPT) Linux distribution Xubuntu 18.04, ROS2 and several nodes in ROS2 depicted in figure above. Linux itself is not real-time, however there are several methods to bring real-time features to Linux such as dual-kernel approach with Xenomai and RTAI, or single-kernel approach with RT PREEMPT maintained by Linux Foundation.Even though dual kernel implementations has better real-time performance, considering implementation time, portability, scalability, adaptation to programming environment of each patch, and community support, RT PREEMPT is better realtime solution for our application. Control software is consists of four components (ROS2 nodes) as shown in Fig 1. Currently we implemented three nodes, and planning to implement one more node as safety node in which system related safety information will be checked every cycle.
- - EtherCAT node : Responsible for EtherCAT communication between master and slaves and publishes acquired feedback from slaves under /slave feedback topic name in 1 kHz frequency. Additionally, subscribes to /master commands topic published from control node and sends control commands to slaves via EtherCAT communication.
- - Control node : Kinematic calculations will be done in this node.This node subscribes /slave feedback topic published from EtherCAT node and publishes control commands under /master commands topic.
- - GUI node : Consist of camera viewer and slave feedback visualizers such as motor state, communication state, emergency button state. Publishes under /gui data consists of soft emergency button events, subscribes to /master commands and /slave feedback topics to give visual feedback to user