Veysi ADIN's Logo Image
Veysi ADIN

Spine Surgery Robot Control Framework

In this project I implemented a control framework using IgH EtherCAT library, ROS2, Qt and Real-time Linux, for Spine Surgery Robot that's being developed in Center for Healthcare Robotics at Korea Institute of Science and Technology.

Project Image
Project Image

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.

  1. - 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.
  2. - 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.
  3. - 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

Tools Used

C++
Python
ROS2
IgH EtherCAT Library
Qt
GIT
Real-time Linux
Doxygen
CiA402