沼津高専 電子制御工学科 | ||||||||
|
||||||||
改訂記録 | ||||||||
---|---|---|---|---|---|---|---|---|
版数 | 作成日 | 作成者 | 承認 | 改訂内容 | ||||
A01 | 2000.05.30 | 桑名 良和 | 初版 | |||||
A02 | 2000.06.16 | 桑名 良和 | 不正と思われるところを大幅に更新。まだ不正個所存在 | |||||
A03 | 2000.09.22 | 桑名 良和 | 走行試験用のソフトを設計上変更があったところを更新 | |||||
B01 | 2000.12,21 | 桑名 良和 | ソフトの仕様変更 | |||||
B02 | 2001.01.22 | 桑名 良和 | ソフトの仕様変更 | |||||
B03 | 2001.01.25 | 桑名 良和 |
ソフトの仕様変更
|
|||||
B04 |
2001.02.06 |
桑名 良和 |
ソフトの仕様変更
|
低レベルタスク
タスク | ナンバー | イニシャライズ | ノーマル | タイマ | 割り込み | 優先順位 |
---|---|---|---|---|---|---|
初期化(MMI) | 00 | ○ | ○ | × | 〇 | 2 |
赤外線センサ | 01 | ○ | 〇 | ○ | 〇 | 3 |
超音波センサ | 02 | ○ | 〇 | ○ | ○ | 2 |
タッチセンサ | 03 | ○ | 〇 | ○ | 〇 | 3 |
ダミータスク | 04 | ○ | × | × | × | 6 |
PWMモータ駆動 | 05 | ○ | ○ | 〇 | × | 6 |
自己位置検索 | 06 | ○ | ○ | 〇 | × | 2 |
軌道移動 | 07 | ○ | ○ | 〇 | × | 2 |
ポスト判断 | 08 | ○ | ○ | 〇 | × | 3 |
移動 | 09 | 〇 | 〇 | 〇 | × | |
ポスト獲得 | 10 | ○ | ○ | 〇 | × | 3 |
軌道復帰 | 11 | ○ | ○ | 〇 | × | 3 |
回避 | 12 | ○ | ○ | × | × | 1 |
行動計画 | 13 | ○ | ○ | 〇 | × | 4 |
例外処理 | 14 | ○ | ○ | × | × | 1 |
軌道復帰タスク2 | 15 | ○ | ○ | ○ | × | 3 |
コマンド名 | コード (HEX) | サブコマンド | 機能 | |
データ分類 | 01 | any | non | 一回目、二回目か、判定し、必要なデータであるかないか判断、分別をおこなう。 |
初期化 | 02 | any | non | 不要なデータを削除する |
番号 | 内容 |
1 | LED表示データ |
2 | 初期タッチセンサ表示データ |
ロータリースイッチNo | 表示データ |
0 | 姿勢角 |
1 | Y座標 |
2 | X座標 |
3 | USS No1 |
4 | USS No2 |
5 | USS No4 |
6 | TS Data |
コマンド名 | コード (HEX) | サブコマンド | 機能 |
番号 | 内容 |
0 | 赤外線データ |
コマンド名 | コード (HEX) | サブコマンド | 機能 |
測定開始 | 01 | n(チャネル) | 指定されたチャネル番号のセンサの測定を開始する。 |
番号 | 内容 |
0 | 発進する超音波センサNO |
1 | チャネル1の測定結果[cm] タイムアウト:999 ハードウェアエラー(センサが接続など):888 近すぎ: 777 |
2 | チャネル2の測定結果[cm] 他は同上 |
4 | チャネル3の測定結果[cm] 他は同上 |
6 | チャネル4の測定結果[cm] 他は同上 |
コマンド名 | コマンド(HEX) | サブコマンド | 機能 |
なし | any | any | コマンドなし |
番号 | 内容 |
0 | タッチセンサのデータ |
コマンド名 | コード (HEX) | サブコマンド | 機能 |
自己位置設定 | 01 | n | 自己位置を設定する。nは、float 型の配列へのポインタで、x[cm]、y[cm]、θ[rad]の順で格納されていること。 |
Limit設定 | 02 | n | 自己位置のLimitを設定する。nは、float 型の配列へのポインタで、x[cm]、y[cm]の順で格納されていること。 |
番号 | 内容 |
0 | 位置のX軸データ |
1 | 位置のY軸データ |
2 | 姿勢角データ |
3 | 右のロータリエンコーダのデータ |
4 | 左のロータリエンコーダのデータ |
5 | タッチセンサのデータ |
6 | 方向のデータ(2:前 3:左 0:後 1:右) |
7 | 速度 |
8 | 角速度 |
9 | システムが動き出してからの移動距離(cm) |
コマンド名 | コード (HEX) | サブコマンド | 機能 |
PWM信号発信 | 01 | any | PWMデータ送信 |
番号 | 内容 |
0 | 右の論理デューティ比(変動あり) |
1 | 左の論理デューティ比(変動あり) |
3 | 正転、反転のフラグ |
4 | 右の論理デューティ比(保存用) |
5 | 左の論理デューティ比(保存用) |
6 | 姿勢角保存 |
スタート位置から基本経路を移動。
コマンド
コマンド名 |
コード(hex) |
サブコマンド |
機能 |
初期化 |
01 |
|
これまでの状態をリセットする |
BB使用
番号 |
内容 |
0 |
大まかな区切りの座標データ |
1 |
遷移フラグ |
2 |
バックデータ |
3 |
獲得遷移、回避遷移フラグ |
4 | フラグ2 |
5 | タッチセンサ補正フラグ |
6 | タッチセンサフラグ |
初期設定
モジュール定義
BBのクリア。
HCPチャート
|
ノーマルタスク
モジュール定義
軌道復帰タスクが終わった後、再び初期化を行う
HCPチャート
|
タイマータスク
割り込みタスク
なし
実際に機体を基本経路に沿って動かす。この時、超音波センサ、赤外線センサの割り込みをONにする。
コマンド
コマンド名 |
コード(hex) |
サブコマンド |
機能 |
超音波データ初期化 |
01 |
|
保存してある超音波データを初期化する |
・BB使用
番号 |
内容 |
0 |
超音波2のデータ |
1 |
超音波4のデータ |
モジュール定義
BBのクリア、タスク登録。
HCPチャート
|
ノーマルタスク
モジュール定義
再度このタスクを軌道時に超音波センサのデータをリセットする
HCPチャート
|
タイマータスク
モジュール定義
超音波タスクを呼び出し周囲の確認をする。
HCPチャート
|
割り込みタスク
モジュール定義
無し
HCPチャート
|
コマンド
コマンド名 |
コード(hex) |
サブコマンド |
機能 |
軌道座標保存、TIMEタスク軌道 | 01 |
|
初期化し、TIMERタスクを起動する |
BB使用
番号 |
内容 |
0 |
軌道座標 |
1 | Postdata |
2 | フラグ |
3 | フラグ |
4 | 未使用 |
5 | 姿勢角保存 |
6 | タッチセンナフラグ |
7 | タッチセンサデータ |
モジュール定義
BBのクリア。
HCPチャート
|
ノーマルタスク
モジュール定義
Task8によりPostとみなされた場合起動される。
HCPチャート
|
タイマータスク
割り込みタスク
なし
ポストを獲得するための動作。
ポストの中心を検出
ポストの周りを回る
赤外線センサ受信
ポスト獲得(ポールのスイッチを押す)
LED消灯確認
※一周しても赤外線に反応がなければ軌道復帰タスクを呼び出す。
コマンド
コマンド名 |
コード(hex) |
サブコマンド |
機能 |
初期化 | 01 |
|
Post獲得のための初期化を行う |
番号 |
内容 |
0 |
起動座標保存 |
1 |
フラグ |
2 |
フラグ2 |
3 |
距離保存 |
4 | 獲得フラグ |
5 | 補正フラグ |
6 | タッチセンサフラグ |
モジュール定義
BBのクリア、タスク登録。
HCPチャート
|
ノーマルタスク
モジュール定義
初期化を行う
HCPチャート
|
タイマータスク
モジュール定義
Postの周りを回転運動する。その間赤外線の割り込みを監視し、
反応があれば押しに行く。LEDの消灯(赤外線の信号が無くなる)を確認したら
軌道復帰タスクを起動する。
HCPチャート
|
割り込みタスク
モジュール定義
LEDの発見。
HCPチャート
|
ポールを獲得(LED消灯確認)後、基本経路に戻る動作。
ポールを周回していた軌道まで戻る
右と左のどちらが基本経路に近いかを割り出す
回避動作をふまえ、基本経路へ戻る
コマンド
コマンド名 |
コード(hex) |
サブコマンド |
機能 |
|
初期化 | 01 | データをリセットする |
BB使用
番号 |
内容 |
00 |
起動座標 |
01 |
Flag |
02 | TSFlag |
03 | TSDATA |
04 | 遷移フラグ |
初期設定
モジュール定義
タイマータスク、割り込みタスク登録。
HCPチャート
ノーマルタスク
タイマータスク
割り込みタスク
ポール、壁に突き当たったときそれらを回避する。
コマンド
コマンド名 |
コード(hex) |
サブコマンド |
機能 |
回避 |
01 |
|
障害物を回避し基本軌道へ戻る |
BB使用
番号 |
内容 |
00 |
起動座標 |
01 |
Flag |
02 | TSFlag |
03 | TSDATA |
04 | 遷移フラグ |
なし
初期設定
モジュール定義
タイマータスク、割り込みタスク登録。
HCPチャート
ノーマルタスク
モジュール定義
障害物を回避し基本軌道へ戻る。
HCPチャート
タイマータスク
モジュール定義
超音波センサによる割り込みを受けて軌道確保タスクを呼び出す。
HCPチャート
割り込みタスク
モジュール定義
赤外線センサ、タッチセンサによる割り込み処理を行う。
HCPチャート
コマンド名 | コード (HEX) | サブコマンド | 機能 |
座標復帰 | 01 | 座標が検出できなくなったときの復帰処理 | |
例外処理1(名前未定) | 02 | ロータリーエンコーダの値がX秒変化がないときに復帰動作を行う |
番号 | |
内容 | |
0 |
起動フラグ状態 |
1 | 遷移条件カウント |
2 | 移動距離フラグ |
図9.1 inzt05モジュールHCPチャート(ポストスクリプト
コマンド名 | コード (HEX) | サブコマンド | 機能 |
移動不能回避 | 01 | any | 一定時間座標の変化等がない場合実行。全力移動を試みる |
超音波センサ受け取り不能回復 | 02 | n | 4個の超音波センサの反応がすべてないときに実行。 |
PWM信号の異常 | 03 | n | PWM信号に異常があるときに実行 |
赤外線センサ異常 | 04 | n | 常に赤外線センサが入っているときに実行 |
座標位置異常 | 05 | n | 過去の座標と現在の座標が大幅に異常があるときに実行 |
以下検討中 | 06 | n |
関連文書 |
---|