名称 | MIRS1604 ソフトウェア詳細設計書 |
---|---|
番号 | MIRS1604-SOFT-0001 |
版数 | 最終更新日 | 作成 | HTML作成 | 承認 | 改訂記事 |
---|---|---|---|---|---|
A01 | 2016.12.14 | 梶田直哉 杉山瀬名 堀住恭平 | 梶田直哉 杉山瀬名 堀住恭平 | 初版 | |
A02 | 2016.12.16 | 梶田直哉 杉山瀬名 堀住恭平 | 梶田直哉 杉山瀬名 堀住恭平 | モジュール構成図の変更、モジュール一覧の修正、会場の方角の変更、Fig.4、Table2、Table3の追加、フローチャートの修正、テスト項目のレイアウトの変更 |
Fig.1 モジュール構成図 |
モジュール名 | 機能 | 新規・変更関数名 | 開発要素 | 引数 | 戻り値 |
---|---|---|---|---|---|
pilot | MIRSの動作全体を制御する。 | 既存のものを使用する。 | |||
brain | 動作シーケンスを管理する。 | void brain() | 新規に作成する。 | なし | なし |
OpenCV | 画像処理を行う。 | int OpenCV_get() (int) OpenCV_create() |
新規に作成する。 | なし | struct{(bool) discovery,(unsigned int) size,(int) x,(int) y} 成功:1、失敗:-1 |
device | デバイスファイルをOpen/Closeする。 |
int device_infrared_open()
int device_infrared_close() int device_infrared_get() int device_camera_open() int device_camera_close() int device_camera_get() |
赤外線センサとwebカメラを追加する。 |
なし
なし なし なし なし なし |
なし
なし なし なし なし なし |
direction | 正体補正をする。 | int direction_correct(int dist) | オムニホイールに変更するため、対応させる。 | 正体補正する距離[cm] | 成功:1、失敗:-1 |
infrared | 赤外線センサの信号を処理する。 |
int infrared_get(int infared_number)
void infrared_create() |
新規に作成する。 |
赤外線センサ番号
なし |
ある:1、ない:-1
なし |
uss | 超音波計測を行う。 | int uss_get(int uss_port) | 超音波センサの数が4個になったため、対応させる。 | センサー番号 | 計測距離[cm] |
io | ON/OFF IOデバイスのデータを処理する処理する。 | 既存のものを使用する。 | |||
number | 数字認識を行う。 | int number_detect(int dist,int camera_number) | カメラを増やすため対応させる。 | カメラからボードまでの距離[cm]カメラ番号 | 成功:1,失敗:-1 |
comm | サーバとの通信を行う。 | 既存のものを使用する。 | |||
distance | 走行距離を管理する。 |
void distance_get(struct distance_data *distance_data)
void distance_reset() |
オムニホイールに変更するため対応させる。 | 距離データ なし |
なし
なし |
vel_ctrl | モーターの速度制御を行う。 |
void vel_ctrl_set(float vel_ref_f, float vel_ref_b,float vel_ref_l,float vel_ref_r)
void vel_ctrl_mod(float vel_mod_f, float vel_mod_b,float vel_mod_l,float vel_ctrl_mod_r) void vel_ctrl_get_speed(float *speed_f, float *speed_b,float *speed_l,float *speed_r) |
オムニホイールに変更するため対応させる。 |
前後左右の速度指定値[cm/s]
前後左右の速度指定値[cm/s] 前後左右の速度指定値[cm/s] |
なし
なし なし |
encoder | エンコーダ値を管理する。 |
void encoder_get(struct encoder_data *encder_data)
void encoder_reset() |
オムニホイールに変更するため対応させる。 |
エンコーダデータ
なし |
なし
なし |
omni_ctrl | オムニホイールの制御を行う。 |
void omni_ctrl_set(float speed_v,float speed_w)
void omni_ctrl_dist(float dist) void omni_ctrl_unset_dist() void omni_ctrl_get_endflag() void omni_ctrl_create() void omni_ctrl_cancel() void omni_ctrl_stop() void omni_ctrl_reset() |
新規に作成する。 |
縦方向の走行スピード[cm/s],横方向の走行スピード[cm/s]
距離[cm] なし なし なし なし なし なし |
なし
なし なし なし なし なし なし なし |
motor | モーターの管理を行う。 | void motor_drive(int u_f,int u_b,int u_l,int u_r) | モーターの数を4個に変更するため対応させる。 | 前後左右のモータに与えるpwm値(pwm値範囲:-128~127) | なし |
Fig.2 会場の方角 |
Fig.3 左側スタート時のカメラとモータの対応関係 |
Fig.4 右側スタート時のカメラとモータの対応関係 |
左 | 右 |
---|---|
A | B |
B | A |
左 | 右 | モータの出力の変更 |
---|---|---|
2 | 1 | なし |
4 | 3 | なし |
1 | 4 | なし |
3 | 2 | なし |
Fig.5 現場急行 |
Fig.6 数字認識 |
Fig.7 入場 |
Fig.8 巡回A |
Fig.9 巡回B |
Fig.10 追従 |
Fig.11 巡回復帰行動 |