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.
- Package Structure
- URDF and Xacro Files
- Meshes
- Controllers
- RViz Configurations
- Building the Package
- Dependencies
- Usage Examples
- Additional Resources
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
- Contains the Unified Robot Description Format (URDF) files and Xacro macros defining the robot's model.
- README: See
urdf/README.md
for detailed information.
- Located at
urdf/daVinci.urdf.xacro
. - Includes robot definitions and integrates macros.
- Contains reusable macros for building the robot's URDF.
- Files:
daVinci.arm.xacro
: Macro defining an arm of the da Vinci robot.
- README: See
urdf/xacros/README.md
for more details on Xacro macros.
- Contains Xacro files defining the ROS 2 control interfaces.
- Files:
daVinci.arm.ros2_control.xacro
: Defines the control interfaces for the robot's arm.
- README: See
urdf/ros2_control/README.md
for more information on ROS 2 control configurations.
- 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.
-
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.
- Located at
-
Custom Joint Controller Source (
davinci_core_joint_controller.cpp
)- Located at
src/davinci_core_joint_controller.cpp
. - Source code for the custom joint controller node.
- Implements specific control logic for the da Vinci core robot.
- Located at
- RViz Configuration (
davinci_core_description.rviz
)- Located at
rviz/davinci_core_description.rviz
. - Pre-configured settings for RViz visualization.
- Sets up the display to visualize the robot model and its state.
- Located at
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
Ensure that you have the following dependencies installed:
- ROS 2 (Foxy/Galactic/Humble)
- robot_state_publisher
- joint_state_publisher_gui
- ros2_control
- rviz2
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:
launch/davinci_core_bringup.launch.py
- Launch Files README: See
launch/README.md
for detailed explanations of the launch files.
To launch the robot and manipulate its joints using the Joint State Publisher GUI:
ros2 launch davinci_core_description view_robot.launch.py
- Launch File:
launch/view_robot.launch.py
- Launch Files README: See
launch/README.md
for detailed explanations of the launch files.
- URDF README:
urdf/README.md
- Detailed documentation on the URDF files. - Xacro Macros README:
urdf/xacros/README.md
- Information on Xacro macros used in the robot description. - ROS 2 Control README:
urdf/ros2_control/README.md
- Details about the ROS 2 control configurations. - Launch Files README:
launch/README.md
- Explanations of the provided launch files.