4.3K Views
September 27, 24
スライド概要
ROS 1年目で自動運転フルスクラッチ、mROS 2で全部のロボットをROS 2対応したのでそれの報告をしてきました。
その時に使用したスライドです
高専ロ ボコ ン で始 め るRO S 2 はしもとかずさ(github@kazu-321)
高専ロボコン2024関東甲信越地区大会で準優勝 しました!
使 った 技 術や セ ンサ ーな ど • ハード • mROS 2 mbed • Raspberry pi 5 • YDLiDAR X4 • mROS 2 esp • ソフト • RANSAC • Pure Pursuit • ros2-for-unity • Taiga様による robowareを参考にしたpath planner
使 った 技 術や セ ンサ ーな ど • mROS 2 mbed • Raspberry pi 5 • YDLidar X4 • mROS 2 esp • RANSAC • Pure Pursuit • ros2-for-unity • Taiga様による robowareを参考にしたpath planner
今 年の ル ール は • ロボット1でロボット2を飛ばす • 飛ばされたロボット2がオブジェクトを回収し戻ってくる • ロボット2が試合で初めて飛ばされ着地するときに着地点が入る → ロボットたくさん!! • ROSを使わない手はない!! →ロボット2にはすべてmROS 2 esp搭載 • 操縦者が3人では足りない! →ロボット1を自動化 • 操縦者がすぐ操作するロボットを切り替えたい! →ros2-for-unityでROS_DOMAIN_ID切り替え
m RO S 2 で 通信 し すぎ た • ロボット5台同じROS_DOMAIN_ID、topicで通信するとメモリが... • ロボットの種類ごとにIDを分けることに R1(1) R2-1(8) R2-2(7) • Twistring型を作成→全部一つのtopicで受信できる! Twist twist, String cmd, Int8 ID //R2-2が複数あるのでIDで分けた • Unityアプリでもボタン一つでROS_DOMAIN_IDを切り替えられるように! • ライダー、自己位置推定、プランナー、コントローラーも別ID(2)に • コントローラーからの ros_domain_bridge を使って1番に転送 高速で快適な通信!!
自 己位 置 が大 変だ った 話 • 機構班「重いから計測輪はなし、カメラも余裕があれば」 ←余裕、ありませんでした • → 2D LiDARだけで自己位置推定(ラズパイで高速処理できる) • NDT:早くて軽いが初期位置から離れると飛ぶことがある • ICP:精度は良かったが遅いのと重い • Cartographer:なめらかで飛んでも修正されるが横方向の精度が微妙だった • AMCL:rf2oと組み合わせたが失敗 • RANSAC:さいきょう。はやい。かるい。
こ れか ら は。 。 。 • ライダーカメラ、3D LiDAR、ホイールオドメトリー(とそのフィルタ)にトラ イ • Autoware入れてみる • Rustやってみたい • 光学式マウスのオドメトリーのやつ気になる • 今日学んだ技術もやりたい(となっているに違いない) • ちゃんとしたロボットのシミュレーター(軽量) • C++ちゃんと勉強したい←知らない文法がたくさんある • RCLCPP_COMPONENTS_REGISTER_NODE ←使ってみたい
THANK YOU