沼津高専 電子制御工学科 | ||||||||
| ||||||||
改訂記録 | ||||||||
---|---|---|---|---|---|---|---|---|
版数 | 作成日 | 作成者 | 承認 | 改訂内容 | ||||
A01 | 2000.02.02 | 若杉 | 小澤 | 初版 | ||||
A02 | 2000.2.04 | 桑名 | 小澤 | リンク漏れの訂正、細部更新 | ||||
B01 | 2000.04.28 | 小沢 | 小澤 | 動作の変更、それに伴うプログラムの変更、規定変更に伴う細部の変更、外観の変更、他細部変更 | ||||
B02 | 2000.06.15 | 桑名 | 小澤 | ソフトウェア部の画像(t.gif)変更、タスク変更点改善。また細部更新 | ||||
B03 | 2000.06.27 | 小澤 | 小澤 | エレクトロニクス回路構成の図の変更、システム構成ツリーにおいて役割を記述 |
|
センサ | IO port Address/bit | 備考 | |
---|---|---|---|
超音波センサ (選択信号) (下位3bit) | 右 | 2 (010) | |
左 | 3 (011) | ||
前 | 0 (000) | ||
後 | 1 (001) | ||
赤外線センサ | 右後 | 0xfc6153/5 | |
右前 | 0xfc6153/4 | ||
左後 | 0xfc6153/3 | ||
左前 | 0xfc6153/2 | ||
前右 | 0xfc6153/1 | ||
前左 | 0xfc6153/0 | ||
タッチセンサ | 右から1番目 | 0xfc6003/4 | |
右から2番目 | 0xfc6003/5 | ||
右から3番目 | 0xfc6003/6 | ||
前右 | 0xfc6003/7 | ||
前左 | 0xfc6003/8 | ||
左から3番目 | 0xfc6003/9 | ||
左から2番目 | 0xfc6003/10 | ||
左から1番目 | 0xfc6003/11 |
fig.4
状態 | 状態要約 | 遷移状態 | 条件 |
電源OFF | 何もできない | 初期設定リセット | 電源投下 |
初期設定リセット | すべての値をリセット | 位置確認 | 電源投下もしくは例外処理復帰後 |
位置確認 | 超音波を発信 座標割り出し | 移動検索 | 座標検索が終了下のちこのモードに移る |
エラー | 座標不明 | ||
移動検索 | TYPE A X軸の中心を軌道上とし、Y軸に平行移動を行う。 X軸での作業が終わったらY軸の中心 軌道上とした、X軸に平行移動を行う TYPE B X軸の中心を軌道上とし、Y軸に平行移動を行う。 壁へと近づいたら90°回転し | 判別 1 | タッチセンサON |
判別 1 | 超音波発信 ポストと壁の判別 | 回避 1 | 判別 1 == 壁 |
判別 2 | 判別 1 == ポスト | ||
回避 1 | 方向転換を行う | 移動検索 | 回避行動が終了したという信号 |
ポスト判定 | ポストの座標から 獲得の有無を判別 | 移動検索 | ポストのある座標が記憶座標と一致 |
獲得動作1 | ポストのある座標が記憶座標と一致しない | ||
獲得動作1 | ポストのある座標まで移動 | 獲得動作2 | ポスト判定==FLASE |
獲得動作2 | 赤外線の反応を求めて、 ポストの周りを周回運動を行う ただし、2周しても、赤外線の反応が無い場合には、 座標を記録し直し、 復帰モードに遷移 | 獲得動作3 | 獲得動作1が終わったという信号 |
獲得動作3 | 赤外線が検出された方向に向きを変え、前進。 後退、赤外線の検出確認 赤外線が検出されなくなるまで 繰り返す | 復帰 | 赤外線の検出あり |
復帰 | 記録してある座標の位置まで戻る | 移動検索 | 獲得動作3、もしくは2からの信号 |
例外処理 | 必要最低限のデータを残してリセットなどし(しない可能性もあり)、元の状態に戻れるようにする。 | 位置確認 | エラー信号あり |
表1.本戦1回目動作遷移表
状態 | 状態要約 | 遷移状態 | 条件 |
電源OFF | 何もできない | 初期設定リセット | 電源投下 |
初期設定リセット | 必要なデータを残し、リセットを行う | 目標割り出し | 初期設定リセット終了 |
目標割り出し | 一回戦で得たLEDの座標データを元にもっとも近い(直線距離で)LEDの割り出し | 移動ルート計算 | 目標決定 |
移動ルート計算 | 目標値から位相ルートの計算をする (但し、X,Y座標に対して平行または垂直な経路を採用 |
移動 | 計算終了 |
移動 | 目標のLEDのあるポールまで移動する | 獲得動作 | ポールにぶつかりタッチセンサON |
獲得動作 | ポールの周りを回ってLED検索 | LED獲得 | LED発見 |
LED獲得 | LEDのスイッチを押し消灯する | LED消灯確認 | スイッチを押す |
LED消灯確認 | 後退しながらLEDの消灯を確認する | 目標割り出し | LED消灯確認 |
表2.本戦2回目動作遷移表
MIRSのソフトウェアは、標準として”自律小型知能ロボットMIRS用リアルタイムモニタ「MIRX68K」”を用いて開発される。
fig.5タスク構成図
- 低レベルタスク
- task00:初期化タスク 起動時に不要な値をリセットし、次の行動に備える。
- task01:赤外線センサタスク 赤外線センサ割り込みが入るごとに、センサ状態を読み取りBBに書き込む。
- task02:超音波センサタスク 4つの超音波を順に動作させ距離情報をBBに書き込む。このタスクは電源投入時に起動され、常時測定を行っている。超音波発信したのち、タスクは開放され割り込み待ちになる。注)超音波受信もしくはタイムアウトにより再起動され距離を計算する。したがって常時計測を行っていてもこのタスクがCPUを占有することはない。
- task03:タッチセンサタスク どのタッチセンサが反応があったかを調べ、回避タスクへとその情報を送る
- task04:ロータリーエンコーダタスク ロータリーエンコーダの値を取り、BBへと書きこむ。その情報は自己位置検索タスクにて座標計算二つ買われる
- task05:PWMモータ駆動タスク タスク起動時に受け渡される引数によって指定される左右車輪の速度データをPWM回路に書き込む。
- 高レベルタスク
- task06:自己位置検出タスク 一定時間ごとに起動され、ロータリエンコーダの値から自己位置のx、y座標と姿勢角をBBに書き込む。また、過去の座標の値を別のBBへ一度退避させる。
- task07: 軌道計算タスク 現在の座標、過去の座標を元に、どのような軌道をとるか計算する。これはいったん行動計画タスクへと送られ、そこから軌道移動タスクへと送られる
- task08 :軌道移動タスク 計算された値を元に、その軌道を移動する。座標を元に正しい経路をとおっているか確認する
- task10: 軌道復帰タスク ポストをとり終えたという条件の元に実行される。ポスト獲得前の座標へと戻ろうとする
- task11: 回避タスク 壁にあたる、もしくは軌道上に障害物があるときに実行される。
- task11:試験走行タスク試験走行用のタスク。各種試験を行うもの。
- メインタスク
- task13:行動計画タスク MIRS本体の行動を決定する。状態遷移図の通り動作させる。
- task14 :例外処理タスク 不正処理があったとときにできうる回復処理を行う。
- マンマシンインターフェース
マンマシンインタフェースとして以下の機能を具備すること。
- 表示機能
- 各センサの状態、自己位置、姿勢角および動作状態の表示。この表示は競技モードにおいても可能とする。ハートビート表示(プログラムが正常に動作していることを示すために、緑色LEDを点滅させる)。
- 動作モード設定機能
- DIPスイッチによるセンサ試験モード、試験走行モード、競技モード1(一回目競技用)および競技モード2(2回目競技用)の設定。
- スタート機能
- 押しボタンスイッチにより動作開始の指示。
下記の試験機能を有する。
- 各センサの状態を表示する機能。
- 左右車輪の回転数と回転方向を独立に試験する機能。
- 一辺1mの正方形をトレースする機能。
- 半径1mの円をトレースする機能。
関連文書 |
---|