Teleoperation - alberto-rota/dVRK GitHub Wiki

NEARLab

daVinci for Teleoperation

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


Table of Contents

Please refer to the NEW CONFIGURATION section at the bottom of the page if you are using the new workstation

STEP 1 - Power on the robot

On the back of the Controller Cart, turn on the main power switch [1] and the endoscope power switch [2], as indicated in the figure

Power on buttons

STEP 2 - Turn on the HRSVs

At the surgical console, no video should be displayed inside the binocular. To turn on these displays reach under the cart (see photo) and press the button on the piece of circuitry highlighted in orange in the pic. The button is not immediately reachable, but it's easy to find by touching the component.

HRSC power on

Once the button is pressed, an LED should turn on. The LED light is:

If it's green, check that something is visible inside the HRSV ocular.

Repeat the procedure for the other button (there is one on the left and one on the right).

Each of the two HRSVs acts as a separate HDMI monitor and it will display as so into the display manager of your OS.

STEP 3 - Turn on the endoscope lighting system

Make sure you powered on the endoscope by turning on the power switch on the back of the Controller Cart.

On the front of the controller cart, press the buttons in the order indicated in the figure below, specifically:

  • Turn on the front Power Switch of the optic fiber system
  • Lamp ON
  • Brightness Control OPEN to 100%

endsocope light buttons

The tip of the endoscope mounted on the patient cart should be now emitting an intense light.

STEP 4 - Start the ROS framework

If you need to view the endoscope camera feeds (left and right), INSTEAD OF STARTING THE ROSMASTER with the roscore command, in a terminal on GRU (outside of the (base) conda virtual environment) use

terminator -l vision

or its alias

tlv

It opens multiple terminals and runs multiple ROS nodes (including the ROSMASTER, so before running this command check that no ROSMASTER is running). It also opens two windows with the LEFT and RIGHT camera feed separately: to view the camera feeds inside the HRSVs and have 3D depth perception, drag the windows outside the right border of the main monitor on GRU and into the HRSV monitors. The monitors should be set up in this configuration: if you are in doubt, search for Display Settings in Ubuntu.

hrsv monitor config

See the ROS network startup section if you don't need to see the camera feeds or if you need troubleshooting tips.

STEP 5 - Start the dVRK control panel

The GUI control panel for the daVinci robot runs on the dVRK computer. Open a terminal and run

dvrk_teleoperation

This command sources the ROS environment, closes the safety relays for the QLA boards on the controller and opens the GUI control panel. In order to open the control panel, the previous two commands must be executed successfully.

The command outputs three yellow message, one for each function, and an OK confirmation or an ERROR message.

Most often, at startup, the QLA relay closing procedure will fail due to communication mismatches. In this case, you will see

> Sourcing devel/setup.bash >> OK
> Closing Safety relays >> ERROR
Check that the FireWire cable is connected to the dvrk PC. If it is, un-plug it and plug it

In that case, UNPLUG AND RE-PLUG THE FIREWIRE CABLE IN THE UNUSED PORT ON THE BACK OF THE dVRK COMPUTER.

change firewire cable

Please note that this MAY NOT WORK AT FIRST TRY. It is suggested to:

  1. Unplug the FireWire cable
  2. Pluge the FireWire cable in the adjacent port (the one where the cable was not plugged in)
  3. Test the dvrk_teleoperation command
  4. If you still get an error, unplug the FireWire cable and plug it in the original port
  5. Test the dvrk_teleoperation command again
  6. If you still get an error, repeat the procedure from step 1
  7. If after many tries you don't receive an OK message, check that all the previous STEPs have been executed correctly.

If the command is executed successfully, the following prompt will appear:

> Sourcing devel/setup.bash >> OK
> Closing Safety relays >> OK
> Launching dVRK GUI >> CHECK OUTPUT

Followed by the log messages of the dVRK console. Eventually, the GUI control panel will appear and it will look similar to this:

dvrk control panel

STEP 6 - Set the instrument type

The daVinci is compatible with a plethora of surgical instruments, the geometry and kinematics of which is different from instrument to instrument. Before teleoperating, you must set the type of instrument you are using: on the console, select Arms [1] > PSM1 [2] then change the tool type [3] to LARGE_NEEDLE_DRIVER_420006 and confirm. Repeat the procedure for PSM2.

set intrument type

STEP 7 - Set the SUJ values

The position of the Remote Center of Motions (RCMs) and the reference frames of the base links of the three arms must be calculated before teleoperating. To do so, the SUJ coordinates must be set: this is a manual process and requires reading the values form the calibration paper strips glued on the SUJs.

Because we usually DO NOT MOVE THE SUJs (and you shouldn't either), the SUJ coordinates have been calibrated once and their values saved. To publish their value on the ROS network, run the following command in a new terminal on dVRK:

dvrk_calibrate_sujs_default

After a few seconds of delay (purposely set to latch the ROS messages), the terminal will confirm the publishing of the SUJ values with the message:

> SUJ coordinates published correctly

NOTE: One will be able to teleoperate the robot without setting the SUJ values, however you will see incongruences between the motion of the MTMs and the motion of the PSMs. This is because, without explicitly publishing the SUJ values, the robot will assume all their coordinates to be zero.

STEP 8 - Start the Teleoperation

With the console open and the SUJ values published, you are ready to teleoperate. On the control panel press, in order:

  1. Power On [1] --> Then wait for the all the red labels on the console to turn green
  2. Home [2] --> The robot will move to the home position. The MTMs will move to their home position and orientation (pointing away from you)
  3. Start [3] --> The robot will move to the teleoperation position. The MTMs will move to the position and orientation that matches the one of the PSM tooltips (usually pointing downwards at an angle)

dvrk control panel

With the grippers in the READY position, you are ready to teleoperate.

Checking the orientation of the MTM grippers is how you make sure that the console is ready and the SUJs are calibrated correctly. Ideally, they should point downwards with the same orientation of the PSM tooltips.

hogrippersme

In some cases, the MTMs will be rigid until you perform a "Pinching" action. An error message on the control panel will notify you in that case.

NEW CONFIGURATION

  1. Open a terminal and run:

    roscore
    cd catkin_ws/
    source devel/setup.bash
    qlacommand -c close-relays  # Unplug and plug the FireWire if not working
  2. Navigate to the folder with POLIMI-dvrk-specific files:

    cd src/cisst-saw/sawIntuitiveResearchKit/share/polimi-daVinci
    rosrun dvrk_robot dvrk_console_json -j [controller_name].json
    # Example: console-SUJ-ECM-MTMR-PSM1-MTML-PSM2-Teleop_oldPC.json
  3. Open another terminal:

    cd /home/nearlabdvrk/catkin_ws/src/cisst-saw/sawIntuitiveResearchKit/share/polimi-daVinci
    bash joints_test_for_newsoft.sh  # Check the SUJ joints to confirm the values
  4. Go back to the dvrk interface, select the tool type, power on the robot, and proceed similarly to the old configuration. Follow the same steps for homing the robot and tele-operation.

⚠️ **GitHub.com Fallback** ⚠️