Arduino Meets da Vinci in a Gesture-controlled Surgical Robot

Lots of us get to take home a little e-waste from work once in a while to feed our hacking habits. But some guys have all the luck and score the really good stuff, which is how these robotic surgical tools came to be gesture controlled.

The lucky and resourceful hacker in this case is one [Julien Schuermans], who managed to take home pieces of a multi-million dollar da Vinci Si surgical robot. Before anyone cries “larcency”, [Julien] appears to have come by the hardware legitimately – the wrist units of these robots are consumable parts costing about $2500 each, and are disposed of after 10 procedures. The video below makes it clear how they interface with the robot arm, and how [Julien] brought them to life in his shop. A quartet of Arduino-controlled servos engages drive pins on the wrist and rotates pulleys that move the cables that drive the instruments. A neat trick by itself, but when coupled with the Leap Motion controller, the instruments become gesture controlled. We’re very sure we’d prefer the surgeon’s hands on a physical controller, but the virtual control is surprisingly responsive and looks like a lot of fun.

When we talk about da Vinci around here, it’s usually in reference to 3D printers or a Renaissance-style cryptex build. Unsurprisingly, we haven’t featured many surgical robot hacks – maybe it’s time we started.

[via r/arduino]

34 thoughts on “Arduino Meets da Vinci in a Gesture-controlled Surgical Robot

    1. Hygiene, mainly. It gets progressively harder to sterilize it properly and the tool also wears out over time. Both increase the risk for the patient.

      In fact, there are many laparoscopic tools that are single use only and must not be reused – again because they cannot be properly cleaned and sterilized.

      1. How is “sterile or not” an analog thing and not digital? Oh, it’s sterile enough, time to go inside the next patient! 99.99% of germs dead, that’s good enough?

        1. That’s sanitized, not sterilized. Sterilized is an absolute term, and is usually performed by an autoclave. Sterilized = 100% of everything on it is dead. Sanitized = 99.999% of everything on it is dead, I forget how many 9’s it is for sanitized.

          1. I guess what I am asking is how does something like these become harder to be assured that it has been sterilized? I am genuinely curious as I own autoclaves but I do not have much experience with the nuances of the sterilization of any robotic technology, let alone microscopic types.

          2. @Waterjet I would assume it’s a matter of wear causing imperfections in the surface, and ten uses is around where they decided it’s not worth the difficulty to get everything out of those.

      1. This. It’s not just how sterile, but the fatigue of the micro-sized components in them. We use one of these machines for working on infants, and precise positioning is critical. Yes, the consumables could probably work for more than 10 insertions (they count the number of insertions on the machine, not the number of cases) but in the name of safety the artificially limit it to the 10.

        1. what is the importance of the insertions? it must be inserted before a procedure and removed after?
          either way seems arbitrary if there is no measurement of the real use, the number of times a pulley turned or something. you could end up not actually using it in the procedure and having to remove it to clean it is that possible?

          1. They know that each time a tool is inserted into a patient it does a certain amount of work before the surgeon needs to swap to another tool. The statistics give the average and maximum time each tool is used per insertion, and they know how much work time a tool is able to cope with before wearing out, so they can pick a number that ensures the tool cannot possibly wear out before it is retired.

          2. @pelrun – Precisely the reason. Before they rolled the system out (and passed the FDA certification) they averaged how long surgery cases are and how much the instruments were used. Naturally they set the limit well inside the failure point, but each ‘cartridge’ has a microchip that 1) identifies the type of instrument to the DaVinci robot, and 2) counts down each time it’s inserted into the robot arm.

            The down side to the system is that it counts down EACH time it’s inserted, even if you never move that arm, it only cares on how many times it’s inserted. Naturally this is an error on the extreme side of caution, but as they use these robots for surgery inside the heart….

          3. seems like an incredibly stupid way of handling it, they could easily work out EXACTLY how much work it does instead of having to do all of this information gathering and calculating. It’s not just a waste if you don’t use it, its potentially dangerous if you need to use it more than they expect. perhaps someone tested or was training with it and didn’t reinsert it for a while.
            call me skeptical if you wish but i think if they were really concerned about dangers they would have made it more robust, this stinks to me of an idea by a businessman, not an engineer.

  1. This article doesn’t get beyond the “hmm interesting, moving on” stage, because it’s lacking information about how he’s done it.
    It’s like saying “People went to the moon using a rocket” but giving no information about the rocket itself.

    1. Looks like the da Vinci “hand” is cable controlled. The cables are connected to servos, servos are driven by Arduino. PC runs the Leap Motion software to detect hand and finger positions. Then just pass the data from PC to Arduino.

    2. Hi all! I am Julien Schuermans, the one who built this and made the video. The “lucky and resourceful hacker” who built the ‘rocket’, so to say. :) Great to see that so many people are interested in my little project! I used Processing 3 on my computer to interface with the LeapMotion controller and the Arduino Uno. This LeapMotion Processing SDK ( ) provides functions for retrieving the yaw, pitch and roll of the handpalm, as well as the ‘pinch strength’ (and much more!). With these values I was able to calculate the respective servo positions. There are four pulleys in the base of the arm, all providing 180 degrees of freedom. The 4 HITEC HS 322HD servos are individually controlled with a PWM signal from the digital pins of the Arduino. Processing sends the commands to the Arduino using the Firmata library ( ). If you have any more questions, do ask!

      Oh, and yes, I did obtain these arms because they are disposed of after they have been used about 10 times.

        1. No problem! The Leap Motion is astonishingly fast. I’d say it detects hands in a sphere of 30-50cm diameter around the device. Speed is no issue, the accuracy of the tracking drops however when performing ‘complex’ gestures: hands overlapping with other objects, weird finger movements, quickly turning your hands around, …

      1. >Oh, and yes, I did obtain these arms because they are disposed of after they have been used about 10 times.

        Just hoping they have been sterilized again before beeing trowed away…

    1. knitting a pair of socks with these micro-manipulators…. that actually sounds like a fun idea! Not sure how practical it would be but hey, who cares about practical!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.