Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
MR1を支えた Ethernet&ROS システム 大工大技術交流会2019 京都大学機械研究会
Slide 2
Slide 2 text
目次 ● MR1について ● ROSシステムの概要 ● システムの詳細 ● 開発時の問題点 ● 評価 ● NHKロボコン2020に向けた取り組み
Slide 3
Slide 3 text
MR1について ● 15年ぶりの出場のため、MD,制御を始めとする 全技術を9ヶ月で開発 ● 制御の主軸は 転がしエンコーダー と IMU を用 いた制御 ● LiDARとROSを用いた自己位置推定システム は絶対位置を補正するための補助
Slide 4
Slide 4 text
ROSシステムの概要 ● 全制御はSTM32F767ZI NUCLEOを2台使う ことによって行われる ● LiDARの測定データをPCで処理し、Ethernet 経由でSTM32F7に流し込む ● 5GHzのWiFi APを搭載することで、セッティン グ時にLiDARの動作状況を手元のLaptopで 確認することができる
Slide 5
Slide 5 text
システム詳細(Cartographer) Googleが開発したSLAMソフトウェア。ROSパッケージが用意されている 通常のSLAMと、あらかじめ用意されたマップをもとに自己位置推定を行う PureLocalizationを利用することができる Thinkpad X1 Carbon(2018, 8th Gen Corei7, 16GB)でほぼ完全に動く Raspberry Pi とか Windowsタブレット(Atom, Corem3)は厳しそう
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
システム詳細(ROS) ● 北陽LiDARからのデータをGoogleの自己位置推定エンジン Cartographerによって処理し、 carto2poseによって座標データに変換、自己位置を得る ● 得られた自己位置情報はrosbridgeとrosbridge-proxyによって独自フォーマットのデータに変 換され、STM32F7にUDPパケットとして送られる ● STM32F7は受け取った自己位置とエンコーダーによる自己位置を相補フィルタによって統合 し、制御に使う
Slide 8
Slide 8 text
システム詳細(STM32F767) ● Ethernetの処理はLWIPによって行われる。 ● データ受信用のハンドラを設定し、 MX_LWIP_Process()を10msタイマーで呼び出すと受信ハ ンドラが呼び出される。 ● データ量が多すぎるとマイコン自体が死ぬ (何度か暴走してます。)
Slide 9
Slide 9 text
ソースコード一部掲載(全体公開は間に合いませんでした)
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
開発時の問題点 1. Ethernetの処理が重くなり、制御が死ぬ Ethernetの処理と制御の処理が同じ10msタイマーによる周期で走る Ethernetの処理が重くなると制御の処理が終わり切らず死ぬ LWIPの処理遅延(5〜10ms)による座標のズレ 2. 利用事例が少ない ロボコンでEthernetを本格的に用いている事例は多くない (そもそも情報がない) トライ&エラー で改良を進めるしかなかった
Slide 14
Slide 14 text
評価 ● LiDAR+Cartographer を用いることでcmオーダーの絶対位置を得ることができるため、自動 化においてかなりの威力を発揮した ● ライントレースやカメラ等によるセンシングよりも外乱に強い ● ROSを用いることで、アルゴリズム開発をしなくて良い。開発負担の軽減 ● ROSによるロボットからのデータの可視化が容易 (今回はあまり活用できていない) ● 楽しい(とても大事) ● LiDARの取り付けや角度調整が面倒 ● LiDAR系と転がしエンコーダー系の時間的なズレへの対処が必要 ● RTOSを用いていないため、Ethernetの処理が増加すると制御も崩壊する ● Linuxとマイコン両者を扱える人がほとんどいない (=技術継承の困難)
Slide 15
Slide 15 text
NHKロボコン2020に向けた取り組み ● RTOSを用いることで、安定した動作を目指す ● UART上の独自プロトコルをEthernet上のUDP通信に置き換える(=Ethernetの本格採用) ● ログを収集し、PC上で容易に確認可能にする ● 後継者の育成 ● ロボコン界隈へのROS,Ethernetという新たな選択肢の導入 ● EthernetケーブルにはEthernetフレームを流したい
Slide 16
Slide 16 text
ソースコード一式 ● cartographer_ros cartographerのROSパッケージ https://gitlab.com/kikaiken/cartographer_ros ● carto2pose cartographerのデータから座標データを取り出す https://gitlab.com/kikaiken/carto2pose ● rosbridge_proxy JSONから独自フォーマットへ変換する https://gitlab.com/kikaiken/rosbridge-proxy