Skip to content
This repository has been archived by the owner on Jan 7, 2023. It is now read-only.

Commit

Permalink
update readme and changelog
Browse files Browse the repository at this point in the history
Readme changlog update
  • Loading branch information
xhuan28 committed Sep 2, 2019
2 parents 5bcf1e0 + bf52bd0 commit 371fbbf
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 35 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for ros2_intel_realsense
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2.0.5 (2019-08-30)
------------------
* Support T265 and D435i
* Support reconfigure parameters at runtime
* Support the latest release(v2.26.0) of librealsense
* Implement ROS2 realsense node as a component which can be loaded at runtime and adopt the advanced features in ROS2 dashing release, e.g. intra-process communication.

2.0.3 (2018-12-11)
------------------
Expand Down
125 changes: 90 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,125 +1,180 @@
# ROS2 Wrapper for Intel® RealSense™ Devices
These are packages for using Intel RealSense cameras (D400 series) with ROS2.
# ROS2 Package for Intel® RealSense™ Devices
## Supported Devices
* Intel® RealSense™ Camera D400-Series
- Intel® RealSense™ Depth Cameras D415, D435 and D435i
* Intel® RealSense™ Tracking Camera T265

## Installation Instructions

The following instructions were verified with ROS2 Dashing on **Ubutnu 18.04**.
The following instructions were verified with ROS2 Dashing on Ubuntu 18.04.

### Dependencies
#### Install ROS2 packages [ros-dashing-desktop](https://index.ros.org/doc/ros2/Installation/Linux-Install-Debians/)
```bash
sudo apt-get install ros-dashing-desktop
```
#### Install ROS2 dependences
### Install Dependencies
#### 1. Install ROS2 packages [ros-dashing-desktop](https://index.ros.org/doc/ros2/Installation/Linux-Install-Debians/)

#### 2. Install ROS2 dependences
Currently, we support librealsense master branch.
```bash
sudo apt-get install ros-dashing-cv-bridge ros-dashing-librealsense2 ros-dashing-message-filters ros-dashing-image-transport
```
* [cv_bridge](https://github.com/ros-perception/vision_opencv/tree/ros2/cv_bridge)
* [Intel® RealSense™ SDK 2.0](https://github.com/IntelRealSense/librealsense.git)
* [cv_bridge](https://github.com/ros-perception/vision_opencv/tree/ros2/cv_bridge)
* [ros2_message_filters](https://github.com/ros2/message_filters)
* [ros2 image_transport](https://github.com/ros-perception/image_common/tree/ros2)

#### Install Other non-ROS debian packages
#### 3. Install other non-ROS debian packages
```
sudo apt-get install -y libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install -y libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
```

<!--
### Install ros2_intel_realsense binary packages
```
sudo apt-get install ros-dashing-realsense-msgs ros-dashing-realsense-ros
```
The ros2_intel_realsense packages installation have been completed. You could jump to [Usage Instructions](https://github.com/intel/ros2_intel_realsense#usage-instructions) for executing, you could also install ros2_intel_realsense from source for more features.
The ros2_intel_realsense packages installation have been completed. You could jump to [Usage Instructions](https://github.com/intel/ros2_intel_realsense#usage-instructions) for executing, you could also install ros2_intel_realsense from source for more features. -->

### Install ros2_intel_realsense from source
### Install ros2_intel_realsense From Source
```bash
#get code
# fetch code
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/intel/ros2_intel_realsense.git
cd ros2_intel_realsense
git checkout refactor
#build
cd ~/ros2_ws
# build
source /opt/ros/dashing/setup.bash
cd ~/ros2_ws
colcon build --symlink-install
```

## Usage Instructions

### Start the camera node
To start the camera node in ROS2, plug in the camera, then type the following command:
### Start Camera Node
Obtain the serial number of your device
```bash
rs-enumerate-devices
```
Change the corresponding yaml file with the specific serial number, e.g. for [d435.yaml](https://github.com/intel/ros2_intel_realsense/blob/refactor/realsense_ros/config/d435.yaml#L3) in line3:
>serial_no: <serial_number_of_your_device> # d435

To start the camera node in ROS2, plug in the camera, then type the following command:
```bash
source /opt/ros/dashing/setup.bash
source ~/ros2_ws/install/local_setup.bash
# To launch with "ros2 run", taking d435 for example:
ros2 run realsense_examples one_cam __ns:=/d435 __params:=~/ros2_ws/src/ros2_intel_realsense/realsense_ros/config/d435.yaml
cd ~/ros2_ws
ros2 run realsense_node one_cam __params:=src/ros2_intel_realsense/realsense_ros/config/d435.yaml
# Or launch multiple cameras at one time, taking d435 and t265 for example:
ros2 run realsense_examples multi_cams __params:=~/ros2_ws/src/ros2_intel_realsense/realsense_ros/config/multi_cams.yaml
ros2 run realsense_node multi_cams __params:=src/ros2_intel_realsense/realsense_ros/config/multi_cams.yaml
```
This will stream all camera sensors and publish on the appropriate ROS2 topics. PointCloud2 is enabled by default, till we provide ROS2 python launch options.
### Configure Parameters at Runtime
Currently only support reconfigure parameters by `ros2 param` at runtime, e.g.

### Published Topics
Enable camera stream
```
ros2 param list
ros2 param get <node_name> color0.enabled
ros2 param set <node_name> color0.enabled true
```
Enable aligned depth
```
ros2 param set <node_name> align_depth true
```
Enable pointcloud
```
ros2 param set <node_name> enable_pointcloud true
```
## Published Topics

* D435
* D435 and D415

[camera/color/image_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/color/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/infra1/image_rect_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/infra1/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/infra2/image_rect_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/infra2/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/depth/image_rect_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/depth/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/aligned_depth_to_color/image_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/aligned_depth_to_color/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/pointcloud](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/PointCloud2.msg)

* D435i

[camera/color/image_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/color/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/infra1/image_rect_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/infra1/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/infra2/image_rect_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/infra2/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/depth/image_rect_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/depth/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/aligned_depth_to_color/image_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/aligned_depth_to_color/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/pointcloud](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/PointCloud2.msg)

[camera/gyro/sample](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Imu.msg)

[camera/gyro/imu_info](https://github.com/intel/ros2_intel_realsense/blob/refactor/realsense_msgs/msg/IMUInfo.msg)

[camera/accel/sample](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Imu.msg)

[camera/accel/imu_info](https://github.com/intel/ros2_intel_realsense/blob/refactor/realsense_msgs/msg/IMUInfo.msg)

* T265

[camera/fisheye1/image_rect_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/fisheye1/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/fisheye2/image_rect_raw](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Image.msg)

[camera/fisheye1/camera_info](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/CameraInfo.msg)

[camera/gyro/sample](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Imu.msg)

[camera/gyro/imu_info](https://github.com/intel/ros2_intel_realsense/blob/refactor/realsense_msgs/msg/IMUInfo.msg)

[camera/accel/sample](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Imu.msg)

[camera/odom/sample](https://github.com/ros2/common_interfaces/blob/master/nav_msgs/msg/Odometry.msg)
[camera/accel/imu_info](https://github.com/intel/ros2_intel_realsense/blob/refactor/realsense_msgs/msg/IMUInfo.msg)

[camera/odom/sample](https://github.com/ros2/common_interfaces/blob/master/nav_msgs/msg/Odometry.msg)

### Dynamically Reconfigure Parameters
Currently only support reconfigure parameters by `ros2 param` in runtime, e.g.
```
ros2 param list
ros2 param get <node_name> color0.enabled
ros2 param set <node_name> color0.enabled true
```
## Known Issues
* If you want to launch T265 and D435 camera at one time, you have to launch T265 first due to HW constraits which will be fixed in a future release of [librealsense](https://github.com/IntelRealSense/librealsense).
* Don't support launch node via launch file due to [issue#316](https://github.com/ros2/launch/issues/316) of launch package.
* If you want to launch T265 and D435 camera at one time, you have to launch T265 first due to HW constraits which will be fixed in a future release of [librealsense](https://github.com/IntelRealSense/librealsense).[issue#4672](https://github.com/IntelRealSense/librealsense/issues/4672)
* Don't support launch node via launch file due to [issue#316](https://github.com/ros2/launch/issues/316) of launch package. This issue has been fixed, but the fixing will be in next ROS2 release.
* Don't support dynamic reconfigure parameters by rqt_reconfigure due to [issue#53](https://github.com/ros-visualization/rqt_reconfigure/issues/53) of rqt_reconfigure, but you still can reconfigure parameters by `ros2 param`.
* We support Ubuntu Linux Bionic Beaver 18.04 on 64-bit, but not support Mac OS X 10.12 (Sierra) and Windows 10 yet.

## Todo
## TODO
* Add more tests
* Merge sensor data from gyroscope and accelerator into one topic
* Support diagnostics
* Support reconfigure parameters by GUI
* Support launch multiple nodes in a single launch file

## License
Copyright 2019 Intel Corporation
Expand Down

0 comments on commit 371fbbf

Please sign in to comment.