Raspberry Pi 4でRealsense T265を使うための方法をまとめました。
また、ROSで使用する方法もまとめました。
基本的にはintelが提供しているインストールガイドの通りに進めるだけになります。
環境
- Raspberry Pi 4 Model B 8G
- Ubuntu 18.04
- ROS melodic
- Realsense T265
Realsense SDKのビルド
必要なパッケージのインストール
2行目は、ubuntuのバージョンによって異なります。今回はubuntu 18用です。
$ sudo apt install libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
$ sudo apt install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev at
Realsense SDKのビルド
Gitリボリトリをクローンし、最新のリリースをcheckoutします。
記事の執筆時点では最新版は「v2.43.0」ですが、自分は「v2.42.0」を使用しました。
$ git clone https://github.com/IntelRealSense/librealsense.git
$ cd librealsense
$ git checkout -b v2.42.0 refs/tags/v2.42.0
パーミッション変更スクリプトとパッチスクリプトを実行
$ ./scripts/setup_udev_rules.sh
$ ./scripts/patch-realsense-ubuntu-lts.sh
ビルド
最適化されたSDKをビルドするため、Build typeをRelease
としました。
ビルドには時間がかかるためしばらく待ちます。
$ mkdir build && cd build
$ cmake ../ -DCMAKE_BUILD_TYPE=Release
$ sudo make uninstall && make clean && make && sudo make install
Viwerの実行
Realsense T265を接続し、ビューアを起動します。
デバイスを認識しセンサデータが表示されれば成功です。
$ realsense-viewer
ROSラッパーのビルド
次にROSでRealsense T265を使用する方法を説明します。
なおROSラッパーをビルドするにあたり、自分で開発しているパッケージと区別するため別のworkspaceを作成しました。
これはただの好みなので、必須ではありません。
$ mkdir -p 3rd_ws/src
$ cd 3rd_ws
$ catkin_init_workspace
$ catkin_make
$ vi ~/.bashrc
source ~/ros/3rd_ws/devel/setup.bash # 追加
ddynamic-reconfigureのインストール
後述のROSラッパーのビルドでエラーが発生したため、事前に1つのパッケージをインストールしておきます。
$ sudo apt install ros-melodic-ddynamic-reconfigure
ROSラッパーのビルド
Gitリポジトリをクローンしビルドします。
バージョンはクローンの時点で最新だった「2.2.22」を使用しました。
$ cd {ros workspace}/src
$ https://github.com/IntelRealSense/realsense-ros.git
$ cd realsense-ros
$ git checkout -b 2.2.22 refs/tags/2.2.22
ビルドはコチラも最適化を有効にするため、Build TypeをRelease
としました。
$ cd {ros workspace}
$ catkin_make clean
$ catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
$ catkin_make install
ddynamic-reconfigure
をインストールしていないと、以下のエラーが出ました。
Could not find a package configuration file provided by
"ddynamic_reconfigure" with any of the following names:
...
実行
パッケージに付属のlaunchファイルで起動します。
$ roslaunch realsense2_camera rs_t265.launch
別ターミナルを立ち上げ、データが正しく出力されているか確認します。
- ROS Topicのリスト確認
/camera/xxx が出力されているtopicです。
Realsense T265の位置情報は/camera/odom/sample
です。
$ rostopic list
/camera/accel/imu_info
/camera/accel/sample
/camera/gyro/imu_info
/camera/gyro/sample
/camera/odom/sample
/camera/realsense2_camera_manager/bond
/camera/tracking_module/parameter_descriptions
/camera/tracking_module/parameter_updates
/diagnostics
/rosout
/rosout_agg
/tf
/tf_static
- ROS Topicのメッセージ型確認
$ rostopic type /camera/odom/sample
nav_msgs/Odometry
- ROS Topicの表示
$ rostopic echo /camera/odom/sample
---
header:
seq: 7903
stamp:
secs: 1615099037
nsecs: 892016649
frame_id: "camera_odom_frame"
child_frame_id: "camera_pose_frame"
pose:
pose:
position:
x: -0.114610008895
y: -0.0117419790477
z: 0.317946970463
orientation:
x: 0.932430207729
y: -0.34159758687
z: 0.105063930154
w: 0.0533539503813
covariance: [0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0001]
twist:
twist:
linear:
x: -0.0246414352683
y: -0.0712390058292
z: -0.072351145566
angular:
x: 0.11608623321
y: 0.234681139377
z: -0.413131162251
covariance: [0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0001]
---