/dvrk_urdf

Repository containing URDFs for dVRK Components

Primary LanguagePython

ROS2 Version Release Version

dVRK URDF Description

This package provides the Unified Robot Description Format (URDF) models for the da Vinci Research Kit (dVRK). It includes detailed models of the various robotic components used in the da Vinci Surgical System, allowing for simulation and visualization in ROS 2.

Table of Contents


Introduction

The dVRK URDF models provide detailed representations of the robotic components used in the da Vinci Surgical System. This package combines information from multiple components to serve as a unified guide for simulation and development within ROS 2.


Package Structure

dvrk_urdf
├── davinci_core_description
├── ecm_description
├── mtm_description
├── patient_cart_description
├── psm_description
├── suj_description
└── README.md

Each sub-package contains URDF models, launch files, configurations, meshes, and additional resources specific to each component.


Components Overview

da Vinci Core Description

The davinci_core_description package provides the URDF descriptions, launch files, and configurations necessary to simulate and visualize the da Vinci Surgical System's core components in ROS 2.

Subcomponents

  • URDF and Xacro Files
  • Meshes
  • Controllers
  • RViz Configurations

Readme

Patient Side Manipulator (PSM)

The psm_description package provides URDF models and configurations for the Patient Side Manipulator, a robotic arm that performs surgical procedures.

Subcomponents

  • Classic and Si Versions
  • Support for Various Surgical Tools
  • URDF and Xacro Files
  • Meshes
  • Controllers
  • RViz Configurations

Readme

Endoscopic Camera Manipulator (ECM)

The ecm_description package provides URDF models and configurations for the Endoscopic Camera Manipulator, which controls the endoscopic camera during surgery.

Subcomponents

  • Full ECM Models and Base Models
  • URDF and Xacro Files
  • Meshes
  • Controllers
  • RViz Configurations

Readme

Master Tool Manipulator (MTM)

The mtm_description package provides URDF models and configurations for the Master Tool Manipulator, which serves as the master control interface for the surgeon.

Subcomponents

  • Left (MTML) and Right (MTMR) Manipulators
  • URDF and Xacro Files
  • Meshes
  • Controllers
  • RViz Configurations

Readme

Setup Joints (SUJ)

The suj_description package provides URDF models and configurations for the Setup Joints, which are the mounting and positioning mechanisms for the PSMs and ECM.

Subcomponents

  • Classic and Si Versions
  • URDF and Xacro Files
  • Meshes
  • Controllers
  • RViz Configurations

Readme

Patient Cart

The patient_cart_description package provides URDF models and configurations for the Patient Cart, which holds the PSMs and ECM during surgical procedures.

Subcomponents

  • Classic and Si Models
  • Integration with SUJ and Mounting Points for PSMs and ECM
  • URDF and Xacro Files
  • Controllers
  • RViz Configurations

Readme


Building the Packages

Ensure you have a ROS 2 workspace set up. Clone the dvrk_urdf meta-package into the src directory of your workspace, and then build the workspace:

colcon build

Source your workspace after building:

source install/setup.bash

Usage Examples

Simulate the Robots with Controllers

da Vinci Core Robot

To simulate the da Vinci core robot with ROS 2 control and visualize it in RViz:

ros2 launch davinci_core_description davinci_core_bringup.launch.py

Patient Side Manipulator (PSM)

To simulate the PSM with ROS 2 control and visualize it in RViz:

ros2 launch psm_description psm_bringup.launch.py

Endoscopic Camera Manipulator (ECM)

To simulate the ECM with ROS 2 control and visualize it in RViz:

ros2 launch ecm_description ecm_bringup.launch.py

Master Tool Manipulator (MTM)

To simulate the MTM with ROS 2 control and visualize it in RViz:

ros2 launch mtm_description mtms_bringup.launch.py

Setup Joints (SUJ)

To simulate the SUJ with ROS 2 control and visualize it in RViz:

ros2 launch suj_description suj_bringup.launch.py

Patient Cart

To simulate the Patient Cart with ROS 2 control and visualize it in RViz:

ros2 launch patient_cart_description patient_cart_classic_bringup.launch.py

Launch Files README

For detailed explanations of the launch files and their configurations, refer to the individual Launch Files README in each component's launch directory.

Visualize and Manipulate the Robots with GUI

da Vinci Core Robot

To launch the da Vinci core robot and manipulate its joints using the Joint State Publisher GUI:

ros2 launch davinci_core_description view_robot.launch.py

Other Components

To visualize and manipulate other components, use their respective view_robot.launch.py files:

ros2 launch [component]_description view_robot.launch.py

Replace [component] with the specific component name, such as psm, ecm, mtm, suj, or patient_cart.

Launch Files README

For detailed explanations of the visualization launch files, refer to the Launch Files README in each component's launch directory.


Dependencies

Ensure that you have the following dependencies installed:

  • ROS 2 (Foxy, Galactic, Humble, etc.)
  • robot_state_publisher
  • joint_state_publisher_gui
  • ros2_control
  • rviz2

Additional Resources

For detailed information on each component, including URDF and Xacro files, meshes, controllers, and RViz configurations, please refer to the READMEs in the respective packages.


Developer