Skip to content

Latest commit

 

History

History
170 lines (129 loc) · 6.47 KB

README.md

File metadata and controls

170 lines (129 loc) · 6.47 KB

daVinci Core Description

The da Vinci Surgical System model includes two arms (left and right). This 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.

Table of Contents

Package Structure

davinci_core_description
├── CMakeLists.txt
├── config
│   └── davinci_core.controllers.yaml
├── launch
│   ├── davinci_core_bringup.launch.py
│   └── view_robot.launch.py
├── meshes
│   ├── mounting_base.stl
│   ├── outer_insertion.stl
│   ├── outer_pitch_base.stl
│   ├── outer_pitch_bottom.stl
│   ├── outer_pitch_front.stl
│   ├── outer_pitch_top.stl
│   ├── outer_yaw.stl
│   ├── slave_frame.stl
│   ├── tool_adaptor.stl
│   └── tool_asm.stl
├── package.xml
├── README.md
├── rviz
│   └── davinci_core_description.rviz
├── src
│   └── davinci_core_joint_controller.cpp
└── urdf
    ├── daVinci.urdf.xacro
    ├── README.md
    ├── ros2_control
    │   ├── daVinci.arm.ros2_control.xacro
    │   └── README.md
    └── xacros
        ├── daVinci.arm.xacro
        └── README.md

URDF and Xacro Files

URDF Directory (urdf/)

  • Contains the Unified Robot Description Format (URDF) files and Xacro macros defining the robot's model.
  • README: See urdf/README.md for detailed information.

Main URDF File (daVinci.urdf.xacro)

Xacro Macros (urdf/xacros/)

  • Contains reusable macros for building the robot's URDF.
  • Files:
  • README: See urdf/xacros/README.md for more details on Xacro macros.

ROS 2 Control Configurations (urdf/ros2_control/)

Meshes

  • Meshes Directory (meshes/)
    • Contains STL files representing the visual and collision geometry of the robot's components.
    • Key files include:
      • slave_frame.stl: Mesh for the mounting platform.
      • mounting_base.stl, outer_yaw.stl, outer_pitch_base.stl, etc.: Meshes for various robot parts.

Controllers

  • Controller Configuration (davinci_core.controllers.yaml)

    • Located at config/davinci_core.controllers.yaml.
    • Defines the controllers to be used with the robot.
    • Controllers include:
      • joint_state_broadcaster: Publishes the joint states.
      • forward_position_controller: Controls joint positions.
  • Custom Joint Controller Source (davinci_core_joint_controller.cpp)

RViz Configurations

  • RViz Configuration (davinci_core_description.rviz)

Building the Package

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

colcon build

Source your workspace after building:

source install/setup.bash

Dependencies

Ensure that you have the following dependencies installed:

  • ROS 2 (Foxy/Galactic/Humble)
  • robot_state_publisher
  • joint_state_publisher_gui
  • ros2_control
  • rviz2

Usage Examples

Simulate the Robot with Controllers

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

Visualize and Manipulate the Robot with GUI

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

ros2 launch davinci_core_description view_robot.launch.py

Additional Resources