名称 MIRS1403 走行制御モジュール詳細設計書
番号 MIRS1403-SOFT-0003

最終更新日:2015.2.4

版数 最終更新日 作成 承認 改訂記事
A01 2014.12.22 野澤 初版
A02 2014.12.24 野澤 大林教員 関数名の修正
A03 2015.2.4 野澤 仕様変更についての追記を行った。

目次

  1. はじめに
  2. モジュール概要
  3. モジュール仕様
  4. 試験仕様
  5. プログラム

  1. はじめに

    本ドキュメントは、MIRS1403の走行制御モジュールの詳細設計書である。
    尚、本ドキュメントにおける設計計画は実質的に廃止した。詳細については、以下を参照。
    MIRS1403 ソフトウェア開発報告書

  2. モジュール概略

    本モジュールは、機体の走行を制御する機能を提供する。

  3. モジュール仕様

    1. 構造体・列挙体

    2. 構造体:Run_state

    3. 構造体:Run_state
      修飾子 名称 概要 備考
      typedef struct {...} Run_state 走行状態構造体
      メンバ名 概要 備考
      int .velocity 機体走行速度 [m/sec]
      int .angular_velocity 機体回転角速度 [rad/sec]
      int .distance 移動距離 [m]
      int .rotation 回転量(右回転を正とする) [rad]

    4. 構造体:Run_PIDstate

    5. 構造体:RunPIDstate
      修飾子 名称 概要 備考
      typedef struct {...} Run_PIDstate モータPID制御情報構造体
      メンバ名 概要 備考
      double .error_P 比例項
      double .error_I 積分項
      double .error_D 微分項
      double .u 制御入力
    6. 定数

      PIDゲイン
      修飾子 名称 概要 備考
      #define RUN_PID_GAIN_P 比例ゲイン
      #define RUN_PID_TIME_I 積分時間
      #define RUN_PID_TIME_D 微分時間

    7. 関数・関数型マクロ

      値指定関連の関数
      修飾子・戻値 名称・引数 概要 修飾子・戻値の詳細 引数の詳細 備考
      int set_velocity(Run_state* run_state, int motor_velocity) 目標速度を指定する関数 正常終了時:0
      異常終了時:-1
      motorstate: モータ状態構造体
      motor_velocity: 目標速度 [m/sec]
      int set_angular_velocity(Run_state* run_state, int motor_angular_velocity) 目標角速度を指定する関数 正常終了時:0
      異常終了時:-1
      motorstate: モータ状態構造体
      motor_angular_velocity: 目標角速度 [rad/sec]
      int set_distance(Run_state* run_state, int distance) 目標走行距離を指定する関数 正常終了時:0
      異常終了時:-1
      motorstate: モータ状態構造体
      distance: 目標走行距離 [m]
      int set_rotation(Run_state* run_state, int rotation) 目標回転角を指定する関数 正常終了時:0
      異常終了時:-1
      motorstate: モータ状態構造体
      rotation: 目標回転角 [rad]
      Run_PIDstate run_PID_inital() PID情報を初期化する関数 正常終了時:0
      異常終了時:-1
      走行関連の関数
      修飾子・戻値 名称・引数 概要 修飾子・戻値の詳細 引数の詳細 備考
      double run_straight(Run_state* run_state, Run_PIDstate* run_pidstate) 指定距離直進走行する関数 正常終了時:移動距離
      異常終了時:移動距離(移動していない場合:NAN)
      motor: モータ構造体
      motorstate: モータの状態構造体
      double run_rotation(Run_state* run_state, Run_PIDstate* run_pidstate) 指定距離回転走行する関数 正常終了時:回転距離
      異常終了時:NAN
      motor: モータ構造体
      motorstate: モータの状態構造体
      int run_random_walk(Run_state* run_state, Run_PIDstate* run_pidstate, int endflag) ランダムに走行する関数 正常終了時:0
      異常終了時:-1
      motor: モータ構造体
      motorstate: モータの状態構造体
      endflag: 走行終了処理の為のフラグ
      int run_suspension() 走行を停止する関数 正常終了時:0
      異常終了時:-1
      機体姿勢補正関連の関数
      修飾子・戻値 名称・引数 概要 修飾子・戻値の詳細 引数の詳細 備考
      int direction_correct(USS_value uss_value, int direction) 正体補正をする関数 正常終了時:0
      異常終了時:-1
      uss_value: 超音波センサ距離データ構造体
      direction: 正体補正をする方向(方向は超音波センサのポート番号と対応する。)

  4. 試験仕様

    1. 試験用プログラム

    2. 試験用プログラムの詳細を以下に示す。
      試験用プログラム
      ファイル名 試験内容 合格基準 不合格時の対処法 備考
      test_run_straight 指定距離を直進できるかを確認する。
      数種類の距離を指定し、直進させ、合否を決定する。
      指定した距離を走行した場合に合格とする。
      ただし、モータの個体差等により生じた誤差は許容する。
      各デバイスの接続状態の確認及びシステムの再起動を行い、再度試験を行う。
      上記の方法で改善が見られないようならば、その時に対処法を考える。
      test_run_rotation 指定距離を回転できるかを確認する。
      数種類の距離を指定し、回転させ、合否を決定する。
      指定した距離を走行した場合に合格とする。
      ただし、モータの個体差等により生じた誤差は許容する。
      各デバイスの接続状態の確認及びシステムの再起動を行い、再度試験を行う。
      上記の方法で改善が見られないようならば、その時に対処法を考える。
      test_correct 正体補正が可能かを確認する。
      数種類の距離を指定し、正体補正をし、合否を決定する。
      指定した距離正体補正が成功した場合に合格とする。。
      パラメータの再調整を行い、再度試験を行う。
      上記の方法で改善が見られないようならば、その時に対処法を考える。

    3. デバッグ処理

    4. コーディング及び全モジュールについてのドキュメントの承認を得た後、必要と思われるデバッグ処理の詳細を追記する。

  5. プログラム

    プログラムについては、以下を参照。
    MIRS1403 ソフトウェア開発報告書

▲上へ

MIRS1403ドキュメント管理台帳