Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.2.9 #10

Merged
merged 86 commits into from
Dec 12, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
52543ac
moved description files into realsense2_description package
Mar 20, 2019
691f6b6
updated references to realsense2_description
Mar 20, 2019
23ac156
changed install to single block
Mar 20, 2019
8864a8d
Add option to use external nodelet manager
sundermann Mar 26, 2019
4071a3a
Register dynamic options in parent node handle
sundermann Mar 29, 2019
565555a
Remove copied version of ddynamic_reconfigure
Mar 20, 2019
3f18928
Migrate to https://github.com/pal-robotics/ddynamic_reconfigure
Mar 20, 2019
719f9a8
Add rule to install ddynamic_reconfigure
Apr 8, 2019
ea86fc2
Update README.md
doronhi May 22, 2019
b529f5a
fixed bug: wrong frame_id for imu frames. (#784)
doronhi May 26, 2019
cfd5d0c
Remove copied version of ddynamic_reconfigure
Mar 20, 2019
bf9b16f
Migrate to https://github.com/pal-robotics/ddynamic_reconfigure
Mar 20, 2019
f51fd16
Merge branch 'development' of https://github.com/pal-robotics-forks/r…
doronhi May 28, 2019
323fb29
Merge branch 'pal-robotics-forks-development' into development
doronhi May 28, 2019
5ba5ec3
Merge branch 'feature/realsense2_description' of https://github.com/a…
doronhi May 28, 2019
2bdf263
update README.md to include realsense2_description
doronhi May 28, 2019
c244891
Merge branch 'athackst-feature/realsense2_description' into development
doronhi May 28, 2019
2a2e73f
exit node if failed to initialize.
doronhi May 28, 2019
51300b5
update version to 2.2.5
doronhi Jun 2, 2019
a328ca5
Add accel test
doronhi Jun 2, 2019
b572924
Added ddynamic_reconfigure installation note (#795)
mayio Jun 2, 2019
891c7ff
fix remarks to imu test
doronhi Jun 2, 2019
205d6b6
fixed README.md file.
doronhi Jun 2, 2019
032b3d3
add librealsense2.rdmanifest file
doronhi Jun 2, 2019
c54c21a
update version to 2.2.6
doronhi Jun 2, 2019
c15066f
add librealsense2 dependency
doronhi Jun 2, 2019
9ba6c2d
disable static_tf_1 test - not working on Travis.
doronhi Jun 3, 2019
2b3365f
rename librealsense2.rdmanifest to librealsense2_xenial.rdmanifest
doronhi Jun 6, 2019
157db37
publish imu_info
doronhi Jun 10, 2019
71faa5c
Fix empty cmake variable and dependency on librealsense (#747)
dwisth Jun 11, 2019
a3649af
update apt-key for ROS repos.
doronhi Jun 11, 2019
d274d58
update apt-key for ROS repos.
doronhi Jun 11, 2019
ba763ec
Merge branch 'development' of https://github.com/stsundermann/realsen…
doronhi Jun 11, 2019
8063028
add external_manager option to rs_camera.launch
doronhi Jun 11, 2019
72e5d1f
Merge branch 'stsundermann-development' into development
doronhi Jun 11, 2019
311456d
enable reaquire tag whan launching node
baumanta Jun 5, 2019
de1649a
clarify installation process.
doronhi Jun 12, 2019
9340af0
Add option to use external nodelet manager
sundermann Mar 26, 2019
fddfe3b
Register dynamic options in parent node handle
sundermann Mar 29, 2019
fc1fd10
Fix empty cmake variable and dependency on librealsense (#747)
dwisth Jun 11, 2019
e2b7dd4
add external_manager option to rs_camera.launch
doronhi Jun 11, 2019
025a19d
clarify installation process.
doronhi Jun 12, 2019
95a0832
publish gyro/imu_info and accel/imu_info only once.
doronhi Jun 12, 2019
d386740
Make T265 less noisy in the info log (#823)
Jun 26, 2019
7fc0f9b
cleaning
doronhi Jul 4, 2019
c1010ab
Updated README to include notice of running multiple T265 cameras not…
asaba96 Jul 4, 2019
387f12b
fixed bug: advertise unsupported streams. (#811)
doronhi Jul 4, 2019
2452cc2
publish imu_info (#809)
doronhi Jul 4, 2019
c342314
Merge branch 'add_imu_info' into development
doronhi Jul 4, 2019
71cbe92
move ddynamic_reconfigure settings to before start streaming. (#843)
doronhi Jul 10, 2019
2ae0a55
Add support for SR305 (#844)
doronhi Jul 10, 2019
31fa75e
update version to 2.2.7
doronhi Jul 10, 2019
13375ec
Dependency on xacro missing.
peci1 Jul 11, 2019
5ef502e
fix bug: filters do not show in rqt_reconfigure. (#858)
doronhi Jul 23, 2019
c2d3faf
add asic temperature and projector temperature to diagnostics topic. …
doronhi Aug 8, 2019
d77e6eb
set auto_exposure ROI. (#883)
doronhi Aug 8, 2019
3d45f3e
Check temperature freqency (#884)
doronhi Aug 8, 2019
da4bb5d
upgrade version: 2.2.8
doronhi Aug 8, 2019
ac384d7
fix issue: node crash when device disconnects.
doronhi Aug 12, 2019
d50a56e
Merge pull request #888 from doronhi/fix_monitor_crash
doronhi Aug 12, 2019
68d8dc5
Add option to disable odom tf to be published
kamilritz Aug 13, 2019
cf86084
Merge pull request #890 from kamilritz/t265_publishOdomTf_option
doronhi Aug 13, 2019
8dbe9d0
Add option to disable odom tf
kamilritz Aug 16, 2019
e0076b2
Add dynamic transform support again.
pavloblindnology Mar 11, 2019
7a35280
Merge pull request #804 from Auterion/enable-required-tag
doronhi Aug 28, 2019
0c3ce64
force infrared stream to choose stable Y8 format.
doronhi Sep 16, 2019
936b98c
add publish_tf and tf_publish_rate to README.md
doronhi Sep 16, 2019
6b3604e
Merge branch 'Blindnology-dynamic_tf' into development
doronhi Sep 16, 2019
4c9fafb
Merge pull request #850 from peci1/patch-2
doronhi Sep 16, 2019
2a45f09
Merge pull request #924 from doronhi/fix_W10
doronhi Sep 16, 2019
7ace746
added support for multiple cameras
saikishor Oct 21, 2019
d2d38a1
Allow to use usb port number to connect to devices
Oct 23, 2019
8e0705b
use regex to parse usb description string.
doronhi Oct 24, 2019
59b29e3
Add device_type option to choose the device type using regular expres…
doronhi Oct 24, 2019
2baf449
update README.md regarding port_no and device_type options.
doronhi Oct 24, 2019
432eb1c
Merge pull request #964 from doronhi/BriceRenaudeau-PortNumberConnection
doronhi Oct 24, 2019
ca76160
renamed porn_no to usb_port_id
doronhi Oct 24, 2019
be3fec4
update README.md regarding usb_port_id
doronhi Oct 24, 2019
0bc36ae
Update opensource_tracking.launch
aswinkumar2019 Oct 24, 2019
88f7307
Merge pull request #966 from doronhi/rename_usb_port_id
doronhi Oct 24, 2019
2dd42ec
Merge pull request #965 from aswinkumar2019/patch-1
doronhi Oct 24, 2019
8e34324
set serial number in diagnostics when running from bag file
doronhi Oct 28, 2019
d91c9c2
Merge pull request #967 from doronhi/offline_serial_no
doronhi Oct 28, 2019
3148d2b
Merge pull request #957 from saikishor/multiple-cameras
doronhi Oct 28, 2019
1ed5a45
upgrade version: 2.2.9
doronhi Oct 28, 2019
a7a14f0
Merge branch 'rr-devel_v2.2.9' into release_v2.2.9
Dec 11, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ before_install:
# - sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keys.gnupg.net:80 --recv-key C8B3A55A6F3EFCDE
- sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main"
- sudo apt-get update -qq
- sudo apt-get install librealsense2-dkms --allow-unauthenticated -y
- sudo apt-get install librealsense2-dkms --allow-unauthenticated -y
- sudo apt-get install librealsense2-dev --allow-unauthenticated -y

install:
# install ROS:
- sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Expand All @@ -23,34 +23,37 @@ install:
- sudo apt-get install ros-kinetic-image-transport
- sudo apt-get install ros-kinetic-tf -y
- sudo apt-get install ros-kinetic-diagnostic-updater -y
- sudo apt-get install ros-kinetic-ddynamic-reconfigure -y
- source ~/.bashrc
- mkdir -p ~/catkin_ws/src/realsense

# install realsense2-camera
- mv * ~/catkin_ws/src/realsense/ # This leaves behind .git, .gitignore and .travis.yml but no matter.
- cd ~/catkin_ws/src/
- catkin_init_workspace
- catkin_init_workspace
- cd ..
- catkin_make clean
- catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
- catkin_make install
- echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
- source ~/.bashrc

# download data:
- bag_filename="http://realsense-hw-public.s3.amazonaws.com/rs-tests/TestData/outdoors.bag";
- wget $bag_filename -P "records/"

- bag_filename="http://realsense-hw-public.s3-eu-west-1.amazonaws.com/rs-tests/D435i_Depth_and_IMU_Stands_still.bag";
- wget $bag_filename -P "records/"

# Run test:
script:
- python src/realsense/realsense2_camera/scripts/rs2_test.py --all


before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache
- $HOME/.android/build-cache
52 changes: 45 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# ROS Wrapper for Intel® RealSense™ Devices
These are packages for using Intel RealSense cameras (D400 series and the SR300) with ROS.
These are packages for using Intel RealSense cameras (D400 series SR300 camera and T265 Tracking Module) with ROS.

LibRealSense supported version: v2.29.0 (see [realsense2_camera release notes](https://github.com/IntelRealSense/realsense-ros/releases))

## Installation Instructions

Expand All @@ -11,7 +13,7 @@ The following instructions support ROS Indigo, on **Ubuntu 14.04**, and ROS Kine
- #### Install from [Debian Package](https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installing-the-packages) - In that case treat yourself as a developer. Make sure you follow the instructions to also install librealsense2-dev and librealsense-dkms packages.

#### OR
- #### Build from sources by downloading the latest [Intel® RealSense™ SDK 2.0](https://github.com/IntelRealSense/librealsense/releases/tag/v2.19.2) and follow the instructions under [Linux Installation](https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md)
- #### Build from sources by downloading the latest [Intel® RealSense™ SDK 2.0](https://github.com/IntelRealSense/librealsense/releases/tag/v2.29.0) and follow the instructions under [Linux Installation](https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md)

### Step 2: Install the ROS distribution
- #### Install [ROS Kinetic](http://wiki.ros.org/kinetic/Installation/Ubuntu), on Ubuntu 16.04
Expand All @@ -23,6 +25,14 @@ mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
```
- Clone the latest Intel® RealSense™ ROS from [here](https://github.com/intel-ros/realsense/releases) into 'catkin_ws/src/'
```bashrc
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^\d+\.\d+\.\d+" | tail -1`
cd ..
```
- Make sure all dependent packages are installed. You can check .travis.yml file for reference.
- Specifically, make sure that the ros package *ddynamic_reconfigure* is installed. If *ddynamic_reconfigure* cannot be installed using APT, you may clone it into your workspace 'catkin_ws/src/' from [here](https://github.com/pal-robotics/ddynamic_reconfigure/tree/kinetic-devel) (Version 0.2.0)

```bash
catkin_init_workspace
Expand Down Expand Up @@ -65,13 +75,17 @@ After running the above command with D435i attached, the following list of topic
- /camera/gyro/sample
- /camera/accel/imu_info
- /camera/accel/sample
- /diagnostics

The "/camera" prefix is the default and can be changed. Check the rs_multiple_devices.launch file for an example.
If using D435 or D415, the gyro and accel topics wont be available. Likewise, other topics will be available when using T265 (see below).

### Launch parameters
The following parameters are available by the wrapper:
- **serial_no**: will attach to the device with the given serial number. Default, attach to available RealSense device in random.
- **serial_no**: will attach to the device with the given serial number (*serial_no*) number. Default, attach to available RealSense device in random.
- **usb_port_id**: will attach to the device with the given USB port (*usb_port_id*). i.e 4-1, 4-2 etc. Default, ignore USB port when choosing a device.
- **device_type**: will attach to a device whose name includes the given *device_type* regular expression pattern. Default, ignore device type. For example, device_type:=d435 will match d435 and d435i. device_type=d435(?!i) will match d435 but not d435i.

- **rosbag_filename**: Will publish topics from rosbag file.
- **initial_reset**: On occasions the device was not closed properly and due to firmware issues needs to reset. If set to true, the device will reset prior to usage.
- **align_depth**: If set to true, will publish additional topics with the all the images aligned to the depth image.</br>
Expand All @@ -96,15 +110,17 @@ The topics are of the form: ```/camera/aligned_depth_to_color/image_raw``` etc.
- **All the rest of the frame_ids can be found in the template launch file: [nodelet.launch.xml](./realsense2_camera/launch/includes/nodelet.launch.xml)**
- **unite_imu_method**: The D435i and T265 cameras have built in IMU components which produce 2 unrelated streams: *gyro* - which shows angular velocity and *accel* which shows linear acceleration. Each with it's own frequency. By default, 2 corresponding topics are available, each with only the relevant fields of the message sensor_msgs::Imu are filled out.
Setting *unite_imu_method* creates a new topic, *imu*, that replaces the default *gyro* and *accel* topics. Under the new topic, all the fields in the Imu message are filled out.
- linear_interpolation: Each message contains the last original value of item A interpolated with the previous value of item A, combined with the last original value of item B on last item B's timestamp. Items A and B are accel and gyro interchangeably, according to which type recently arrived from the sensor. The idea is to give the most recent information, united and without repetitions.
- copy: For each new message, accel or gyro, the relevant fields and timestamp are filled out while the others maintain the previous data.
- **linear_interpolation**: Each message contains the last original value of item A interpolated with the previous value of item A, combined with the last original value of item B on last item B's timestamp. Items A and B are accel and gyro interchangeably, according to which type recently arrived from the sensor. The idea is to give the most recent information, united and without repetitions.
- **copy**: For each new message, accel or gyro, the relevant fields and timestamp are filled out while the others maintain the previous data.
- **clip_distance**: remove from the depth image all values above a given value (meters). Disable by giving negative value (default)
- **linear_accel_cov**, **angular_velocity_cov**: sets the variance given to the Imu readings. For the T265, these values are being modified by the inner confidence value.
- **enable_bright_region_removal**, **r_blurring**, **r_dilation**, **bright_thresh**: *enable_bright_region_removal* choose whether to remove depth for bright regions. Bright regions are the regions whose pixels have at least one pixels brighter than *bright_thresh* within *r_dilation* pixels in x and y directions of a blurred *infra1* frame. Here, a blurred *infra1* frame is generated by bluring a *infra1* frame with a box filter of (2 * *r_blurring* + 1) * (2 * *r_blurring* + 1) kernel. Pointcloud is not published if *enable_bright_region_removal* is *true* and *infra1* frame is disabled.
- **r_ignore_v**, **r_ignore_h**: remove depth from areas *r_ignore_v* pixels from upper and lower borders, and *r_ignore_h* pixels from left and right borders. Disable by giving zero or any negative value (defalut)
- **hold_back_imu_for_frames**: Images processing takes time. Therefor there is a time gap between the moment the image arrives at the wrapper and the moment the image is published to the ROS environment. During this time, Imu messages keep on arriving and a situation is created where an image with earlier timestamp is published after Imu message with later timestamp. If that is a problem, setting *hold_back_imu_for_frames* to *true* will hold the Imu messages back while processing the images and then publish them all in a burst, thus keeping the order of publication as the order of arrival. Note that in either case, the timestamp in each message's header reflects the time of it's origin.
- **topic_odom_in**: For T265, add wheel odometry information through this topic. The code refers only to the *twist.linear* field in the message.
- **calib_odom_file**: For the T265 to include odometry input, it must be given a [configuration file](https://github.com/IntelRealSense/librealsense/blob/master/unit-tests/resources/calibration_odometry.json). Explanations can be found [here](https://github.com/IntelRealSense/librealsense/pull/3462). The calibration is done in ROS coordinates system.
- **publish_tf**: boolean, publish or not TF at all. Defaults to True.
- **tf_publish_rate**: double, positive values mean dynamic transform publication with specified rate, all other values mean static transform publication. Defaults to 0
- **publish_odom_tf**: If True (default) publish TF from odom_frame to pose_frame.


Expand All @@ -131,6 +147,8 @@ rosrun rqt_reconfigure rqt_reconfigure
<p align="center"><img src="https://user-images.githubusercontent.com/40540281/55330573-065d8600-549a-11e9-996a-5d193cbd9a93.PNG" /></p>

### Work with multiple cameras
**Important Notice:** Launching multiple T265 cameras is currently not supported. This will be addressed in a later version.

Here is an example of how to start the camera node and streaming with two cameras using the [rs_multiple_devices.launch](./realsense2_camera/launch/rs_multiple_devices.launch).
```bash
roslaunch realsense2_camera rs_multiple_devices.launch serial_no_camera1:=<serial number of the first camera> serial_no_camera2:=<serial number of the second camera>
Expand Down Expand Up @@ -181,10 +199,29 @@ roslaunch realsense2_camera demo_t265.launch

### About Frame ID
The wrapper publishes static transformations(TFs). The Frame Ids are divided into 3 groups:
- ROS convention frames: follow the format of <tf_prefix>_<_stream>"_frame" for example: camera_depth_frame, camera_infra1_frame, etc.
- Original frame coordinate system: with the suffix of <_optical_frame>. For example: camera_infra1_optical_frame. Check the device documentation for specific coordinate system for each stream.
- ROS convention frames: follow the format of <tf_prefix>\_<\_stream>"\_frame" for example: camera_depth_frame, camera_infra1_frame, etc.
- Original frame coordinate system: with the suffix of <\_optical_frame>. For example: camera_infra1_optical_frame. Check the device documentation for specific coordinate system for each stream.
- base_link: For example: camera_link. A reference frame for the device. In D400 series and SR300 it is the depth frame. In T265, the pose frame.


### realsense2_description package:
For viewing included models, a separate package is included. For example:
```bash
roslaunch realsense2_description view_d415_model.launch
```

### Unit tests:
Unit-tests are based on bag files saved on S3 server. These can be downloaded using the following commands:
```bash
cd catkin_ws
wget "http://realsense-hw-public.s3.amazonaws.com/rs-tests/TestData/outdoors.bag" -P "records/"
wget "http://realsense-hw-public.s3-eu-west-1.amazonaws.com/rs-tests/D435i_Depth_and_IMU_Stands_still.bag" -P "records/"
```
Then, unit-tests can be run using the following command:
```bash
python src/realsense/realsense2_camera/scripts/rs2_test.py --all
```

## Packages using RealSense ROS Camera
| Title | Links |
| ----- | ----- |
Expand All @@ -194,6 +231,7 @@ The wrapper publishes static transformations(TFs). The Frame Ids are divided int
* This ROS node does not currently support [ROS Lunar Loggerhead](http://wiki.ros.org/lunar).
* This ROS node does not currently work with [ROS 2](https://github.com/ros2/ros2/wiki).
* This ROS node currently does not provide the unit-tests which ensure the proper operation of the camera. Future versions of the node will provide ROS compatible unit-tests.
* This ROS node currently does not support running multiple T265 cameras at once. This will be addressed in a future update.

## License
Copyright 2018 Intel Corporation
Expand Down
2 changes: 0 additions & 2 deletions ddynamic_reconfigure/.gitignore

This file was deleted.

65 changes: 0 additions & 65 deletions ddynamic_reconfigure/CHANGELOG.rst

This file was deleted.

77 changes: 0 additions & 77 deletions ddynamic_reconfigure/CMakeLists.txt

This file was deleted.

Loading