Corindus Develops Real-Time System for Telerobotic Coronary Intervention
Nicholas Kottenstette, Corindus Vascular Robotics
Corindus used MATLAB and Simulink to develop the CorPath GRX platform for catheter control, and Simulink Real-Time to run the real-time application on Speedgoat targets, using Precision Time Protocol to synchronize the local and remote site clocks.
Published: 21 Jul 2020
I came on as the principal robotic control systems engineer, and so I developed the control systems for the robot that we have behind us, the GRX for guide catheter control and manipulation. When I came, the first thing I did is I started modeling the systems, and simulate them. And I simulate those in Simulink. And I started designing all the control laws that were involved on the product at hand.
What I would do is I would kind of model the system as high level as I could, understand, get the math right, get the algorithms correct, simulate them. And then when we needed a platform to run it on, I used the Speedgoat with off-the-shelf amplifiers. And in a really short time frame, we basically got a working system for in vivo testing in an animal model, to verify that we could indeed manipulate catheters safely inside a patient.
And so I had a real time video capture system. I'm going to compress it with JPEG. I'm then going to chop it up, send it over the network, and then reassemble that image, and then display it for the physician in real time. At the same time, the Speedgoat supported the ability to do Precision Time Protocol. And so I had to design a system that could take advantage of the PTP support that MathWorks had.
We thought we could synchronize a clock over an encrypted network. So the challenge is not only do we need to know the time that events are occurring in order to safely do an intervention with the patient, but we also need the secure channel. So the system I developed allows us to kind of send packets back and forth where the Speedgoats are completely unaware. They think they're on the same network.
But I need to be able to know exactly when events are occurring. And I want to do that using Precision Time Protocol. The problem is you can't have one clock with Precision Time Protocol.
So what we did was we chose to go ahead and have two clocks at each site. And then we know exactly the time delay between the two sites at all times. Not only could we measure the delay, we could actually inject delay so that we could actually see if you could safely finish interventions under various types of delay in order to kind of characterize what those results were. And then we can use that to safely ensure that the physician won't have delays that are too large.
But we have a TelePresence system so that you can basically contact the other side. We have a tunnel that's created between the two sites so that we know that we're kind of all systems are go. And then we basically bring up both the local and the remote side. And then next thing you see is you see the video. You have the real-time fluoro, and you have the hemodynamics there to monitor the patient's health. And you know exactly what the time delay is.
So I have continuous time models for the motors that are used in the robot. And obviously I modeled the kinematics and some of the physics involved with the slide and stuff, so like for a guide catheter control.
On the control side, we then built all the discrete algorithms. Most of it's written using embedded MATLAB blocks running within the Simulink environment.
Then you'll replace the simulation of the plant and then you'll just have the actual robot. And then you'll go ahead and run those algorithms on the robot using Simulink real time. You're actually working with the robot so when I know it goes on the robot, it's going to do exactly what I expect it to do.