ゼロからはじめるNavigation 2 on RasPi Mouse

ゼロからはじめるNavigation 2 on RasPi Mouse

ROS Japan UG #31 ROS2勉強会 https://rosjp.connpass.com/event/140767/ の発表資料です。Raspberry Pi Mouse V3とRPLiDAR A1M8を使ってROS2対応移動ロボットを実装し、Navigation 2に対応させていく話をしました。

Cc568a0b1284645f9fb927b2343eb87e?s=128

Yutaka Kondo

August 23, 2019
Tweet

Transcript

  1. ゼロから じめる Navigation 2 on RasPi Mouse 近藤 豊 @youtalk

    https://www.youtalk.jp ROS Japan UG #31 ROS2勉強会
  2. 自己紹介 yutaka.kondo@youtalk.jp 4 本名 国籍 ホームページ • ~2013/03: 奈良先端大学院大学 博士(工学)

    • ~2018/04: カワダロボティクス 開発部主任 • 2018/05~: Preferred Networks エンジニア • 2019/08/13: ROS2で じめよう 次世代ロボットプログラミング 出版
  3. きっかけ • ROS2 基盤 ちょっとわかるようになった で、次 ナビゲーションか マニピュレーションを理解したい • ロボット屋な

    で、仕事でも趣味でもロボット実機を動かしたい • ROSCon JP 2019講習会で僕がNavigation 2 範囲を担当することに • アールティさんがRaspberry Pi Mouse V3を貸してくれた • 1万円から2D LiDARを買える時代が到来していた 5 RasPi Mouseと格安LiDAR組み合わせて Navigation 2パッケージを実践理解して 講習会にもそ まま繋げよう
  4. ゼロから じめるNavigation 2 on RasPi Mouse https://github.com/youtalk/raspimouse_ros2 1. RPLiDAR ROS2ドライバ作成

    2. Raspberry Pi 3 B+ ROS2セットアップ 3. RasPi Mouse + RPLiDAR組み立て 4. RasPi Mouse ROS2ドライバ微修正 5. RasPi Mouse descriptionパッケージ ROS2移行 6. RasPi Mouse + RPLiDAR bringupパッケージ作成 7. teleopとrosbag2を使ったSLAM用データ収集 8. RasPi Mouse + RPLiDAR Google Cartgrapherパッケージ作成 9. RasPi Mouse + RPLiDAR Navigation 2パッケージ作成 6
  5. Raspberry Pi Mouse V3 + RPLiDAR A1M8 7 • RPLiDAR

    A1M8 ◦ 1万円前後で買える2D LiDAR • RPLiDARマウント ◦ 3Dプリンタで自作 ◦ STLファイル • Raspberry Pi Mouse V3 ◦ アールティ製移動ロボット プ ラットフォーム ◦ Raspberry Pi 3 B+
  6. システム構成 8 Raspberry Pi 3 B+ PC description robot_state_ publisher

    RasPi Mouse ドライバ RPLiDAR ドライバ static_transform _publisher bringup Navigation 2 Google Cartgrapher rviz2 rosbag2 teleop_twist_ joy / keyboard センシングと アクチュエーション み それ以外
  7. 1. RPLiDAR ROS2ドライバ作成 • https://github.com/youtalk/ rplidar_ros ◦ ROS1ドライバrplidar_rosを ROS2移行 ◦

    ROS2プログラミング作法でリ ファクタリング済み ▪ Before ▪ After $ ros2 run rplidar_ros rplidar_node 9
  8. 2. Raspberry Pi 3 B+ セットアップ • Ubuntu 18.04 インストール

    ◦ https://wiki.ubuntu.com/ARM/RaspberryPi ◦ GUI 使わない で、*ubuntu-desktop インストール省略 • Raspberry Pi Mouseドライバ インストール ◦ https://www.rt-shop.jp/blog/archives/11249 • ROS2 Dashing Diademata インストール ◦ https://www.rt-shop.jp/blog/archives/11061 ◦ crystalをdashingに読み替え 10
  9. 3. RasPi Mouse + RPLiDAR A1M8組み立て 11 もっと短いMicro USB ケーブルを使うべき

    小さなL字 六角レンチを 用意しよう RPLiDARを組み付ける前 にMicro SDカードをセット アップ
  10. 4. RasPi Mouse ROS2ドライバ微修正 • https://github.com/gbiggs/raspimouse2 ◦ Geoffさん謹製Raspberry Pi Mouse

    ROS2ドライバ ◦ ライフサイクル、ノードコンポーネントに対応済み ◦ ただし、tf2_ros::TransformBroadcasterが未解決 • https://github.com/youtalk/raspimouse2/tree/reenable-tf ◦ TF有効化版 12
  11. 5. descriptionパッケージ ROS2移行 • https://github.com/rt-net/raspimouse_sim ◦ RasPi Mouse Gazeboシミュレーション用パッケージ ◦

    raspimouse_descriptionにRasPi Mouse URDFあり • https://github.com/youtalk/raspimouse_sim/tree/dashing-description 1. raspimouse_description以外 パッケージを一時的に AMENT_IGNORE 2. raspimouse_description ROS2移行 13
  12. 6. bringupパッケージ作成 • https://github.com/youtalk/raspimouse_ ros2/tree/master/raspimouse_bringup ◦ 右図 ノードを起動するLaunchファイル を保存 ◦

    static_transform_publisher RasPi MouseとRPLiDAR 座標変換 ため(最終的に URDFで対応) $ ros2 launch raspimouse_bringup robot.launch.py 14 description robot_state_ publisher RasPi Mouse ドライバ RPLiDAR ドライバ static_transform _publisher bringup
  13. 7. teleopとrosbag2を使ったSLAM用データ収集 • ロボット 現在状態とセンサ出力を記録して、SLAM パラメータ調整に 再利用 $ rviz2 ◦

    RViz2でロボット 現在状態とセンサ出力を表示 $ ros2 run teleop_twist_keyboard teleop_twist_keyboard ◦ キーボード(もしく ジョイパッド)操作で部屋を巡回 $ ros2 bag record -a -o ./raspimouse.bag ◦ raspimouse.bagに全トピックデータを保存 15
  14. 8. Google Cartgrapherパッケージ作成 9. Navigation 2パッケージ作成 • To Be Announced…

    • TurtleBot3 ROS2パッケージがとても参考になる ◦ https://github.com/ROBOTIS-GIT/turtlebot3/tree/ros2 ◦ https://discourse.ros.org/t/tb3-introducing-ros2-tutorials/5959 16
  15. Navigation 2 • 移動ロボット 経路計画パッケージ ◦ ROS2 Crystalでアルファリリース ◦ TurtleBot3がROS2

    Dashing Navigation 2に対応 ◦ ビヘイビアツリーに対応したナビゲー ションタスク 実装 ▪ ROS1で ほぼ決められた復帰 動作を調整する み 17 現在実装されているタスクツリー https://github.com/ros-planning/navigation2/blo b/master/nav2_behavior_tree/README.md より
  16. まとめ • 2週間 余暇プロジェクトで ゼロから じめると SLAMとナ ビゲーションまで 辿り着けなかった... ◦ あ

    ROS公式ロボットTurtleBot3 ROS2 Dashing + Navigation 2対応でさえ、つい先週 こと • rosbag2データ 収集した で、あと config祭りだけ!? 18 続き 9/24 ROSCon JP 2019 講習会をお楽しみに!
  17. “作る経験 コピーできない” ゼロから作るDeep Learning ❷ 帯より ROS Japan UG #31

    ROS2勉強会
  18. #ROS2で じめよう 次世代ロボットプログラミング • 網羅的に体系的にROS2を扱った世 界最初 書籍!? • ROS2 Dashing

    Diademata準拠 • ROS1を振り返る章もあり • Roomba ROS2ドライバ移行実践 • 編集協力者 Geoff Biggsさん(Tier IV) 高妻 真吾さん(PFN) 20 感想、レビュー大歓迎です!