๐Ÿ Inside the dVRK: The Secret Snake Robot Origins of the da Vinci Research Kit

This repository preserves the original da Vinci Research Kit (dVRK) motion controller FPGA code. Active development has migrated to the Johns Hopkins University mechatronics-firmware repository beginning from commit a38917c.

Rather than being designed from scratch, the dVRK controller was ported from a completely separate robotic system: a high-degree-of-freedom surgical snake robot.

1. The Snake Robot Cabling Crunch

Under a conventional control architecture, robot joints are wired directly to the workstation bus for processing, resulting in a complex cabling scenario. The original snake robot actuation unit also suffered from cable drag.

More Motors, More Problems

During my early days in the LCSR, the lab was making strides in dexterity with a snake robot designed for remote telesurgery of the upper airways. However, standard control strategies involved running bulky wiring bundles from every control axis to a centralized electronics rack. The dozens of sensors and actuators needed to articulate such a high-dof robot created a physical bottleneck. The system became increasingly error prone and problematic.

To solve this, we designed a motion control architecture optimized for high-dof systems:

To top it all off (so to speak), we built a next-gen snake robot for the new controller and got exciting results.

Next-gen surgical snake robot with a FireWire-based motion controller.

2. Porting the Snake Robot Legacy to the dVRK

When Intuitive Surgical later provided retired first-generation da Vinci systems for research, labs faced a similar engineering hurdle: The donated manipulators needed new motion control electronics. Because the communication protocols and packet definitions implemented in SnakeFPGA-rev2 were neatly decoupled from robot kinematics, porting it to the da Vinci interface boards was relatively seamless. The boards themselves were designed and fabricated in a matter of weeks as a result of a firmware-first design philosophy.

First-generation da Vinci Research Kit controller pictured on the left a year before launch, next to its predecessor the snake robot controller on the right The da Vinci Research Kit and snake robot controllers were developed in parallel so changes in one could be tested on the other immediately. This was at an advanced stage where robotic mechanisms and motors were being integrated and it was getting real.

Porting the Altera-based snake robot firmware to the Xilinx-based da Vinci Research Kit took place in this very repository. Development on the two controllers continued in parallel to ensure consistency and generalizability. The generalized multi-axis data distribution design allowed the first functional dVRK systems to be brought up in no time.

First known recorded power-on of the dVRK motion controller

3. Digital Archaeology: Tracing the Modern dVRK Firmware

We can retrace the steps leading from the predecessor SnakeFPGA-rev2 to this daVinci1394FPGA to its eventual open source release as JHU mechatronics-firmware on GitHub.

๐Ÿ” History Hiding in the Headers: The FireWire.v Migration Logs

Like a primitive cave painting, there's an old school revision log etched in the header comments of the official FireWire.v source code, showing how it was initially written for the snake robot in 2008, ported to the da Vinci about 2.5 years later in 2010, and received sporadic updates until moving to GitHub in Sep 2012:

/*
 * ...
 * Revision history
 *     04/24/08    Paul Thienphrapa    Initial revision
 *     10/13/10    Paul Thienphrapa    Copied from SnakeFPGA-rev2 and tweaked
 *                                       for Xilinx
 *     10/31/11    Paul Thienphrapa    React to rx packets only when addressed
 *     11/11/11    Paul Thienphrapa    Happy 111111!!11!
 *                                     Fixed mixed blocking/non-blocking issues
 *     10/16/13    Zihan Chen          Modified to support hub capability
 * ...
 */

๐Ÿ” Scaling the System: The Firmware Parameter Shift

Mechanically adding a robot axis might require a complete redesign, but adding it to the controller can be as simple as... adding. This prehistoric commit shows another step in 'transforming' the snake robot into the dVRK:

Paul Thienphrapa, Oct 16, 2012, FPGA1394_QLA: Increase maximum number of axes from 7 to 8

The fact that the snake robot had 7 control axes while the dVRK controller had 8 was hardcoded into the firmware in SnakeFPGA-rev2 and daVinci1394FPGA respectively.

๐Ÿ” Unlocking the Machine

The hardware + software + electronics recipe had been circulating for some time, culminating in the official dVRK publication that documented how this trinity of pillars was toppled one-by-one, leading to the final monument:

  1. Software became commoditized. The robot software landscape of 2014 featured multiple options. According to the paper, "open-source robot software, such as the Robot Operating System (ROS) [1], has seen widespread adoption."
  2. Hardware became abundant. The 2014 paper observed that, in a rare twist, clinical-grade surgical robots were becoming "increasingly available to researchers via the reuse of retired clinical systems."
  3. Electronics became the critical enabler. The paper notes that there were "relatively few open hardware/software platforms in widespread use within the robotics research community." Furthermore, the native da Vinci motion controllerโ€”the presumptive bridge between the above hardware and softwareโ€”was withheld to protect sensitive IP. Thus a dedicated initiative was needed to unblock the impasse and provide "complete access to all levels of control via open-source electronics and software." This was achieved through carefully engineered firmware and "an FPGA to enable a centralized computation and distributed I/O architecture" as detailed in this repository.

With the building blocks combined and the framework in place, the paper highlighted several emergent advantages:

The dVRK article reveals the motion controller's latent emergence as a key enabler of the da Vinci Research Kit. The electronics, firmware, and architecture that went from SnakeFPGA-rev2 to daVinci1394FPGA to JHU mechatronics-firmware helped pave the way for downstream innovations in surgical robotics.

๐Ÿ” Uncovering the Intuitive Research Kit

Before the open-source rollout and rebrand to the da Vinci Research Kit (dVRK), the platform was provisionally referred to as the Intuitive Research Kit. The name can still be found in the dVRK GitHub repository and in some transient documents (pdf):

Besides enabling use of the Snake Robot (Section 3.4.2), the outcomes of this effort formed the basis for JHU Open Source Mechatronics [155, 156], which publicly hosts a set of electronics design files, FPGA code, and basic software for a FireWire-based motion controller. This in turn is a component of the Intuitive Research Kit [157,158].

๐Ÿ” Adaptation and Resilience

What started off as a modest set of .v files has expanded to support a wide array of hardware variants and technical features. These are just a few of the many interesting facts about the dVRK!

4. Modular Mechatronics and Ageless Architecture

This repository highlights the power of modular digital system design. A control architecture abstracted enough to handle multi-axis distributed I/O over a high-speed serial link can easily outlast its physical form, jumping from a bespoke miniature snake robot to a medical robotics research platform found in labs all around the world.

5. References

  1. Design of the motion control architecture: Centralized processing and distributed I/O for robot control
  2. Initial prototype for the snake robot: A distributed I/O low-level controller for highly-dexterous snake robots
  3. Architecture generalization and API: A scalable system for real-time control of dexterous surgical robots
  4. Fully integrated implementation: Design of a scalable real-time robot controller and application to a dexterous manipulator
  5. Running an autonomous snake robot: Guidance of a high dexterity robot under 3D ultrasound for minimally invasive retrieval of foreign bodies from a beating heart
  6. Evolution into to the dVRK: An open-source research kit for the da Vinciยฎ Surgical System
  7. The next generation of dVRK: dVRK-Si: The next generation da Vinci Research Kit