Slide 1

Slide 1 text

ゼロから じめる Navigation 2 on RasPi Mouse 近藤 豊 @youtalk https://www.youtalk.jp ROS Japan UG #31 ROS2勉強会

Slide 2

Slide 2 text

自己紹介 yutaka.kondo@youtalk.jp 4 本名 国籍 ホームページ ● ~2013/03: 奈良先端大学院大学 博士(工学) ● ~2018/04: カワダロボティクス 開発部主任 ● 2018/05~: Preferred Networks エンジニア ● 2019/08/13: ROS2で じめよう 次世代ロボットプログラミング 出版

Slide 3

Slide 3 text

きっかけ ● ROS2 基盤 ちょっとわかるようになった で、次 ナビゲーションか マニピュレーションを理解したい ● ロボット屋な で、仕事でも趣味でもロボット実機を動かしたい ● ROSCon JP 2019講習会で僕がNavigation 2 範囲を担当することに ● アールティさんがRaspberry Pi Mouse V3を貸してくれた ● 1万円から2D LiDARを買える時代が到来していた 5 RasPi Mouseと格安LiDAR組み合わせて Navigation 2パッケージを実践理解して 講習会にもそ まま繋げよう

Slide 4

Slide 4 text

ゼロから じめる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

Slide 5

Slide 5 text

Raspberry Pi Mouse V3 + RPLiDAR A1M8 7 ● RPLiDAR A1M8 ○ 1万円前後で買える2D LiDAR ● RPLiDARマウント ○ 3Dプリンタで自作 ○ STLファイル ● Raspberry Pi Mouse V3 ○ アールティ製移動ロボット プ ラットフォーム ○ Raspberry Pi 3 B+

Slide 6

Slide 6 text

システム構成 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 センシングと アクチュエーション み それ以外

Slide 7

Slide 7 text

1. RPLiDAR ROS2ドライバ作成 ● https://github.com/youtalk/ rplidar_ros ○ ROS1ドライバrplidar_rosを ROS2移行 ○ ROS2プログラミング作法でリ ファクタリング済み ■ Before ■ After $ ros2 run rplidar_ros rplidar_node 9

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

3. RasPi Mouse + RPLiDAR A1M8組み立て 11 もっと短いMicro USB ケーブルを使うべき 小さなL字 六角レンチを 用意しよう RPLiDARを組み付ける前 にMicro SDカードをセット アップ

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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 より

Slide 16

Slide 16 text

まとめ ● 2週間 余暇プロジェクトで ゼロから じめると SLAMとナ ビゲーションまで 辿り着けなかった... ○ あ ROS公式ロボットTurtleBot3 ROS2 Dashing + Navigation 2対応でさえ、つい先週 こと ● rosbag2データ 収集した で、あと config祭りだけ!? 18 続き 9/24 ROSCon JP 2019 講習会をお楽しみに!

Slide 17

Slide 17 text

“作る経験 コピーできない” ゼロから作るDeep Learning ❷ 帯より ROS Japan UG #31 ROS2勉強会

Slide 18

Slide 18 text

#ROS2で じめよう 次世代ロボットプログラミング ● 網羅的に体系的にROS2を扱った世 界最初 書籍!? ● ROS2 Dashing Diademata準拠 ● ROS1を振り返る章もあり ● Roomba ROS2ドライバ移行実践 ● 編集協力者 Geoff Biggsさん(Tier IV) 高妻 真吾さん(PFN) 20 感想、レビュー大歓迎です!