【12-c-5】 自律型移動ロボットのソフトウェア技術
TRANSCRIPT
桑田桑田 良昭良昭元マサチューセッツ工科大学元マサチューセッツ工科大学航空宇宙工学専攻航空宇宙工学専攻 ポスドクポスドク(現ジェット推進研究所ロボティクス部門)(現ジェット推進研究所ロボティクス部門)
12-C-5
自律型移動ロボットの自律型移動ロボットのソフトウェア技術ソフトウェア技術
概要概要
DARPA Grand Challenge (DGC)とは
チームMITのアプローチ
VehiclePerceptionPlanning & ControlSoftwareインフラ
レース結果
Team MITTeam MITTeam Members
Sponsors
DGCDGCの歴史の歴史DARPA:アメリカ高等国防研究所
“DARPA hard”軍主導の研究開発
議会による目標設定: “2015年までに戦場の車の1/3を無人化”
陸軍のFuture combat systems: $270M
DGC 1: 2004年3月228kmを10時間以内, 賞金$1M106チーム10km以上走った車 なし
DGC 2: 2005年10月212kmを10時間以内, 賞金$2M195チーム中、 5チームが完走
優勝車優勝車StanleyStanley
Source: DARPA Urban Challenge Participants Briefing, May 2006
20052005年:年: ネバダの砂漠にてネバダの砂漠にて
Urban ChallengeUrban Challenge ((20072007.11.11))市街地にて, 交通あり
60マイルを6時間以内
賞金総額$3.5M開発費の一部が補助
89チーム, MITの初エントリ
前回よりも、ずっと難しい狭い道幅
様々なマニューバー
確率的
不確実性への対応 (状況, 他の車, etc.)
Source: DARPA Urban Challenge Participants Briefing, May 2006
RNDF / MDFRNDF / MDFRoute Network Definition File
方向の決まったグラフノード GPS座標点
エッジ 道の進行方向
交差点, 駐車場, ロータリー
RNDFの直線補間≠実際の道路プリプロセッシングも可能だが補間が間違うと大きなリスク
Mission Definition Fileチェックポイントのリスト
各道路の制限速度
スタート5分前に配布
MDF_name uce_mdf_B79-1
RNDF uce_rndf_1.txt
format_version 1.0
creation_date 02-Nov-07
checkpoints
num_checkpoints 28
47
41
141
9
1
4
20
35
41
7
26
3
…
DARPADARPAによるガイドラインによるガイドライン
Source: DARPA Participants Briefing, May 2006
要求項目例:
デザインの方向性
極力RNDFに頼らないSource: DARPA Participants Briefing, May 2006
状況状況判断判断はは知覚知覚ベースでベースで
10
短い開発期間短い開発期間
1年半(実質1年)
アプローチ
多岐の分野に渡る問題学際的アプローチ、複数のPI(EECS/AA/ME)
スパイラルデザイン解法を学びつつシステム設計
Site Visit(6/20)
セミファイナル(10/26-31)
ファイナル(11/3)
参加者のための会議 (5/20)
プログラムのアナウンス (5/1)
Site Visit(10/27)
Track A 選定
2006 2007
(10/2)
Ford Escape LR3
ブレードクラスタ1ブレードあたり2つの2.33GHzデュアルコアプロセッサ×10ブレード 40コア
プロセス数 > 40
大量のセンサGPS/IMU/オドメタ
SICK Lidars×12Velodyne (~64 Lidars)レーダー×15カメラ×5
エアコン
総消費電力:~5500Wジェネレータ
Land Rover 3Land Rover 3
システムダイアグラムシステムダイアグラム
Navigator
MDF
Drivability Map
MotionPlanner
Controller
Vehicle
RNDF
SICK
Velodyne
CamerasRoad paintdetectionLanes
Staticobstacles
Curbs
Positioning IMU, GPS,Odometry
RadarsVehicles
障害物の検知障害物の検知レーザーを使って地表面を推定
地表面に属さない大きなものを探す
縁石の検知縁石の検知縁石ってそもそも何?
フォールス・ポジティブに注意(e.g. スピードバンプ, 道のへこみ)
レーザーからスムーズさを計算レーザー精度はぎりぎり足りる程度
スムーズでない部分に曲線をフィット
知覚システムのアウトプット知覚システムのアウトプット
P&CP&Cサブシステムサブシステム
Navigator
MDF
Drivability Map
MotionPlanner
Controller
Vehicle
RNDF
SICK
Velodyne
CamerasRoad paintdetectionLanes
Staticobstacles
Curbs
Positioning IMU, GPS,Odometry
RadarsVehicles
DrivabilityDrivability MapMap知覚システムのアウトプットをMotion Plannerが使えるように加工
走行可能
走行不可
停止不可
障害物
縁石
(ハイリスク)
(ローリスク)
NavigatorNavigatorNavigator
Drivability Map
MotionPlanner
Controller
経路検索 & 短期的なゴールの設定
論理的判断交差点
追い抜き
U-ターン
Drivability mapを動的に調節知覚システムは完璧ではない
行き詰ったら、制約条件を緩和(~20秒単位)
中央線 →縁石 →レーン
“走行不可”の閾値を上げる
RRT(ランダム探索木)の延長
Controllerへの入力を生成
シミュレーション → 軌道生成
Drivability mapでチェック
10Hzで最良のパスをControllerへ
どのパスも末端は停止の状態走行中も安全に停止可能
Motion PlannerMotion Planner:動作生成:動作生成
道の外
Controller 車モデル
車
ゴール
中央線はみだし
障害物に接触
ゴール
20
ソフトウェアソフトウェア大量のコードを書いた
C ~150k LOCPython ~10k LOCJava ~6k LOC
残す価値のあるもの・ないもの
他の人にも有用なもの
LCM (http://lcm.googlecode.com) libcam (http://camunits.googlecode.com)procmanethcanvarious modules
LCMLCMLightweight Communications and Marshalling
マルチキャストグループ内のインタープロセスコミュニケーション(e.g.,10枚のブレードで~60個のプロセス)Single point of failureなし
C, Java, Pythonホスト間、コンパイラレベルでの型安全
Logging & Replay、ライブでデータを見られる
非常にシンプルなAPI
UDPマルチキャスト デリバリーの保証なし遅れてとどくなら、新しいのを
パケットロスはまれ
~40MB/sどうしても必要ならハンドシェイクで対応
実用的には問題なし
LCMLCMサンプルコードサンプルコード
lcm_t * lcm = lcm_create (NULL);goal_list_t_publish (lcm, “GOALS”, &gl);
送信側:
受信側:チャンネル名
メッセージハンドラ
型の定義:
サブシステムのサブシステムのテストテスト
Navigator
Drivability Map
MotionPlanner
Controller
Vehicle
SICK
Velodyne
CamerasRoad paintdetectionLanes
Staticobstacles
Curbs
Positioning IMU, GPS,Odometry
RadarsVehicles
Logger
Navigator
Drivability Map
MotionPlanner
Controller
Vehicle
SICK
Velodyne
CamerasRoad paintdetectionLanes
Staticobstacles
Curbs
Positioning IMU, GPS,Odometry
RadarsVehicles
Viewer
サブシステムのサブシステムのテストテスト
Navigator
Drivability Map
MotionPlanner
Controller
Vehicle
SICK
Velodyne
CamerasRoad paintdetectionLanes
Staticobstacles
Curbs
Positioning IMU, GPS,Odometry
RadarsVehicles
Log Player
Viewer
サブシステムのサブシステムのテストテスト
Navigator
Drivability Map
MotionPlanner
Controller
Vehicle
SICK
Velodyne
CamerasRoad paintdetectionLanes
Staticobstacles
Curbs
Positioning IMU, GPS,Odometry
RadarsVehicles
Vehicle Simulator
Navigator
Drivability Map
MotionPlanner
SimulatedLanes/Obsts
Viewer
South Weymouth Naval Air Stationキャンパスから車で約40分空いているときにのみ使用可能 → 週末
舗装された大きなエリア
どんな形の道も作れる
“クリーン”な環境障害物 = コーン
マーカー = 小麦粉
無人走行の実験場無人走行の実験場
レース前の一ヶ月レース前の一ヶ月 10/6~2410/6~24El Toro, CAより市街地に近い環境
毎朝のチェック
縁石
切返し方向転換
駐車
追い越し
“Sparse waypoint”
レース@元レース@元George AFBGeorge AFB
1マイル
道に沿って走る道に沿って走る
RRT planner道の形によらずスムーズに走行
カーブでは自然に減速
Max. 40km/h
30
止まった車の追い抜き止まった車の追い抜き
道の左右に駐車された車
対向車線に出る前に、必ず一時停止
走行可能
走行不可
停止不可
障害物
縁石
(ハイリスク)
(ローリスク)
駐車駐車
前後両方の動作を探索
狭い場所でのマニューバ
Area AArea A流れる交通に対してのルール
交通に合流
対向車の間を左折
10秒以上の遅延で減点
~10台の交通車両@16km/h
• 1st trial – 24分で7周• 2nd trial – 12分で10周
Area CArea C交差点での優先順位
道の封鎖&U-ターン
Route blockage
UUターンかターンか vsvs 回りこむか回りこむか
前に動けなくなったとき
制約条件を緩和する(例:障害物以外は無視)
UターンDARPAのいう正解
誤ってすると大損
トライアル#1トライアル#2
交通渋滞交通渋滞
交差点でのルール
各々の車が自分の順番を待つ
過度(10sec)の遅延 交通渋滞 Source: UC Pentagon Briefing,April 2008
想定外の状況想定外の状況
幻の縁石
ぼこぼこ道+急坂 → 市街地?!フェイルセーフタイマー 縁石を無視
CarOLOCarOLOとの事故との事故複数の要因
CarOLOが突っ込んできた 失格
ゆっくり動く物体と、止まった物体の区別が困難
もっと積極的な回避動作もありえた
史上初のロボット自動車同士の事故 DARPA
CarOLO
MIT
CornellCornellとの事故との事故
Cornell交差点内で停止&バック
追い抜かれ中に動き出した
“no fault”
史上2番目の
ロボット自動車事故
MIT交差点付近で追い抜き
レーンに早く戻りすぎ
レース結果レース結果89チーム中
セミファイナル:36ファイナル:11完走:6チーム
MITも完走~5 hr 35 min
レース当日の初体験一日30km以上土の丘40km/hで2km他のロボットとの遭遇
最後まで安全に走った
1st CMU 2nd Stanford 3rd Virginia Tech
4th MIT
教訓教訓難しいことは覚悟していたが、想像以上だったとにかくテスト
シミュレーション、走行実験、ログ再生部分ごとにテストできる開発環境そのコードの担当者以外の人によるテスト
開発者は開発で精一杯
ソフトウェアの実装 vs. アルゴリズムの開発どっちに偏ってもだめ
時間との戦い完璧なシステムには仕上がらないバグ・問題点には優先順位を
チームメンバー&チームワーク
Questions?Questions?パブリックデータ http://dgc.mit.edu/public
動画, レースログログプレーヤー, ビューア, etc.
学術論文 http://www.journalfieldrobotics.orgDARPAサイト http://www.darpa.mil/grandchallenge