From a7030df0f0a9ee424144ee3b6440555eba38c333 Mon Sep 17 00:00:00 2001 From: Binit Shah Date: Mon, 23 Oct 2023 20:24:52 -0700 Subject: [PATCH] Add launch files to Stretch Core API docs --- stretch_core/README.md | 60 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/stretch_core/README.md b/stretch_core/README.md index 043ee549..04b6de55 100644 --- a/stretch_core/README.md +++ b/stretch_core/README.md @@ -14,6 +14,66 @@ # API +## Launch Files + +### [stretch.launch](./launch/stretch.launch) + +This launch file is commonly used by other ROS packages to bring up everything necessary to work with Stretch from ROS. It includes the drivers for: + + - Sending commands to the robot and reading joint state + - Reading color and depth imagery from the head camera + - Reading laser scans from the base lidar + - Calculating fused lidar / wheel odometry + - Reading audio from the microphone array + sending audio to the speakers + +#### Arguments + +##### lidar_odom + +Type: Boolean. Controls whether the odom TF is estimated with lidar odometry fused, or just wheel odometry. + +##### respeaker + +Type: Boolean. Controls whether the respeaker microphone array/speaker drivers are launched. + +##### rviz + +Type: Boolean. Controls whether Rviz is shown. + +### [stretch_driver.launch](./launch/stretch_driver.launch) + +This launch file is commonly used by other ROS packages to bring up everything necessary to send joint commands to the robot and read joint state from the robot. It launches the [stretch_driver](#stretch_driver) node (documented below) which plays a critical role in interfacing with the underlying hardware. Supporting nodes like robot_state_publisher, joint_state_publisher, and diagnostics_aggregator are also launched to enable ROS features like TF lookups and diagnostic GUIs. + +#### Arguments + +##### calibrated_controller_yaml_file + +This ROS arg is required and defaults to "$(rospack find stretch_core)/config/controller_calibration_head.yaml", a YAML file that is generated when the robot is calibrated for joint offsets/backlashes through the [Stretch Calibration](../stretch_calibration/) package. The *stretch_driver* node loads in these calibrated offset/backlash parameters, and accounts for them when reporting joint state. + +### [keyboard_teleop.launch](./launch/keyboard_teleop.launch) + +This launch file enables easy keyboard teleoperation of Stretch's joints. It internally launches the [stretch_driver.launch](#stretch_driverlaunch) launch file, as well as the [keyboard_teleop](./nodes/keyboard_teleop) node. + +### [rplidar.launch](./launch/rplidar.launch) + +This launch file brings up the drivers for the RPLidar A1, a 2D planar lidar that sits on the base of the robot. More info on the RPLidar's ROS drivers can be found in Slamtec's [Github repo](https://github.com/Slamtec/rplidar_ros). This launch file also includes a node to filter out shadows from raw laser scans. + +### [stretch_scan_matcher.launch](./launch/stretch_scan_matcher.launch) + +If you have [rplidar.launch](#rplidarlaunch) and [stretch_driver.launch](#stretch_driverlaunch) running, you can use this launch file to get a better estimate of the robot's location as it moves. This is done using the [laser_scan_matcher](http://wiki.ros.org/laser_scan_matcher) package, which fuses laser scans with wheel odometry and publishes the estimated pose of the robot w.r.t to a "odom" frame. + +### [d435i_high_resolution.launch](./launch/d435i_high_resolution.launch) + +This launch file brings up the drivers for the Intel D435i Realsense depth camera. It builds on the [d435i_basic.launch](./launch/d435i_basic.launch) to provide high definition (HD) resolution RGBD imagery under topics in the "/camera" namespace. The camera is launched with the high accurary visual preset, which is defined in a JSON file at "$(rospack find stretch_core)/config/HighAccuraryPreset.json". More details can be found in Intel's realsense-ros [github repo](https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy#usage-instructions). + +### [d435i_low_resolution.launch](./launch/d435i_low_resolution.launch) + +This launch file is similar to the [d435i_high_resolution.launch](#d435i_high_resolutionlaunch) launch file, but provides the RGBD imagery at standard definition (SD) resolution instead of HD. + +### [stretch_aruco.launch](./launch/stretch_aruco.launch) + +If you have one of the [D435i](#d435i_high_resolutionlaunch) launch files and [stretch_driver.launch](#stretch_driverlaunch) launch file running, you can use this launch file to enable Aruco detection from Stretch's head camera. The [detect_aruco_markers](#detect_aruco_markers) node (documented below) plays a critical role in enabling this functionality. The list of known markers lives in a YAML file at "$(rospack find stretch_core)/config/stretch_marker_dict.yaml". Learn how to use this launch file by following the [Aruco Marker Detection](https://docs.hello-robot.com/0.2/stretch-tutorials/ros1/aruco_marker_detection/) tutorial. + ## Nodes ### [stretch_driver](./nodes/stretch_driver)