Skip to content

Commit

Permalink
Add launch files to Stretch Core API docs
Browse files Browse the repository at this point in the history
  • Loading branch information
hello-binit committed Oct 24, 2023
1 parent 065400c commit a7030df
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions stretch_core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit a7030df

Please sign in to comment.