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

MR1を支えたEthernet&Rosシステム