第 3 章 自律移動ロボットの構成 30
3.5 システム構成
位精度が低下する.そのため,周囲に高い建物がなく,マルチパスの影響が小さい環境で誤 差が5[m]程度である.この精度ではロボットが自律走行には十分ではない.本研究ではこの GPSに対して,静止衛星からの補正信号を用いて測位精度を向上させたDGPS(Differential Global Positioning System)を用いる.この測位誤差は50[cm]程度であり,単独測位のGPS と比較して精度が高い.しかし,このDGPS測位の精度でも自律走行でコースを走行する のには不十分であり,さらにマルチパスなどによって精度低下が発生した場合,自律走行の 持続が困難になる.一方,比較的精度の高いデータを抽出することでジャイロオドメトリに よる走行軌跡の累積誤差を補正することは可能である.したがって,本研究ではDGPSの 測位データを占有格子地図の作成時の走行軌跡の補正に用いる.
本研究で用いるDGPS受信機(Hemisphere A100)は出力データ形式がNMEA183で,更
新周期は1[Hz]である.NMEA183には緯度・経度情報の他に衛星配置,およびそれに基づ
く精度などのデータも出力されている.しかし,DGPSの精度は環境に依存し,特に高い建 物の直下で発生するマルチパスの影響が大きい.したがって,本研究ではDGPS測位点の 統計的処理により精度を評価することとし,使用するNMEA183のデータは緯度・経度を 表すGGAセンテンスのみとする.
3.5 システム構成
本研究における自律移動ロボットのシステム構成を図3.5に示す.ロボットのシステムは 台車の制御とジャイロオドメトリの算出を担当する「制御マイコン」と,各センサデータを 統合し,ロボットの動作,速度,および進行方向を決定するPCから構成した.以下,それ ぞれの機能について説明する.
3.5.1 制御マイコンの機能
ロボットの安定した走行を実現するため,その台車の制御の実行サイクルを正確に設定 する必要がある.それには汎用マイコンのタイマ機能が有用である.そのため,制御を担 当するマイコンとしてルネサス製SH7136が搭載されたマイコンボード(AlppaProject製
AP-SH2F-11A)を用いた.制御マイコンの機能を以下に述べる.
ジャイロオドメトリ
制御マイコンでは,ロボットの駆動輪のDCモータに取り付けたロータリーエンコーダか ら取得した並進速度より移動距離,およびジャイロから取得した角速度より方位を算出す る[38].これらの算出結果を組み合わせて走行軌跡を求める手法を一般にジャイロオドメト リと呼ぶ.ジャイロオドメトリは,ロボットの方位を車輪の回転量から算出するホイールオ ドメトリ比較して,車輪のスリップや車輪径および車輪間隔の計測誤差の影響を受けない
3.5 システム構成
Shared Memory Manager Vehicle Handler
2D-LaserScanner Handler
3D-LaserScanner Handler DGPS Handler
Navigator
Localizer 2D-Laser
Scanner2 3D-Laser Scanner
DGPS Receiver
Laptop PC Function Process
Gyro
Motor Driver Rotary Encoder MM
DC-Motor
Sensor
Actuator Processer
Map
A/D port
Counter Port
Micro Computer
PWM Port
UART
Position data 2D Scan data External Interrupt port Current
Rotation
Pulse Output Voltage
Duty Ratio
Synchronous Signal
3D Scan data Gyro-Odometry
2D Scan data 2D-Laser
Scanner1
Shared Memory
図 3.5 自律移動ロボットのシステム構成
ため精度が高い.本研究ではジャイロオドメトリより求められた走行軌跡をベースとして,
PC上のソフトウェアでより精度の高い自己位置・姿勢を推定する.
制御マイコンのCPUであるSH7136にはエンコーダのカウントを行う専用のポートがあ り,左右駆動輪のエンコーダのA相・B相の出力がそれぞれのポートに入力される.ロボッ トの並進速度は,SH7136の機能によって一定時間毎のエンコーダ値がカウントされること によって算出される.一方,本研究では角速度の取得にはジャイロ(シリコンセンシング,
CRH01)を用いるが,ジャイロの出力は角速度に比例した電圧である.これをSH7136の
AD変換ポートに入力することで整数値に変換される.SH7136のAD変換分解能は12[bit]
で,汎用マイコンとしては高い性能である.このようにして算出した角速度を積分すること で角度,すなわちロボットの方位が算出される.ジャイロは温度によってゼロ点が変化する ため,データ計測,および自律走行前は必ずゼロ点補正を行う.また,本研究ではジャイロ オドメトリと2次元測域センサのスキャンデータと同期をとり,自己位置・姿勢の推定精度 を向上させるため,2次元測域センサの同期信号によるSH7136の外部割り込み処理によっ て,移動距離と姿勢のデータをPCにUARTを介して送信される.
駆動輪のモータ制御
制御マイコンはPCから送信されるロボットの速度,角速度の制御目標値,および一時停 止などの制御コマンドを受信し,左右動輪の目標角速度に展開する.そして,エンコーダか ら得られた各車輪の実角速度を目標値に近づけるように,PI制御によって左右動輪のDC モータにおけるPWM(Pulse Width Modulation)制御のデューティー比を決定し,電流
3.5 システム構成
制御を実行する.
接触センサ
本研究のロボットでは,ロボットの動輪が環境中の物体との接触を検知する手段として,
動輪のDCモータにおける電流値の変化を用いる.ロボットが走行中に環境の物体に接触 した場合,動輪の負荷が大きくなるため,それまでの通常走行よりも電流値が増大する.こ の事象から接触を判別する.電流のモニタリングには,モータドライバ(Hibot社製, 1Axis DC Power Module)の負荷電流フィードバック機能を用いる.負荷電流の680/3700が電圧 としてフィードバックされ,制御マイコンSH7136でAD変換を行うことで数値化する.
3.5.2 ソフトウェア
PC上で動作するソフトウェアは図 3.5に示す構成のとおり,各機能を独立したプロセス とするマルチプロセスシステムとして構成した.センサ情報を取得するハンドラ(2次元測 域センサ+ジャイロオドメトリ,3次元測域センサ,DGPS測位),および,上位機能(行動 決定,自己位置推定)がそれぞれ独立したプロセスとして動作する.各プロセスが取得した センサ情報,自己位置・姿勢の推定値,走行制御コマンドはタイムスタンプを付加して共有 メモリに記録され,全機能プロセス間で参照される[48].このシステム構成は,一般的にロ ボットの開発において頻繁に生じる,新たな機能の追加要求に対して,ソフトウェアの機能 の追加が容易であるため,システムの拡張性が高い.また,自律移動ロボット制御のソフト ウェアを図 3.6に示す.右側(Localizer)は事前に与えた地図とのマッチングによって自己 位置・姿勢を推定している様子を示している.また,左側(Navigator)は周囲の環境を識別 して走行目標点を設定している様子を示している.