【自作ロボットROS2化】jetsonNano+Docker(ROS2 Humble)でRPLidarを動かす
前回、jetsonNanoにDockerでROS2 Humbleを入れることができました。
今回は、jetsonNanoのDocker(ROS2 Humble)からRPLiadrのノードを起動したいと思います。
※なお、私が持っているRPLidarは、RPLiDAR A1M8です。
jetsonNanoにDocker+ROS2 Humbleを入れて開発していましたが、モーター周りのスクリプトを動かす際、
Python関連のバージョン不一致によるエラーが発生してしまいました。。
色々解決が困難そうなので、jetsonNanoにDocker+ROS2 Humbleは断念します。
ということで、jetsonNano→ラズパイ5にメインボードを変更しようと思います。
またその内容は記事で公開していきます。
Dockerコンテナ起動
RPLiDAR A1M8をUSBでjetsonNanoに接続し、以下コマンドで、Dockerコンテナを立ち上げます。
sudo docker run --network host --runtime nvidia -it --device /dev/ttyUSB0 --name lidar_test dustynv/ros:humble-ros-base-l4t-r32.7.1
ワークスペースを作成
Dockerコンテナ内で以下を実行し、ワークスペースを作成します。
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
lidar用のパッケージをダウンロード
gitからRPLiDARのROS2用パッケージをダウンロードしてビルドします。
cd ~/ros2_ws/src
git clone https://github.com/Slamtec/sllidar_ros2.git
cd ~/ros2_ws/
colcon build
source install/setup.bash
色々warningは出ましたが、ビルド通りました。
次に実行してみます。
lidar用のノードを実行
以下コマンドでlidar用ノードを実行します。
ros2 launch sllidar_ros2 sllidar_a1_launch.py
Docker環境内で実行しているので、jetsonNano内ではrvizが実行できません。
したがって、別PC(Ubuntu22.04 ROS Humble)でrvizを起動して動作確認します。
別PCでrvizを起動します。
rviz2
ADDから、LaserScanを追加し、トピック名は/scanを設定します。
別PCでもう1つターミナルを開き、以下コマンドで静的TFを発行します。
ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 map laser
以下のようにrviz上でLaserScanが描画されているので問題なくlidarが動作しているようです。
最後に
今回は、Docker(ROS2 Humble)環境でRPLidarを動かしてみました。
次はモーター周りのノードをROS2で動かしたいです。
それでは!!
スポンサーリンク