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.
- Introduction
- Package Structure
- Components Overview
- Building the Packages
- Usage Examples
- Dependencies
- Additional Resources
- Notes
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.
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.
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.
- URDF and Xacro Files
- Meshes
- Controllers
- RViz Configurations
The psm_description
package provides URDF models and configurations for the Patient Side Manipulator, a robotic arm that performs surgical procedures.
- Classic and Si Versions
- Support for Various Surgical Tools
- URDF and Xacro Files
- Meshes
- Controllers
- RViz Configurations
- README:
psm_description/README.md
The ecm_description
package provides URDF models and configurations for the Endoscopic Camera Manipulator, which controls the endoscopic camera during surgery.
- Full ECM Models and Base Models
- URDF and Xacro Files
- Meshes
- Controllers
- RViz Configurations
- README:
ecm_description/README.md
The mtm_description
package provides URDF models and configurations for the Master Tool Manipulator, which serves as the master control interface for the surgeon.
- Left (MTML) and Right (MTMR) Manipulators
- URDF and Xacro Files
- Meshes
- Controllers
- RViz Configurations
- README:
mtm_description/README.md
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.
- Classic and Si Versions
- URDF and Xacro Files
- Meshes
- Controllers
- RViz Configurations
- README:
suj_description/README.md
The patient_cart_description
package provides URDF models and configurations for the Patient Cart, which holds the PSMs and ECM during surgical procedures.
- Classic and Si Models
- Integration with SUJ and Mounting Points for PSMs and ECM
- URDF and Xacro Files
- Controllers
- RViz Configurations
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
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
- Launch File:
davinci_core_description/launch/davinci_core_bringup.launch.py
- Launch Files README: See
davinci_core_description/launch/README.md
for detailed explanations.
To simulate the PSM with ROS 2 control and visualize it in RViz:
ros2 launch psm_description psm_bringup.launch.py
- Launch File:
psm_description/launch/psm_bringup.launch.py
- Launch Files README: See
psm_description/launch/README.md
for detailed explanations.
To simulate the ECM with ROS 2 control and visualize it in RViz:
ros2 launch ecm_description ecm_bringup.launch.py
- Launch File:
ecm_description/launch/ecm_bringup.launch.py
- Launch Files README: See
ecm_description/launch/README.md
for detailed explanations.
To simulate the MTM with ROS 2 control and visualize it in RViz:
ros2 launch mtm_description mtms_bringup.launch.py
- Launch File:
mtm_description/launch/mtms_bringup.launch.py
- Launch Files README: See
mtm_description/launch/README.md
for detailed explanations.
To simulate the SUJ with ROS 2 control and visualize it in RViz:
ros2 launch suj_description suj_bringup.launch.py
- Launch File:
suj_description/launch/suj_bringup.launch.py
- Launch Files README: See
suj_description/launch/README.md
for detailed explanations.
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 File:
patient_cart_description/launch/patient_cart_classic_bringup.launch.py
- Launch Files README: See
patient_cart_description/launch/README.md
for detailed explanations.
For detailed explanations of the launch files and their configurations, refer to the individual Launch Files README in each component's launch
directory.
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
- Launch File:
davinci_core_description/launch/view_robot.launch.py
- Launch Files README: See
davinci_core_description/launch/README.md
for detailed explanations.
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
.
For detailed explanations of the visualization launch files, refer to the Launch Files README in each component's launch
directory.
Ensure that you have the following dependencies installed:
- ROS 2 (Foxy, Galactic, Humble, etc.)
- robot_state_publisher
- joint_state_publisher_gui
- ros2_control
- rviz2
- da Vinci Core Description README:
davinci_core_description/README.md
- PSM Description README:
psm_description/README.md
- ECM Description README:
ecm_description/README.md
- MTM Description README:
mtm_description/README.md
- SUJ Description README:
suj_description/README.md
- Patient Cart Description README:
patient_cart_description/README.md
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.