これは,How-to: Multiple camera setup with ROSを中途半端に補足,再現したものです.当然原典の方が説明は詳しいので英語力に自身がある人は原典を見たほうが絶対良いです.
なお,ROSの基本的な使用方法や環境構築については述べません.
使用環境
OS | Ubuntu16.04 |
ROS | ROS kinetic |
librealsense | v2.18.1 |
realsense ros wrapper | build 2.1.4 |
RealSense | D435i(D435) |
ROSラッパーは使用するlibrealsenseのversionに合わせ適宜入れてください.librealsenseリンク
ここでは,2台のRealSenseを使用することを前提としています.
下準備
librealsense ROS wrapperのビルド
参考記事
ROS Wrapper for Intel® RealSense™ Devices
RealSense D435をROSで使う
手順
1. RealSense各個体のシリアル番号の確認
調べ方
- rosラッパーから
$ roslaunch realsense2_camera rs_camera.launch
- realsense-viewerから
realsense-viewer起動後,個体情報にてシリアル番号を確認します.
2. ROSにてRealSenseを起動
#####作業ディレクトリ
$ cd ~/catkin_ws
#####1台目
$ roslaunch realsense2_camera rs_camera.launch camera:=cam_1 serial_no:=<1台目のシリアル番号> enable_pointcloud:=true
#####2台目
$ roslaunch realsense2_camera rs_camera.launch camera:=cam_1 serial_no:=<2台目のシリアル番号> enable_pointcloud:=true
3. 位置関係を設定してくれるpublisherを起動
基準としているRealSenseに対して,もう1台のRealSenseがどの位置,姿勢であるかを設定することで,set_cams_transforms.pyが位置関係を調整してトピックを出力してくれます.
X: X軸移動量
Y: Y軸移動量
Z: Z軸移動量
Y: Yaw軸の姿勢
P: Pitch軸の姿勢
R: Roll軸の姿勢
$ python src/realsense/realsense2_camera/script/set_cams_transforms.py cam_1_link cam_2_link X Y Z Y P R
実行例
$ python src/realsense/realsense2_camera/script/set_cams_transforms.py cam_1_link cam_2_link 0 0 0 0 40 0
4. rvizに表示させてみる
$ rviz
1台目の点群を表示
Displaysにある設定項目の内,Fixed Frameをcam_1_linkに設定します.
Displaysにある設定項目の内,Addメニューを開く.
1台目のRealSenseで取得した点群を表示させたい場合,By topicから
/cam_1 > /depth > /color > /points > PointCloud2
を選択.
2台目の点群を表示
Fixed Frameはcam_1_linkの設定のまま,1台目と同様の手順で
/cam_2 > /depth > /color > /points > PointCloud2
を選択.
5.トラブルシューティング
rvizの設定でPointCloud2が表示されない
- 各RealSenseのノードを立ち上げた時,
enable_pointcloud:=true
を設定したか? - RealSenseは適切に認識されているか?