diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx index 4f5aee81c..ae12ff48d 100644 --- a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx @@ -242,6 +242,11 @@ However, please take note of the following: - The batteries must not be punctured or disassembled. - The batteries should be disposed of pursuant to your local regulations regarding electrical and/or hazardous waste. + +The integrated Ridgeback charger will fully charge the internal lead-acid battery in a few hours. The charger will time out after 12 hours, so be sure to power cycle (by unplugging and re-plugging) the charger on a daily basis. Allow the battery to warm up to at least 10°C before charging. + +When the battery is running low on charge, the corner lights will start to flash yellow. This is your indication that the Ridgeback should be plugged in to charge soon. + Please contact Clearpath Robotics for additional information about Ridgeback's batteries or for information about purchasing additional batteries. diff --git a/docs_versioned_docs/version-ros2humble/components/_clearpath_firmware.mdx b/docs_versioned_docs/version-ros2humble/components/_clearpath_firmware.mdx index 9c7e7499b..9037e4233 100644 --- a/docs_versioned_docs/version-ros2humble/components/_clearpath_firmware.mdx +++ b/docs_versioned_docs/version-ros2humble/components/_clearpath_firmware.mdx @@ -26,13 +26,11 @@ Before flashing firmware, place your robot up on blocks or disengage the drivetr #### 2. Prepare the Robot - :::note +:::note - Platforms with an Ethernet connection to the MCU have the option of flashing over USB or Ethernet. - If you are updating to ROS 2 Humble for the first time, you must use USB. If you are updating ROS 2 Humble firmware - to a newer version, using Ethernet is recommended. Skip this step if flashing over Ethernet. + The J100 MCU does not have an ethernet interface, and therefore cannot be flashed using the eternet bootloader. You must follow the subsequent steps to flash the J100 MCU over mini-USB. - ::: +::: The J100 MCU is mounted to the rear inside wall of the robot. To access it, open the lid, keeping the computer tray secured to the underside of the lid. @@ -87,13 +85,13 @@ Before flashing firmware, place your robot up on blocks or disengage the drivetr #### 2. Prepare the Robot - :::note +:::note Platforms with an Ethernet connection to the MCU have the option of flashing over USB or Ethernet. If you are updating to ROS 2 Humble for the first time, you must use USB. If you are updating ROS 2 Humble firmware to a newer version, using Ethernet is recommended. Skip this step if flashing over Ethernet. - ::: +::: The W200 MCU is located on the underside of the metal frame over the top of the computer. @@ -125,6 +123,159 @@ Before flashing firmware, place your robot up on blocks or disengage the drivetr While pressing BT0 on the MCU, connect the external computer to Warthog's MCU using a USB cable. + + + + #### 1. Download the Clearpath Firmware package from the Clearpath package server + + On the robot computer, run the following commands: + + ``` + sudo apt-get update + sudo apt-get install ros-humble-clearpath-firmware + ``` + + #### 2. Prepare the Robot + +:::note + + Platforms with an Ethernet connection to the MCU have the option of flashing over USB or Ethernet. + If you are updating to ROS 2 Humble for the first time, you must use USB. If you are updating ROS 2 Humble firmware + to a newer version, using Ethernet is recommended. Skip this step if flashing over Ethernet. + +::: + + Place the R100 Ridgeback up on blocks. Firmware loading does not usually result in unintended motion, but it's safest when off the ground. + + Remove the side panels to access the robot computer and MCU. + + Connect the MCU to the R100 Ridgeback's onboard computer using a mini-USB cable connected to the port shown below: + +
+
+ +
R100 MCU mini-USB port
+
+
+ + In the middle of the MCU, there is a two-position switch labelled `PWR_MODE`. Move the switch from the default `NORM` position to the `AUX` position. + + Press the `M_RST` to restart the MCU. Now, the MCU is in boot-loader mode, ready to receive new firmware. + +
+
+ +
R100 MCU mode switch and reset button
+
+
+ +:::note + +The Ridgeback's MCU is normally rotated 90 degrees when it is installed in the robot; the `NORM` position is typically towards the top of the robot's chassis and the `AUX` position is normally towards the bottom. + +::: + +
+ + + + #### 1. Download the Clearpath Firmware package from the Clearpath package server + + On the robot computer, run the following commands: + + ``` + sudo apt-get update + sudo apt-get install ros-humble-clearpath-firmware + ``` + + #### 2. Prepare the Robot + +:::note + + Platforms with an Ethernet connection to the MCU have the option of flashing over USB or Ethernet. + If you are updating to ROS 2 Humble for the first time, you must use USB. If you are updating ROS 2 Humble firmware + to a newer version, using Ethernet is recommended. Skip this step if flashing over Ethernet. + +::: + + The DX100 MCU is mounted near the HMI panel towards the rear of the robot. To access it, remove the antennas and the center channel panel. + + Connect the MCU to the onboard computer using a mini-USB cable connected to the port as shown below: + +
+
+ +
DX100 MCU mini-USB port
+
+
+ + As is shown in the image above, set the `PWR_MODE` switch to the `ALT` position. + + Press the `M_RST` or restart the robot using the HMI panel. Now, the MCU is in boot-loader mode, ready to receive new firmware. + +
+ + + + #### 1. Download the Clearpath Firmware package from the Clearpath package server + + On the robot computer, run the following commands: + + ``` + sudo apt-get update + sudo apt-get install ros-humble-clearpath-firmware + ``` + + #### 2. Prepare the Robot + +:::note + + Platforms with an Ethernet connection to the MCU have the option of flashing over USB or Ethernet. + If you are updating to ROS 2 Humble for the first time, you must use USB. If you are updating ROS 2 Humble firmware + to a newer version, using Ethernet is recommended. Skip this step if flashing over Ethernet. + +::: + + The DX150 MCU is mounted near the HMI panel towards the rear of the robot. To access it, remove the antennas and the center channel panel. + + Connect the MCU to the onboard computer using a mini-USB cable connected to the port as shown below: + +
+
+ +
DX150 MCU mini-USB port
+
+
+ + As is shown in the image above, set the `PWR_MODE` switch to the `ALT` position. + + Press the `M_RST` or restart the robot using the HMI panel. Now, the MCU is in boot-loader mode, ready to receive new firmware. + +
@@ -174,4 +325,37 @@ If you flashed over Ethernet, skip this step. Press the RST button. The MCU should enter regular operation. + + + + Switch the PWR_MODE switch from ALT back to NORM. The robot will turn off. + Power it back on with the power button. + + + + + + + Switch the PWR_MODE switch from ALT back to NORM. The robot will turn off. + Power it back on with the power button. + + + + + + + Switch the PWR_MODE switch from ALT back to NORM. The robot will turn off. + Power it back on with the power button. + + + diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_dd100.png b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_dd100.png new file mode 100644 index 000000000..715880ade Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_dd100.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_dd150.png b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_dd150.png new file mode 100644 index 000000000..ce87d2ee3 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_dd150.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_do1X0.png b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_do1X0.png new file mode 100644 index 000000000..6d736d416 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/img/top_plate_do1X0.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/top_plate.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/top_plate.mdx new file mode 100644 index 000000000..be006c986 --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/top_plate.mdx @@ -0,0 +1,45 @@ + + + + + +
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+ +```yaml +platform: + attachments: + - name: top_plate + type: dd100.top_plate + height: 0.1 + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + enabled: true +``` +
+ +:::note +All DX1X0 platforms allow for these mounting top plates to be easily added. However, the screw mounting locations are different, and therefore, the position of the top plate is slightly different on each platform. +::: + +The height of the top plate can be adjusted using the `height` parameter. This parameter corresponds to the length of the stand-offs holding up the top plate. Therefore, the distance from the `parent` link to the top surface of the top plate will be `height` plus the thickness of the plate. + +Attach accessories to the top plate mounts by setting the accessory's `parent` parameter to one of the grid mounting locations displayed above. The grid mounting locations span from `top_plate_mount_a1` to `top_plate_mount_e6`, where the front left-most location is the `a1` mount and the bottom right-most location is the `e6` mount. The letters correspond to the columns and the number to the rows. The name of these links depends on the `name` parameter defined in the entry above. + +The `type` parameter can be set to any of `dd100.top_plate`, `dd150.top_plate`, `do100.top_plate`, or `do150.top_plate`, as all of these resolve in the same attachment. diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/fams.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/fams.mdx new file mode 100644 index 000000000..98fbd53b8 --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/fams.mdx @@ -0,0 +1,29 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +platform: + attachments: + - name: fams + type: r100.fams + table_height: 0.6 + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + enabled: true +``` +
+ +The height of the table can be adjusted using the `table_height` parameter. The height parameter corresponds to the length of the table legs. Therefore, the distance from the `parent` link to the top surface of the table will be the `table_height` plus the thickness of the top plate. + +Payloads can be added to the table using the links `fams_default_mount` (at the center of the table) and `fams_arm_mount` (at the front of the table). The name of these links corresponds to the `name` parameter set in the `robot.yaml`. diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/hams.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/hams.mdx new file mode 100644 index 000000000..d973673da --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/hams.mdx @@ -0,0 +1,32 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +platform: + attachments: + - name: hams + type: r100.hams + table_height: 0.6 + mount_height: 0.3 + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + enabled: true +``` +
+ +The height of the table can be adjusted using the `table_height` parameter. The height parameter corresponds to the length of the table legs. Therefore, the distance from the `parent` link to the top surface of the table will be the `table_height` plus the thickness of the top plate. + +The height of the recessed arm mount can be adjusted using the `mount_height` parameter. The `mount_height` parameter corresponds to the distance from the `parent` link to the top surface of the mounting plate. + +Payloads can be added to the table using the links `hams_default_mount` (at the center of the table) and `hams_arm_mount` (center of the recessed plate). The name of these links corresponds to the `name` parameter set in the `robot.yaml`. diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/fams.png b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/fams.png new file mode 100644 index 000000000..dd5ea066a Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/fams.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/hams.png b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/hams.png new file mode 100644 index 000000000..a6cb6bd92 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/hams.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/tower.png b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/tower.png new file mode 100644 index 000000000..4ad1f5c64 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/img/tower.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/tower.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/tower.mdx new file mode 100644 index 000000000..7bcd7e19c --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/tower.mdx @@ -0,0 +1,30 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +platform: + attachments: + - name: tower + type: r100.tower + left_height: 0.0 + right_height: 0.0 + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + enabled: true +``` +
+ +The height of each arm mounting location or "shoulder" can be adjusted by using the `left_height` and `right_height` parameters. These height parameters correspond to the vertical distance from the lowest screw mounted location. There are seven screw mounting locations that are separated by 40 mm. The lowest mounting location corresponds to height `0.0` and the highest mounting location corresponds to height `0.28`. In the example above, the tower's right arm mount is set to height `0.0` and the tower's left arm is set to height `0.28`. + +Payloads can be added to the tower using the links: `tower_mid_link` (at the center of the tower), `tower_top_link` (at the top of the tower), `tower_left_shoulder_link` (at the center of the left tower mount), and `tower_right_shoulder_link` (at the center of the right tower mount). The name of these links corresponds to the `name` parameter set in the `robot.yaml`. diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_2f_lite.png b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_2f_lite.png new file mode 100644 index 000000000..0d8d94034 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_2f_lite.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_6dof.png b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_6dof.png new file mode 100644 index 000000000..558188107 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_6dof.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_7dof.png b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_7dof.png new file mode 100644 index 000000000..9daea80ba Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_7dof.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_lite.png b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_lite.png new file mode 100644 index 000000000..42133ee56 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/kinova_gen3_lite.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/robotiq_2f_140.png b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/robotiq_2f_140.png new file mode 100644 index 000000000..a70468213 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/robotiq_2f_140.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/robotiq_2f_85.png b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/robotiq_2f_85.png new file mode 100644 index 000000000..4968f30f1 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/img/robotiq_2f_85.png differ diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_2f_lite.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_2f_lite.mdx new file mode 100644 index 000000000..a1d40f0ab --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_2f_lite.mdx @@ -0,0 +1,35 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +manipulators: + arms: + - model: kinova_gen3_lite + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ip: 192.168.131.40 + port: 10000 + gripper: + model: kinova_2f_lite +``` +
+ +#### Package and Setup +:::note +The Kinova 2F Lite gripper is the standard gripper on the Kinova Gen3 Lite. It is controlled via the arm's hardware interface and therefore, does not need it's own controller. +::: +The Kinova 2F Lite gripper uses the `kortex_description` and `kortex_driver` ROS 2 Packages. The driver is open source, maintaned by Kinova Robotics, and hosted on [GitHub](https://github.com/Kinovarobotics/ros2_kortex). + +For more specifics on the way Clearpath's configuration system adds the manipulator to the robot description, see the Kinova 2F Lite gripper [description file](https://github.com/clearpathrobotics/clearpath_common/blob/humble/clearpath_manipulators_description/urdf/gripper/kinova_2f_lite.urdf.xacro) in `clearpath_manipulators_description`. + diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_6dof.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_6dof.mdx new file mode 100644 index 000000000..2c54551c4 --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_6dof.mdx @@ -0,0 +1,34 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +manipulators: + arms: + - model: kinova_gen3_6dof + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ip: 192.168.131.40 + port: 10000 + gripper: + model: robotiq_2f_85 +``` +
+ +#### Package and Setup +The Kinova Gen3 6Dof uses the `kortex_description` and `kortex_driver` ROS 2 Packages. The driver is open source, maintaned by Kinova Robotics, and hosted on [GitHub](https://github.com/Kinovarobotics/ros2_kortex). + +For more specifics on the way Clearpath's configuration system adds the manipulator to the robot description, see the Kinova Gen3 6Dof [description file](https://github.com/clearpathrobotics/clearpath_common/blob/humble/clearpath_manipulators_description/urdf/arm/kinova_gen3_6dof.urdf.xacro) in `clearpath_manipulators_description`. + +#### Device IP and Port +The `ip` and `port` parameters must be set to the corresponding values set on the manipulators configuration page. diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_7dof.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_7dof.mdx new file mode 100644 index 000000000..a390da42d --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_7dof.mdx @@ -0,0 +1,34 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +manipulators: + arms: + - model: kinova_gen3_7dof + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ip: 192.168.131.40 + port: 10000 + gripper: + model: robotiq_2f_85 +``` +
+ +#### Package and Setup +The Kinova Gen3 7Dof uses the `kortex_description` and `kortex_driver` ROS 2 Packages. The driver is open source, maintaned by Kinova Robotics, and hosted on [GitHub](https://github.com/Kinovarobotics/ros2_kortex). + +For more specifics on the way Clearpath's configuration system adds the manipulator to the robot description, see the Kinova Gen3 7Dof [description file](https://github.com/clearpathrobotics/clearpath_common/blob/humble/clearpath_manipulators_description/urdf/arm/kinova_gen3_6dof.urdf.xacro) in `clearpath_manipulators_description`. + +#### Device IP and Port +The `ip` and `port` parameters must be set to the corresponding values set on the manipulators configuration page. diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_lite.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_lite.mdx new file mode 100644 index 000000000..c6560fd3d --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_lite.mdx @@ -0,0 +1,34 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +manipulators: + arms: + - model: kinova_gen3_lite + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ip: 192.168.131.40 + port: 10000 + gripper: + model: kinova_2f_lite +``` +
+ +#### Package and Setup +The Kinova Gen3 Lite uses the `kortex_description` and `kortex_driver` ROS 2 Packages. The driver is open source, maintaned by Kinova Robotics, and hosted on [GitHub](https://github.com/Kinovarobotics/ros2_kortex). + +For more specifics on the way Clearpath's configuration system adds the manipulator to the robot description, see the Kinova Gen3 Lite [description file](https://github.com/clearpathrobotics/clearpath_common/blob/humble/clearpath_manipulators_description/urdf/arm/kinova_gen3_lite.urdf.xacro) in `clearpath_manipulators_description`. + +#### Device IP and Port +The `ip` and `port` parameters must be set to the corresponding values set on the manipulators configuration page. diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/robotiq_2f_140.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/robotiq_2f_140.mdx new file mode 100644 index 000000000..7470a7248 --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/robotiq_2f_140.mdx @@ -0,0 +1,35 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +manipulators: + arms: + - model: kinova_gen3_6dof + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ip: 192.168.131.40 + port: 10000 + gripper: + model: robotiq_2f_140 +``` +
+ +#### Package and Setup +:::note +The Robotiq 2F 140 gripper is supported by the Kinova Gen3 arm's wrist connector and hardware interface. Therefore, when attached to Kinova arm's the Robotiq gripper does not need it's own controller. +::: +The Robotiq 2F 140 uses the `robotiq_description` and `robotiq_driver` ROS 2 Packages. The driver is open source, maintaned by PickNik Robotics, and hosted on [GitHub](https://github.com/PickNikRobotics/ros2_robotiq_gripper). + +For more specifics on the way Clearpath's configuration system adds the manipulator to the robot description, see the Robotiq 2F 140 gripper [description file](https://github.com/clearpathrobotics/clearpath_common/blob/humble/clearpath_manipulators_description/urdf/gripper/robotiq_2f_140.urdf.xacro) in `clearpath_manipulators_description`. + diff --git a/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/robotiq_2f_85.mdx b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/robotiq_2f_85.mdx new file mode 100644 index 000000000..e0321c787 --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/robotiq_2f_85.mdx @@ -0,0 +1,35 @@ + + + + + +
+
+
+ +
+
+
+ +```yaml +manipulators: + arms: + - model: kinova_gen3_6dof + parent: default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ip: 192.168.131.40 + port: 10000 + gripper: + model: robotiq_2f_85 +``` +
+ +#### Package and Setup +:::note +The Robotiq 2F 85 gripper is supported by the Kinova Gen3 arm's wrist connector and hardware interface. Therefore, when attached to Kinova arm's the Robotiq gripper does not need it's own controller. +::: +The Robotiq 2F 85 uses the `robotiq_description` and `robotiq_driver` ROS 2 Packages. The driver is open source, maintaned by PickNik Robotics, and hosted on [GitHub](https://github.com/PickNikRobotics/ros2_robotiq_gripper). + +For more specifics on the way Clearpath's configuration system adds the manipulator to the robot description, see the Robotiq 2F 85 gripper [description file](https://github.com/clearpathrobotics/clearpath_common/blob/humble/clearpath_manipulators_description/urdf/gripper/robotiq_2f_85.urdf.xacro) in `clearpath_manipulators_description`. + diff --git a/docs_versioned_docs/version-ros2humble/robots/accessories/manipulators/kinova_gen3_lite.mdx b/docs_versioned_docs/version-ros2humble/robots/accessories/manipulators/kinova_gen3_lite.mdx index 0ff6897ae..467033bbd 100644 --- a/docs_versioned_docs/version-ros2humble/robots/accessories/manipulators/kinova_gen3_lite.mdx +++ b/docs_versioned_docs/version-ros2humble/robots/accessories/manipulators/kinova_gen3_lite.mdx @@ -3,6 +3,8 @@ title: Kinova Gen3 Lite sidebar_position: 3 --- +import KinovaGen3Lite from "/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_lite.mdx"; +import Kinova2FLite from "/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_2f_lite.mdx"; import Support from "/components/support.mdx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; @@ -85,71 +87,13 @@ The PACS™ kit for this sensor includes: ## Software Bringup -### Installing packages - - - -

1. Download packages:

- cd ~/catkin_ws/src -
- git clone --single-branch --branch noetic-devel https://github.com/Kinovarobotics/ros_kortex.git -
- git clone --single-branch --branch noetic-devel https://github.com/husky/husky_manipulation.git -
- rosdep install --from-paths . --ignore-src -r -y -
-
-

Rosdep may give warnings about unsatisfied dependencies. This is okay if you are only trying to install a single Kinova Gen3 lite on the robot.

-
-

2. Install dependencies per Kinova's github instructions:

- sudo apt install python3 python3-pip -
- sudo python3 -m pip install conan -
-
-

3. Build the workspace

- cd ~/catkin_ws/ -
- catkin_make -
- source devel/setup.bash -
-
- -

1. Download packages:

- cd ~/catkin_ws/src -
- git clone --single-branch --branch noetic-devel https://github.com/Kinovarobotics/ros_kortex.git -
- git clone https://github.com/dingo-cpr/dingo_manipulation.git --recursive -
- rosdep install --from-paths . --ignore-src -r -y -
-
-

Rosdep may give warnings about unsatisfied dependencies. This is okay if you are only trying to install a single Kinova Gen3 lite on the robot.

-
-

2. Install dependencies per Kinova's github instructions:

- sudo apt install python3 python3-pip -
- sudo python3 -m pip install conan -
-
-

3. Build the workspace

- cd ~/catkin_ws/ -
- catkin_make -
- source devel/setup.bash -
-
-
+### ROS 2 Configuration +This manipulator is included in the Clearpath Robotics descriptino and robot package that is installed on all of our robots. +This allows you to add or remove manipulator from your robot's software configuration by modying the [robot configuration yaml](../../../ros/config/yaml/manipulators.mdx). + + + + ### Networking, with netplan @@ -210,78 +154,6 @@ If you cannot ping the computer or arm, try rebooting and replugging the Kinoca ::: -### Launching the ROS Driver {#kinova_gen3_lite_launch} - - - - roslaunch husky_kinova_bringup husky_gen3_lite_bringup.launch -
- roslaunch husky_gen3_lite_moveit_config husky_gen3_lite_moveit_planning_execution.launch -
-
- - roslaunch dingo_kinova_bringup dingo_gen3_lite_bringup.launch -
- roslaunch dingo_gen3_lite_moveit_config dingo _gen3_lite_moveit_planning_execution.launch -
-
-
- -### URDF - - - -

- Refer to Clearpath's GitHub repository for Husky Manipulation, https://github.com/husky/husky_manipulation. -

-
- -

- Refer to Clearpath's GitHub repository for Dingo Manipulation, https://github.com/dingo-cpr/dingo_manipulation. -

-
-
- -### MoveIt! - -MoveIt! should be used on the robot whenever possible. -MoveIt! tracks arm movements with regards to the robot's _base_link_. -MoveIt! will prevent the arm from colliding with the robot's base, assuming you have a detailed URDF that includes all the surfaces of the robot. - - - -

- Refer to Clearpath's GitHub repository for Husky Manipulation, https://github.com/husky/husky_manipulation. -

-
- -

- Refer to Clearpath's GitHub repository for Dingo Manipulation, https://github.com/dingo-cpr/dingo_manipulation. -

-
-
- --- ## Troubleshooting @@ -299,27 +171,6 @@ MoveIt! will prevent the arm from colliding with the robot's base, assuming you - A fuse may be blown. - A power supply may have failed. -#### ROS driver won't start - -1. Restart the robot, or run the command `sudo systemctl restart ros`. -2. Make sure your _catkin_ws_ is sourced. - - :::note - - You can source your _catkin_ws_ in every terminal shell by adding a line to the file `~/.bashrc`. - - ::: - -3. Run the commands mentioned in the [Launch section](#kinova_gen3_lite_launch) of this page. - -#### Cannot see the Kinova in RViz - -1. Make sure the Kinova node is running. - You can check this with RQT, `rosnode list`, or reviewing the rostopics. -2. Start RViz. -3. Add in the robot's models. -4. Add the arm's rostopics. - ### If the Issue Persists diff --git a/docs_versioned_docs/version-ros2humble/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx b/docs_versioned_docs/version-ros2humble/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx index 1f2ba8a00..59404302c 100644 --- a/docs_versioned_docs/version-ros2humble/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx +++ b/docs_versioned_docs/version-ros2humble/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx @@ -4,6 +4,7 @@ sidebar_position: 7 --- import Support from "/components/support.mdx"; +import YAML from "/docs_versioned_docs/version-ros2humble/components/yaml/sensors/stereolabs_zed.mdx";
--- diff --git a/docs_versioned_docs/version-ros2humble/robots/indoor_robots/dingo/maintenance_dingo.mdx b/docs_versioned_docs/version-ros2humble/robots/indoor_robots/dingo/maintenance_dingo.mdx index 703abd4e4..56c7d6919 100644 --- a/docs_versioned_docs/version-ros2humble/robots/indoor_robots/dingo/maintenance_dingo.mdx +++ b/docs_versioned_docs/version-ros2humble/robots/indoor_robots/dingo/maintenance_dingo.mdx @@ -3,7 +3,7 @@ title: Dingo Maintenance sidebar_label: Maintenance sidebar_position: 5 --- - +import ClearpathFirmware from "../../../components/_clearpath_firmware.mdx"; import ComponentIntroductionDingo from "/components/introduction_dingo.mdx"; import ComponentLeadAcidBatteryCare from "/components/maintenance/lead_acid_battery_care.mdx"; import ComponentLeadAcidBatteryCareTips from "/components/maintenance/lead_acid_battery_care_tips.mdx"; @@ -81,8 +81,7 @@ The initial stage will take 2 - 4 hours, and a complete charge may take up to 8 ### MCU Firmware Update -Customer updates of Dingo firmware are not supported at this time. -Contact [Support](#support) if Dingo firmware updates are needed. + --- diff --git a/docs_versioned_docs/version-ros2humble/robots/indoor_robots/ridgeback/maintenance_ridgeback.mdx b/docs_versioned_docs/version-ros2humble/robots/indoor_robots/ridgeback/maintenance_ridgeback.mdx index 26af16f0e..d7c2a8ebc 100644 --- a/docs_versioned_docs/version-ros2humble/robots/indoor_robots/ridgeback/maintenance_ridgeback.mdx +++ b/docs_versioned_docs/version-ros2humble/robots/indoor_robots/ridgeback/maintenance_ridgeback.mdx @@ -3,7 +3,7 @@ title: Ridgeback Maintenance sidebar_label: Maintenance sidebar_position: 4 --- - +import ClearpathFirmware from "../../../components/_clearpath_firmware.mdx"; import ComponentIntroductionRidgeback from "/components/introduction_ridgeback.mdx"; import GettingNewPackages from "/components/maintenance/getting_new_packages.mdx"; import Support from "/components/support.mdx"; @@ -43,79 +43,7 @@ Please contact Clearpath Robotics for additional information about Ridgeback's b ### MCU Firmware Update -When you update packages, there is periodically a new version of Ridgeback's firmware available. You will know this -is the case in one of two ways: - -1. The firmware and Onboard Computer are unable to connect to each other, which will be apparent if the body lights remain solid - red after system bootup. -2. If the firmware version number in the `/status` message does not match the package version output by - `dpkg -s ros-noetic-ridgeback-firmware`. In the future there will be an automated check for this which outputs - a diagnostics warning when a firmware update is available to be applied. - -If new firmware is available, follow the below procedure to flash it to Ridgeback's MCU: - -1. Place Ridgeback up on blocks. Firmware loading does not usually result in unintended motion, but it's safest when - off the ground. -2. Ensure that Ridgeback is on and open. -3. Connect the MCU to the Ridgeback's Onboard Computer using a mini-USB cable connected to the port shown below: - -
-
- -
Ridgeback MCU mini-USB port
-
-
- -4. In the middle of the MCU is a two-position switch labelled `PWR MODE`. Move the switch from the default `NORM` - position to the `AUX` position. -5. Press the `M_RST` button. The MCU is now in boot-loader mode, ready to receive new firmware. - -
-
- -
Ridgeback MCU mode switch and reset button
-
-
- -:::note - -The Ridgeback's MCU is normally rotated 90 degrees when it is installed in the robot; the `NORM` position is -typically towards the top of the robot's chassis and the `AUX` position is normally towards the bottom. - -::: - -Now, from Ridgeback's Onboard Computer (connected via SSH or screen/keyboard), execute: - -``` -rosrun ridgeback_firmware upload -``` - -You should see about 20 seconds worth of lines output beginning with "Download from image ...". - -When the upload is complete, move the `PWR MODE` switch back to the `NORM` position and immediately press the -`M_RST` button. - -:::note - -You must press the `M_RST` button immediately after changing the mode back to `NORM`. If you take too long -the Ridgeback may power off. If this happens, simply ensure the switch is in the `NORM` position and power -the robot back on normally. Losing power in this situation is inconvenient, but not harmful. - -::: - -After resetting the MCU back in `NORM` mode, ensure the MCU is using the new version of the firmware by running - -``` -rostopic echo /status -``` - -and verifying that the MCU firmware version is correct. + --- diff --git a/docs_versioned_docs/version-ros2humble/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx b/docs_versioned_docs/version-ros2humble/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx index 393722f36..d730c998a 100644 --- a/docs_versioned_docs/version-ros2humble/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx +++ b/docs_versioned_docs/version-ros2humble/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx @@ -239,6 +239,10 @@ However, please take note of the following: - The batteries must not be punctured or disassembled. - The batteries should be disposed of pursuant to your local regulations regarding electrical and/or hazardous waste. +The integrated Ridgeback charger will fully charge the internal lead-acid battery in a few hours. The charger will time out after 12 hours, so be sure to power cycle (by unplugging and re-plugging) the charger on a daily basis. Allow the battery to warm up to at least 10°C before charging. + +When the battery is running low on charge, the corner lights will start to flash yellow. This is your indication that the Ridgeback should be plugged in to charge soon. + Please contact Clearpath Robotics for additional information about Ridgeback's batteries or for information about purchasing additional batteries. diff --git a/docs_versioned_docs/version-ros2humble/robots/outdoor_robots/jackal/maintenance_jackal.mdx b/docs_versioned_docs/version-ros2humble/robots/outdoor_robots/jackal/maintenance_jackal.mdx index 9a080d60b..f830e6275 100644 --- a/docs_versioned_docs/version-ros2humble/robots/outdoor_robots/jackal/maintenance_jackal.mdx +++ b/docs_versioned_docs/version-ros2humble/robots/outdoor_robots/jackal/maintenance_jackal.mdx @@ -3,10 +3,9 @@ title: Jackal Maintenance sidebar_label: Maintenance sidebar_position: 4 --- - +import ClearpathFirmware from "../../../components/_clearpath_firmware.mdx"; import ComponentIntroductionJackal from "/components/introduction_jackal.mdx"; import GettingNewPackages from "/components/maintenance/getting_new_packages.mdx"; -import JackalFirmware from "../../../components/_jackal_firmware.mdx"; import Support from "/components/support.mdx"; @@ -19,16 +18,7 @@ import Support from "/components/support.mdx"; ### MCU Firmware Update -When you update packages, there is periodically a new version of Jackal's firmware available. You can check by running: - -``` -sudo apt update -sudo apt search ros-humble-jackal-firmware -``` - -If new firmware is available, follow the procedure below to flash it to Jackal's MCU: - - + --- diff --git a/docs_versioned_docs/version-ros2humble/robots/outdoor_robots/warthog/maintenance_warthog.mdx b/docs_versioned_docs/version-ros2humble/robots/outdoor_robots/warthog/maintenance_warthog.mdx index e92701fb5..205559151 100644 --- a/docs_versioned_docs/version-ros2humble/robots/outdoor_robots/warthog/maintenance_warthog.mdx +++ b/docs_versioned_docs/version-ros2humble/robots/outdoor_robots/warthog/maintenance_warthog.mdx @@ -3,7 +3,7 @@ title: Warthog Maintenance sidebar_label: Maintenance sidebar_position: 5 --- - +import ClearpathFirmware from "../../../components/_clearpath_firmware.mdx"; import ComponentIntroductionWarthog from "/components/introduction_warthog.mdx"; import GettingNewPackages from "/components/maintenance/getting_new_packages.mdx"; import Support from "/components/support.mdx"; @@ -184,104 +184,7 @@ You need to use an external computer to update Warthog's MCU firmware. You canno firmware requires power-cycling the MCU. Warthog's MCU controls the power supply to the Onboard Computer. These instructions assume the external computer is running some flavour of Linux with access to Clearpath's ROS packages. -Follow the below procedure to flash the firmware to Warthog's MCU: - -1. Place Warthog up on blocks or engage the emergency stop by pressing one of the red buttons located on each corner - of the robot. Firmware loading does not usually result in unintended motion, but it's safest to ensure the robot - cannot move accidentally. -2. Download the Warthog firmware package onto your computer: - - ``` - sudo apt-get install ros-noetic-warthog-firmware - ``` - -3. Remove the top panel from the Warthog. We recommend opening the panel to the left, as there are cables that run - into the lid which can be strained. - -
-
- -
The inside of Warthog's computer box
-
-
- -4. Warthog's MCU is located on the underside of the metal frame over the top of the computer. To access it you will need to - disconnect all cables from the breakout on the sloped portion on the left and then undo 4 screws anchoring the frame: - -
-
- -
The inside of Warthog's computer box
-
-
- -
-
- -
Screws on the left
-
-
- -
-
- -
Screws on the right
-
-
- - Once the screws are removed, carefully lift the center panel and turn it over to expose the MCU's micro USB port - and buttons. - -5. While pressing `BT0` on the MCU, connect the external computer to Warthog's MCU using a USB cable. - -
-
- -
Warthog's MCU buttons
-
-
- -6. After connecting the computer you should see a device with a name similar to - `Bus 001 Device 005: ID 0483:df11 STMicroelectronics STM Device in DFU Mode` in the output of `lsusb`. - - :::note - - If the MCU does not show up as a DFU device in the output of `lsusb` after completing the above procedure, press - and hold BT0 on the MCU press the RST button while holding BT0 down. This will reset the MCU and force it into DFU - mode. - - ::: - - With the MCU in DFU mode, run the following command, replacing `001/005` with the value appropriate to the Bus and - Device where Warthog's MCU is connected: - - ``` - sudo chmod 666 /dev/bus/usb/001/005 - ``` - - Now run the following command to upload the firmware: - - ``` - dfu-util -v -d 0483:df11 -a 0 -s 0x08000000 -D /opt/ros/noetic/share/warthog_firmware/mcu.bin - ``` - - You should see about 20 seconds worth of lines output beginning with "Download from image ...". When this is - complete you may disconnect the computer from the MCU and power-cycle the robot. + --- diff --git a/docs_versioned_docs/version-ros2humble/ros/config/generators.mdx b/docs_versioned_docs/version-ros2humble/ros/config/generators.mdx index 7df1c84a5..e3bc53d41 100644 --- a/docs_versioned_docs/version-ros2humble/ros/config/generators.mdx +++ b/docs_versioned_docs/version-ros2humble/ros/config/generators.mdx @@ -31,6 +31,10 @@ The description generator will generate a `robot.urdf.xacro` file which will def platform the robot is using, as well as which mounts, accessories, and sensors will need to be added on top of the platform. This URDF file will later be used with the robot state publisher to publish all of the static transforms that make up the robot. +### Semantic Description + +The semantic description generator will generate a `robot.srdf.xacro` and `robot.srdf` files with will define all manipulator groups, manipulator poses, and link collisions. By default, MoveIt! planners will check all links in the description to ensure collision free paths. If there are several links with complicated geometries, this will be a slow process. Therefore, the generator uses the collision matrix updater to disable the collisions of all links out of range of the manipulator groups defined and minimize the planning time. + ### Launch The launch generator creates ROS 2 [python launch files](https://docs.ros.org/en/humble/Tutorials/Intermediate/Launch/Creating-Launch-Files.html). It will create both the platform and sensor launch files by parsing the robot config. Typically, the generated launch file will include a default launch file, and pass in launch arguments as appropriate. Python classes have been defined for adding other launch files, nodes, and processes to the generated launch file, making it intuitive to use. @@ -169,10 +173,69 @@ Using the **parameter** and **launch** file generators, a pair of files is creat `} /> +### Manipulation Generation +Using the **semantic_description**, **launch**, and **parameter** file generators, all MoveIt! parameter and launch files are generated with the appropriate namespace. The semantic generator creates a `xacro` file that is then parsed by the collision updater to generate a static file with all unecessary link collision disabled. The parameter generator parses the default parameters and generates a single `moveit.yaml` parameter file that contains all MoveIt! parameters and is namespaced accordingly. + +Semantic Description Generator}} + g_launch{{Launch Generator}} + g_param{{Parameter Generator}} + g_collision{{Collision Updater}} + %% Default Parameter Files + d_cartesian([Default Cartesian Limits]) + d_control([Default Control]) + d_scene([Default Planning Scene]) + d_trajexec([Default Trajectory Execution]) + urdf([
robot.urdf.xacro
/etc/clearpath/robot.urdf.xacro
]) + yaml-.-g_semantic_description + yaml-.-g_launch + yaml-.-g_param + subgraph Default Files + d_cartesian-.-g_param + d_control-.-g_param + d_scene-.-g_param + d_trajexec-.-g_param + end + urdf-.-g_semantic_description + %% Generated Files + launch[[
manipulators-service.launch.py
/etc/clearpath/manipulators/launch/manipulators-service.launch.py
]] + moveit([
moveit.yaml
/etc/clearpath/manipulators/config/control.yaml
]) + xacro([
robot.srdf.xacro
/etc/clearpath/robot.srdf.xacro
]) + srdf([
robot.srdf
/etc/clearpath/robot.srdf
]) + g_semantic_description-.->xacro + xacro-.-g_collision + g_collision-.->srdf + g_launch-.->launch + g_param-.->moveit + `} +/> + ### Setup folder structure Once all files are generated, the resulting setup folder structure under `/etc/clearpath/` will look like this: - +- **manipulators** + - **launch** + - _manipulators-service.launch.py_ + - **config** + - _moveit.yaml_ - **platform** - **launch** - _platform-service.launch.py_ @@ -193,6 +256,8 @@ Once all files are generated, the resulting setup folder structure under `/etc/c - _camera_0.yaml_ - _camera_1.yaml_ - ... +- _robot.srdf_ +- _robot.srdf.xacro_ - _robot.urdf.xacro_ - _robot.yaml_ - _setup.bash_ diff --git a/docs_versioned_docs/version-ros2humble/ros/config/yaml/manipulators.mdx b/docs_versioned_docs/version-ros2humble/ros/config/yaml/manipulators.mdx new file mode 100644 index 000000000..b9a3ab6e3 --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/ros/config/yaml/manipulators.mdx @@ -0,0 +1,41 @@ +--- +title: Manipulators +sidebar_label: Manipulators +sidebar_position: 8 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- +import KinovaGen3Lite from "/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_lite.mdx"; +import KinovaGen36Dof from "/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_6dof.mdx"; +import KinovaGen37Dof from "/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_gen3_7dof.mdx"; +import Kinova2FLite from "/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/kinova_2f_lite.mdx"; +import Robotiq2F85 from "/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/robotiq_2f_85.mdx"; +import Robotiq2F140 from "/docs_versioned_docs/version-ros2humble/components/yaml/manipulators/robotiq_2f_140.mdx"; + + +Manipulators include all robotic arms and grippers. Unlike sensors, manipulators are not controlled by external drivers. Instead, a hardware controller must be loaded into the controller manager to handle the joint interface to move the specific manipulator joints. + +Additionally, MoveIt! must be launched to plan paths and move manipulators to a given pose. + +Every arm can have at most one gripper, and grippers can only be added to an existing arm. This way, depending on the arm and the gripper, the configuration system can determine whether the arm handles communication with the gripper or whether it must be done through an external connection directly to the robot computer. + +## Kinova Arms {#kinova-arms} + +
+ + +
+ + +
+ +## Kinova Grippers {#kinova-grippers} + +
+ +## Robotiq Grippers {#robotiq-grippers} + +
+ + +
diff --git a/docs_versioned_docs/version-ros2humble/ros/config/yaml/platform/attachments/dx1X0.mdx b/docs_versioned_docs/version-ros2humble/ros/config/yaml/platform/attachments/dx1X0.mdx new file mode 100644 index 000000000..39b5fceee --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/ros/config/yaml/platform/attachments/dx1X0.mdx @@ -0,0 +1,12 @@ +--- +title: DD1X0 and DO1X0 Attachments +sidebar_label: DD1X0 & DO1X0 +sidebar_position: 5 +toc_min_heading_level: 2 +toc_max_heading_level: 5 +--- +import DX1X0TopPlate from "/docs_versioned_docs/version-ros2humble/components/yaml/attachments/dx1X0/top_plate.mdx"; + +## Top Plate + +
diff --git a/docs_versioned_docs/version-ros2humble/ros/config/yaml/platform/attachments/r100.mdx b/docs_versioned_docs/version-ros2humble/ros/config/yaml/platform/attachments/r100.mdx new file mode 100644 index 000000000..ff004ded6 --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/ros/config/yaml/platform/attachments/r100.mdx @@ -0,0 +1,22 @@ +--- +title: R100 Attachments +sidebar_label: R100 +sidebar_position: 6 +toc_min_heading_level: 2 +toc_max_heading_level: 5 +--- +import R100FAMS from "/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/fams.mdx"; +import R100HAMS from "/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/hams.mdx"; +import R100Tower from "/docs_versioned_docs/version-ros2humble/components/yaml/attachments/r100/tower.mdx"; + +## Flat Arm Mounting Structure (FAMS) + +
+ +## Heavy Arm Mounting Structure (HAMS) + +
+ +## Dual Arm Tower + +
diff --git a/docs_versioned_docs/version-ros2humble/ros/ros.mdx b/docs_versioned_docs/version-ros2humble/ros/ros.mdx index 502e05289..1c3fe7e47 100644 --- a/docs_versioned_docs/version-ros2humble/ros/ros.mdx +++ b/docs_versioned_docs/version-ros2humble/ros/ros.mdx @@ -30,11 +30,11 @@ of ROS 2 topics and services defined by Clearpath which are used by all supporte | Husky | A200 | Yes (As of 0.1) | Coming | | Jackal | J100 | Yes (As of 0.1) | Coming | | Warthog | W200 | Yes (As of 0.2) | Coming | -| Dingo | DD100 | Coming | Coming | +| Dingo | DD100 | Yes (As of 0.3) | Coming | | | DO100 | Coming | Coming | -| | DD150 | Coming | Coming | +| | DD150 | Yes (As of 0.3) | Coming | | | DO150 | Coming | Coming | -| Ridgeback | R100 | Coming | Coming | +| Ridgeback | R100 | Yes (As of 0.3) | Coming | | Boxer | B250 | No | No | @@ -54,6 +54,7 @@ sensors that have been validated by Clearpath. | [Hokuyo UST20-LX](../robots/accessories/sensors/lidar_2d/hokuyo_ust20_lx.mdx) | 2D Lidar | Debian | [urg_node](https://github.com/ros-drivers/urg_node) | | [Hokuyo UST30-LX](../robots/accessories/sensors/lidar_2d/hokuyo_ust30_lx.mdx) | 2D Lidar | Debian | [urg_node](https://github.com/ros-drivers/urg_node) | | [MicroStrain 3DM-GX5](../robots/accessories/sensors/imu/microstrain_3dm_gx5.mdx) | IMU | Debian | [microstrain_intertial](https://github.com/LORD-MicroStrain/microstrain_inertial/tree/ros2) | +| [MicroStrain 3DM-GQ7](../robots/accessories/sensors/gps/microstrain_gq7.mdx) | GPS/IMU | Debian | [microstrain_intertial](https://github.com/LORD-MicroStrain/microstrain_inertial/tree/ros2) | | [Redshift Labs UM7](../robots/accessories/sensors/imu/redshift_labs_um7.mdx) | IMU | Debian | [um7](https://github.com/ros-drivers/um7/tree/ros2) | | CH Robotics UM6 | IMU | Debian | [um7](https://github.com/ros-drivers/um7/tree/ros2) | | [Velodyne Puck](../robots/accessories/sensors/lidar_3d/velodyne_puck.mdx) | 3D Lidar | Debian | [velodyne](https://github.com/ros-drivers/velodyne/tree/ros2) | @@ -70,3 +71,23 @@ Debian drivers are automatically installed on robots as part of the [Clearpath Robot Metapackage](../ros/installation/robot.mdx#clearpath-robot-metapackage). ::: + +## Changelog + +### [0.3.0] 2024-09-10 +:::warning +The `StopStatus` message in `clearpath_msgs` has an additional field in the `0.3.0` release. This message type is used by the MicroROS enabled, robot MCU; therefore, the firmware must be updated on all robot platforms, except the A200. See, the [robot installation section](./installation/robot.mdx#firmware-update) for information on updating the firmware. +::: +#### New Features + - DD100 and DD150 Platform and [Attachments](./config/yaml/platform/attachments/dx1X0.mdx) + - R100 Platform and [Attachments](./config/yaml/platform/attachments/r100.mdx) + - [Manipulator Generators](./config/generators.mdx#manipulation-generation) + - MoveIt! Configuration Generation + - [Kinova Gen3 Lite, 6Dof, and 7Dof Arms](./config/yaml/manipulators.mdx#kinova-arms) + - [Robotiq 2F 85 and 140 Grippers](./config/yaml/manipulators.mdx#robotiq-grippers) + +#### Changed + - `StopStatus` message added `needs_reset` parameter for R100 platform. + +#### Fixed + - Use `StopStatus` message to set lighting state diff --git a/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/_category_.json b/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/_category_.json new file mode 100644 index 000000000..f5b719856 --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Manipulation Demos", + "position": 4 +} diff --git a/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/gazebo.mdx b/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/gazebo.mdx new file mode 100644 index 000000000..75b478cdf --- /dev/null +++ b/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/gazebo.mdx @@ -0,0 +1,89 @@ +--- +title: Manipulation in Gazebo Ignition +sidebar_label: Manipulation in Simulation +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +Simulating an arm in Gazebo Ignition is a safe alternative to test path planning and execution MoveIt! plugins, MoveIt! commander scripts, or simple commands completely independent of the MoveIt! libraries. We facilitate the process of setting up simulations, by providing a customizable, simulated mobile robot platform with sensors and manipulators utilizing the Clearpath Configuration System. + +In this tutorial, we will cover using the MoveIt! Planning and Execution RViz plug-in to move arms to a predefined pose. We will use the A200 platform with a Kinova Gen3 Lite in the [Clearpath simulator](../simulator/overview.mdx). + +The `robot.yaml` configuration we will use is included below. + +
A200 YAML +

+ +```yaml +serial_number: a200-0000 +version: 0 +system: + hosts: + - hostname: cpr-a200-0000 + ip: 192.168.131.1 + ros2: + namespace: a200_0000 +platform: + attachments: + - name: front_bumper + type: a200.bumper + parent: front_bumper_mount + - name: rear_bumper + type: a200.bumper + parent: rear_bumper_mount + - name: top_plate + type: a200.top_plate +manipulators: + arms: + - model: kinova_gen3_lite + parent: top_plate_default_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ip: 192.168.131.40 + port: 10000 + gripper: + model: kinova_2f_lite +``` +

+
+ +## Launching the Simulation +Move the `robot.yaml` file to your setup directory (`$HOME/clearpath` by default). + +Launch the simulation +``` +ros2 launch clearpath_gz simulation.launch.py setup_path:=$HOME/clearpath +``` + +Click on the orange play button in the bottom left corner to start the simulation. + +At this point, you will have the platform and manipulator controllers loaded and activated; you can send joint commands to the manipulators and velocity commands to the platform. However, depending on the joint states sent, the manipulators may collide with itself or the platform. Therefore, it is recommended to use MoveIt! to plan and execute collision free paths. + +## Launching MoveIt! +Launch MoveIt! by passing the same robot setup directory and setting the simulation flag. +``` +ros2 launch clearpath_manipulators moveit.launch.py setup_path:=$HOME/clearpath use_sim_time:=true +``` + +Now, you have the `move_group` node that can be utilized to send a joint or pose goal to a specific manipulation group. However, for this tutorial, we will cover how to visualize the arm in RViz and send goals through the plug-in. + +## Launching RViz +Launch RViz by passing the robot's namespace and enabling the simulation flag. +``` +ros2 launch clearpath_viz view_moveit.launch.py namespace:=a200_0000 use_sim_time:=True +``` +:::note +The namespace is defined in the `robot.yaml` using the `system.ros2.namespace` parameter. +::: + + +
+
+ +
MoveIt! planning and execution in simulation
+
+
diff --git a/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/img/moveit_gazebo.gif b/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/img/moveit_gazebo.gif new file mode 100644 index 000000000..3ee800c88 Binary files /dev/null and b/docs_versioned_docs/version-ros2humble/ros/tutorials/manipulation/img/moveit_gazebo.gif differ diff --git a/static/img/robot_images/dingo_images/dingo-d-100-bootloader.jpg b/static/img/robot_images/dingo_images/dingo-d-100-bootloader.jpg new file mode 100644 index 000000000..358700bec Binary files /dev/null and b/static/img/robot_images/dingo_images/dingo-d-100-bootloader.jpg differ diff --git a/static/img/robot_images/dingo_images/dingo-d-150-bootloader.jpg b/static/img/robot_images/dingo_images/dingo-d-150-bootloader.jpg new file mode 100644 index 000000000..05fdb8e4b Binary files /dev/null and b/static/img/robot_images/dingo_images/dingo-d-150-bootloader.jpg differ