Home - alberto-rota/dVRK GitHub Wiki

NEARLab

A comprehensive guide for the daVinci robot at NEARLab-Medical Robotics

This guide was made and is maintained by Alberto Rota. Contributes, issues and corrections are welcome at Alberto's email.


Table of Contents

The daVinci robot

The daVinci is the most widely used robot in the healthcare industry for keyhole surgery. It is commercialized by the US-based company Intuitive Surgical Inc.. For research purposes, Intuitive collaborated with Johns Hopkins University (JHU) to create the dVRK Framework (da Vinci Research Kit) to make the hardware of the robot accessible to universities and research centers. The daVinci robot at NEARLab-MRS embeds such framework.

The robot is composed of:

  • A Patient Cart, which equips the actuated arms and is positioned next to the patient
  • A Surgeon Cart, which equips the manipulators and accomodates the surgeon
  • A Controller Cart (or Vision Cart), which equips the controllers and the camera system

The Patient Cart

The Patient Cart mounts 2 actuated robotic arms named Patient-Side Manipulators (PSMs) and one Endoscope Camera Manipulator (ECM). Their motion is determined from the pose of the manipulator at the surgeon cart. Looking at the robot in a frontal view (as in the figure):

  • The left arm is PSM1: it is controlled by the left manipulator
  • The right arm is PSM2: it is controlled by the right manipulator
  • The center arm is the ECM: it is controlled by both manipulators and pressing the CAMERA pedal
  • An additional non-powered arm, PSM3, is mounted on the robot but at the moment is not actuated

dvrk patient cart

Each arm is mounted on a kinematic mechanism that determines the position and orientation of its base and, therefore of its RCM. This kinematic chain is composed of Set-Up Joints (SUJs) and it is not actuated. It is moved manually before each operation.

NOTE: Unless it is absolutely necessary, DO NOT MOVE THE SET UP JOINTS. Their calibration is manual and takes a long time!

The SUJs determine the pose of the PSM and ECM remote center of motion. The actuation occurs only on the joints of the PSM and ECM and never on the SUJs.

dvrk kinematics

The Surgeon Cart

When teleoperating, the surgeon is seated at the Surgeon Cart, which is equipped with 2 Master-Tool Manipulators (MTMs) and a High-Resolution Stereo Viewer (HRSV) composed of two oculars. The motion of each MTM is converted to kinematic commands for the PSMs. The ECM motion can also be controlled by moving the two MTMs simultaneously while pressing the CAMERA pedal. The left and right feeds from the stereo endoscope camera are sent separately to the right and left HRSV oculars: this feature allows the surgeon to view the surgical field in 3D.

The CLUTCH pedals is pressed to reposition the MTMs. When it is held down, the motion of the MTMs will be free but the PSMs will not move. This is useful to reposition the MTMs in case of collision with the patient or the environment or when the edge of the range of motion is reached.

dvrk console

Lab configuration, nomenclature and network connectivity

The daVinci room of NEARLab-Medical Robotics is equipped with the following devices:

  • 1 Patient Cart equipped with 2 functional PSMs (PSM1 and PSM2), 1 non functional PSM (PSM3), and 1 functional ECM
  • 1 Surgeon Cart equipped with 2 functional MTMs (MTMR and MTML), and one HRSV pair
  • 1 Controller Cart
  • 1 Windows PC (named WIN) for computation-heavy tasks
  • 1 Ubuntu PC (named dVRK) for controlling robot
  • 1 Ubuntu PC (named GRU) handling the ROS framework

room_map

IP addresses of the computers are fixed and are the following:

  • GRU: 192.168.1.1
  • dVRK: 192.198.1.2
  • WIN: 192.168.1.3

If you connect to the local network via Ethernet, your IP address will be assigned automatically by the router and it will be static.

Check your IP address by running ifconfig in a terminal (Linux) or ipconfig in a command prompt (Windows).

Requirements

To send/recieve messages to/from the robot, like joint positions, teleoperation commands, you need to be connected to the local network (wired only for secutiry reasons) via an Ethernet cable. An Ethernet access point is available between GRU and dVRK; Ethernet cables are available around the room. If your computer does not have an Ethernet port, you can use a USB Ethernet adapter

Ethernet Adapter โž” ๐ŸŒ Amazon link

A ROS framework is the most important layer of communication in the daVinci room. Download ROS Noetic to access this framework: ROS is necessary if you need to get the robot data on your computer, including the camera feeds

NOTE: ROS works only on Linux

  • If you have a Windows PC: Install WSL, a command-line only Linux environment which runs inside windows,
  • If you have a Mac: Youโ€™ll need to install a Virtual Machine, this video may help you
  • If you have Linux PC: Make sure itโ€™s 20.04 (Focal)

ROS Noetic โž” ๐ŸŒ Download link

ROS network startup

The daVinci room is equipped with a ROS network that handles the communication between all the computer and the interfaces. To start up the ROS network, run the ROSMASTER node on GRU: open a terminal and run

roscore

If you open the terminal inside a python virtual environment and (base) is displayed before the terminal prompt, you have to deactivate the virtual environment by running the command cda before running roscore.

Check that the output is correct and that the ROS_MASTER_URI variable is set to http://192.168.1.1:11311/

To check if a computer is connected to the ROS network, run rostopic list in a terminal. If the computer is connected, you will see a long list of topics, most starting with /dvrk/.... If you are not connected to the network, you will see an error message like ERROR: Unable to communicate with master!. In that case, some troubleshooting tips are:

  • Check that the computer is properly connected to the local network via Ethernet cable (Ethernet cables become "loose" over time, and they may disconnect by themselves)

  • Check that on your computer, the ROS_MASTER_URI variable is set to http://192.168.1.1/11311/. Do this by running echo $ROS_MASTER_URI in a terminal. If ROS_MASTER_URI is not correct, run

    export ROS_MASTER_URI=http://192.168.1.1/11311/ 
    
  • Check that on your computer, the ROS_IP variable is set to the IP of your own computer. Do this by running echo $ROS_IP in a terminal and compare it with the output of ifconfig (by now I assume that you are using Ubuntu or WSL). If ROS_IP is not correct, obtain your IP and then run

    export ROS_IP=<your IP> 
    

Teleoperation with the daVinci

The guide of using the daVinci for teleoperation is at this page

STEVE: The VR simulator with haptic guidance

The guide of using STEVE, the daVinci VR simulator is at this page

โš ๏ธ **GitHub.com Fallback** โš ๏ธ