MIRS1805 管理台帳へ戻る
名称 MIRS1805 標準機製作報告書
番号 MIRS1805-REPT-0001

最終更新日:2018.7.27

版数 最終更新日 作成 承認 改訂記事
A01 2018.7.27 佐野元康 初版
A02 2018.7.27 佐野元康 青木先生

目次


  1. はじめに

    本ドキュメントは、MIRS1805の標準機製作報告書である。



  2. 作業担当

    以下に作業担当を記す。

    table1 作業担当
    担当箇所 担当者
    電源ボード 佐々木謙人、佐野元康
    Arduino 鈴木文隆、宮林宏行
    Raspberry Pi 杉山矢紘、渡邊昌浩
    メカ 長野俊平、増田大勢


  3. 電源ボード

    3.1 製作

    MIRSMG4D 駆動系 電源ボードをもとに製作した。
    この基板の回路はスイッチを用いてバッテリーの電源のON/OFFを切り替え、モータ制御ボードとArduinoへ電気を送る。
    授業スライドを元に回路を作成した。
    素子をつけた後にスズメッキ線で素子間を導通させる時に抵抗のあしを利用して、無駄な半田付けを減らしきれいに見えるようにしたこと、
    導通させる際に1つ繋いだら導通の確認をするというのを繰り返して問題箇所の修正を容易にしたことを工夫した。
    なお、駆動用バッテリーの電圧(入力)は8.02[V]なのに対してモーターに入力される値(出力)は7.99[V]であった。
    完成した基板を以下に示す。裏の画像は、上下をそのままに180度回転させたものである。


    fig.1 電源ボード(表)


    fig.2 電源ボード(裏)

    Arduinoの単体試験の際にスイッチが壊れてしまったので、電源ボードを作り直した。
    その際、スイッチの構造(内部の回路)が変わり、基盤の回路も変更したので、最終的に完成した基板は、fig.3,4のようになった。
    駆動用バッテリーの電圧(入力)に対しモーターに出力される値(出力)はtable2のようになった。
    スイッチが壊れてしまったこと、作り直す際にLEDを壊してしまったことを不具合報告書にそれぞれ示す。
    table2 入力電圧と出力電圧
    入力電圧[V] 出力電圧[V]
    8.34 8.34
    8.33 8.33
    8.22 8.22


    fig.3 電源ボード(表) 改


    fig.4 電源ボード(裏) 改

    3.2 導通試験

    作成した後、繋がってはいけないところの確認をしてどの箇所も短絡されていた。
    また、ショートや断線も無かったので導通チェックを完了した。

    3.3 動作試験

    バッテリーを繋いでの試験では、スイッチをONにしたときにLEDが点灯し、モーターが回ることが確認できた。
    よって試験は成功した。



  4. Arduino

    4.1 製作

    この基板の回路はモーターを駆動させる。
    Arduino のセットアップとデバイス接続を元に回路を作成した。
    半田付けの前に紙に素子をつける場所を書いてずれないようにしたこと(fig.7)を工夫した。
    完成した基板を以下に示す。裏の画像は、上下をそのままに180度回転させたものである。


    fig.5 Arduinoユニバーサル基板(表)



    fig.6 Arduinoユニバーサル基板(裏)

    fig.7 Arduino下書き
    4.2 導通試験

    テスターを用いて導通試験をしたが、ショートや断線は無く、繋がってはいけないところでは短絡されていた。
    また、RaspberryPiの入力電圧はモバイルバッテリー電圧の半分に近い値になったため、電圧も正常であることがわかった。
    このとき、モバイルバッテリーの電圧(5[V])を半分にする理由は、RaspberryPiへの入力電圧は0~3.3[V]でなければならず
    5[V]の電圧が入力されるとRaspberryPiが壊れるので、それを防ぐためである。


    4.3 動作試験

    Arduino単体での動作試験をもとにArduinoの配線を行った。
    ダウンロードしたファイルmg4_arduino_ver310.zipディレクトリ内のテストプログラムを用いてArduino単体での動作試験を行いすべて正常に動作することを確認した。
    define.h でギア比(T_E_RATIO)の値を1:27になっていたので、使用しているモーターのギア比である1:14に調整した。 動作試験の結果をtable3に示す。
    table3 Arduino単体試験結果
    試験名 使用したコマンド名 試験内容 結果 判定
    モーター動作試験 test_motor Arduinoに任意の出力値を入力しモーターの確認をする。
    また出力値を変化させたときのモーターの回転を確認する。
    出力値を50にしてモーターが正常に動作することを確認できた。
    また100にした際にはモーターの回転速度は約2倍になった。
    エンコーダ試験 test_encoder 機体のタイヤを手動で1回転させた際のエンコーダの値を読み取る。 table4のようになった。
    距離計測試験 test_distance 機体のタイヤを手動で1回転させた際、エンコーダで読み取った値と実際のタイヤの一周の長さを比較する。 タイヤの直径の実測値を測ると87.85mmであったのでπをかけてタイヤの円周を調べると27.60cmとなった。
    またエンコーダの値はtable5のようになった。
    速度制御試験 test_vel_ctrl arduinoに任意の速度を与え、エンコーダの値と比較する Arduinoに[25cm/s]の速度を与えた結果、平均は左は24.58、右は25.39になったので誤差はそれぞれ1.68[%]、1.55[%]になった。
    測定した結果は速度制御試験結果に示す。
    走行制御試験 test_run_ctrl arduinoに25[cm/s]の速度で200[cm]の距離を直進させる。また、π/6[rad/s]の角速度でπ/2[rad]回転させる。
    理論的に求められる時間と実際の動作時間を比較する。併せて実際に移動した距離の結果も示す。
    直進させた結果table6のようになり、回転させた結果table7のようになった。
    なお、直進させたときの理論値は8[s]、回転させたときの理論値は3[s]である。
    直進させたときの理論値との誤差が大きくなった原因はストップウォッチを押す
    タイミングと動き出す、止まるタイミングがずれたからだと考えられる。
    バッテリー値試験 test_batt テスターで計測した駆動用バッテリー電圧とArduinoで読み取った電圧を比較する。 table8のようになった。
    table4 エンコーダテスト結果
    番号 左に対する右の回転比
    1 331 355 1.072
    2 326 354 1.085
    3 332 359 1.081
    4 359 356 0.991
    5 357 359 1.005
    6 356 353 0.992
    7 354 358 1.011
    8 356 357 1.003
    9 357 359 1.006
    10 355 356 1.003
    11 359 356 0.992
    平均 349.3 356.5 1.022
    table5 距離計テスト結果
    番号 左[cm] 左と実測値の誤差[%] 右[cm] 右と実測値の誤差[%]
    1 27.0 2.17 27.2 1.45
    2 26.9 2.54 27.5 0.36
    3 27.1 1.81 28.0 1.45
    4 27.3 1.09 26.8 2.90
    5 27.1 1.81 26.9 2.53
    6 27.2 1.45 27.2 2.54
    7 26.7 3.26 26.8 2.90
    8 27.0 2.17 27.1 1.81
    9 27.2 1.45 27.1 1.81
    10 26.7 3.26 27.0 2.17
    平均 27.0 2.10 27.2 2.00
    table6 走行テスト(直進)結果
    番号 動作時間[s] 理論値との誤差[%] 実際の移動距離[cm]
    1 8.86 10.75 202
    2 8.81 10.13 202
    3 8.70 8.75 202
    4 8.86 10.75 202
    5 8.70 8.75 202
    6 8.78 9.75 202
    7 8.96 12.0 202
    8 8.81 10.13 202
    9 8.82 10.25 202
    10 8.73 9.13 202
    平均 8.80 10.04 202
    table7 走行テスト(回転)結果
    番号 左回転動作時間[s] 理論値との誤差(左)[%] 実際の左回転角度[deg] 右回転動作時間[s] 理論値との誤差(右)[%] 実際の右回転角度[deg]
    1 3.35 11.67 89 3.41 13.67 90
    2 3.33 11 92 3.37 12.33 90
    3 3.30 10 91 3.26 8.67 90
    4 3.34 11.33 92 3.33 11.03 89
    5 3.40 13.33 91 3.23 7.67 90
    6 3.31 10.3 93 3.28 9.33 90
    7 3.17 5.67 91 3.47 15.67 91
    8 3.16 5.33 90 3.32 10.67 89
    9 3.34 11.33 91 3.34 11.33 91
    10 3.26 8.67 90 3.29 9.67 90
    平均 3.30 9.87 91 3.33 11.00 90
    table8 バッテリー値試験
    テスターの電圧の値[V] Arduinoで読み取った値[V] テスターの電圧値に対する誤差[%]
    7.89 8.25 4.56
    7.83 8.20 4.73
    7.61 8.00 5.12
    作業中にエンコーダにつながっているジャンパ線が断線していること、駆動用電源の充電器が壊れていることが分かったので、不具合報告書に示す。
    また、再実験中にArduinoと電源ボードの+と−を反対につなげた、もしくは導通チェックをし直す際に
    電源をつなげたままチェックをしたことから電源ボードのスイッチが壊れてしまったと考えられるのでこれも 不具合報告書に示す。




  5. Raspbery Pi

    5.1 製作

    この基板の回路はタッチセンサや超音波センサセンサなどの値を読み取り、I2Cレベル変換器で双方向の電圧変換を行う。
    RaspberryPi のセットアップとデバイス接続をもとにユニバーサル基板を製作した。
    ジャンパ線の長さを必要最低限に抑えて不具合の可能性を減らすこと、無駄な半田付けを減らしきれいに見えるようにしたこと、
    半田付けの前に紙に素子をつける場所を書いてずれないようにしたこと(fig.10)を工夫した。
    完成した基板を以下に示す。裏の画像は、上下をそのままに180度回転させたものである。


    fig.8 RaspberryPiユニバーサル基板(表)


    fig.9 RaspberryPiユニバーサル基板(裏)


    fig.10 RaspberryPi下書き

    5.2 導通試験

    テスターを用いて導通試験をした。
    導通試験では、レベル変換機から各超音波センサコネクタのSDA,SCL,Vcc,GNDピンが導通していること、
    Raspberry PiのGPIOピンとレベル変換機が正しく配線、導通されていること
    導通してはいけないところで短絡されているかをチェックした。
    導通試験は不具合なく成功した。

    5.3 セットアップ

    演習室のPCを用いてマイクロSDにRaspbianをインストールし、その後マイクロSDをRaspberryPiに挿入しRaspberry Pi のインストールとセットアップ をもとにRasbpery Piのセットアップを行った。

    5.4 単体動作試験

    Raspberry Pi での動作試験をもとに動作試験を行った。
    ダウンロードしたファイルmg4_pi_ver3.0.tar.gzディレクトリ内のテストプログラムを用いてRaspberry Pi単体での動作試験を行いすべて正常に動作することを確認した。
    table9 RaspberryPi単体試験結果
    試験名 使用したコマンド名 試験内容 結果 判定
    タッチセンサ試験 test_io 5[回/s]で押しボタンスイッチを10回押すというテストを5回行う。
    複数のスイッチを同時に使用した場合も正常に動作することを確認する。
    スイッチの数が1つでも複数でも全ての試験で正常に動作することを確認できた。
    なお、押しボタンスイッチが1個しかなかったので他の2ピンコネクタにはスズメッキ線を用いて導通させて、複数のスイッチをつないでいるようにした。
    正対補正試験 test_dir_num 正対補正を行って壁に対して垂直に向き、指定した距離だけ壁から離れて止まるのを利用して超音波センサの性能を確認する。 table10のようになった。
    table10 正対補正試験結果
    指定距離[cm] 実距離[cm] 止まったときの超音波センサの値[cm] センサの値と実距離の誤差[%]
    50 53 51.7 2.45
    60 61 61.7 1.15
    70 71 71.7 0.99
    80 82 82.3 0.36
    90 91 91.7 0.76
    100 100 101.7 1.70
    110 110 111.7 1.55
    180 179 181.5 1.40
    220 219 221.7 1.23
    250 249 253.0 1.61
    270 271 274.7 1.37
    280 279 282.4 1.22
    320 310 321.4 3.68



  6. シャーシ取り付け

    6.1 バッテリーホルダーの製作

    SolidWorksを用いてモバイルバッテリーと駆動用バッテリーホルダーの設計をし、3Dプリンターで製作した。


    fig.11 モバイルバッテリーホルダーの三面図


    fig.12 駆動用バッテリーホルダーの三面図


    fig.13 駆動用バッテリーホルダー(左)モバイルバッテリーホルダー(右)


    fig.14 駆動用バッテリーの固定


    fig.15 モバイルバッテリーの固定

    6.2 モーターマウントサポータのタップ加工

    モーターマウントサポータをモーターと固定させるためにモーターマウントサポートにタップ加工(ねじ切り)をした。

    6.3 組み立て

    MIRSMG4D 標準機メカニクス解説MIRSMG4D 標準機組み立て手順書をもとにボードを組み立てた。
    ボールキャスターの高さを走行用タイヤと高さをあわせるためのスペーサー(白い板)(fig.19)を取って走行が安定するようにした。(fig.20)
    また、電源ボードとボールキャスターが接触すると電源がつかなくなるのでゲイン調整中はビニールテープをはって接触しないようにした。(fig.21)
    そして標準機製作完了時には、スペーサー(白い円筒)を長くして電源ボードの位置を高くし、接触しないように作り直した。(fig.22) 作業途中の写真を以下に示す。


    fig.16 組み立て(1段目)


    fig.17 組み立て(2段目)


    fig.18 組み立て(1,2段目)


    fig.19 ボールキャスターの高さ調整(変更前)


    fig.20 ボールキャスターの高さ調整(変更後)


    fig.21 ボールキャスターと電源ボードの絶縁


    fig.22 ボールキャスターと電源ボードの絶縁 改



  7. 動作確認

    7.1 RaspberryPiとArduinoの合同動作試験

    Raspberry Pi での動作試験をもとに ArduinoとRaspberry Piを接続して動作試験を行った。
    RaspberryPiとArduinoをつなげてArduinoの単体試験のソースの「slave()」関数のみのこし、ほかの関数はすべてコメントアウトする。
    test_requestのプログラムをRaspberryPiで実行し、Arduinoに動作指令を出す。
    ためしに走行させたところ、やや右に曲がりながら進んだので、モータの回転比を調整して直進する回転比を見つけた
    結果をtable11に示す。進み方の様子は班員(佐野、宮林)が見た所感である。
    table11 ギアの回転比結果
    左に対する右の回転比 進み方の様子
    1 やや右に曲がる
    1.028 右に曲がる
    0.9 左に曲がる
    0.98 左に曲がる
    0.99 やや左に曲がる
    0.997 やや左に曲がる
    0.9997 まっすぐ進む
    test_requestで25[cm/s]の速度で200[cm]の距離を直進させる。また、π/6[rad/s]の角速度でπ/2[rad]回転させる。
    理論的に求められる時間と実際の動作時間を比較する。併せて実際に移動した距離の結果も示す。
    直進させた結果table12のようになり、回転させた結果table13のようになった。
    なお、直進させたときの理論値は8[s]、回転させたときの理論値は3[s]である。

    table12 走行テスト(直進)結果
    番号 動作時間[s] 理論値との誤差[%] 実際の移動距離[cm]
    1 8.76 9.5 200
    2 8.92 11.5 201
    3 8.66 8.25 201
    4 8.52 6.5 202
    5 8.78 9.75 200
    6 8.9 11.125 201
    7 8.67 8.375 200
    8 8.80 10 200
    9 8.74 9.25 200
    10 8.86 10.75 201
    平均 8.76 9.5 200.6
    table13 走行テスト(回転)結果
    番号 左回転動作時間[s] 理論値との誤差(左)[%] 実際の左回転角度[deg] 右回転動作時間[s] 理論値との誤差(右)[%] 実際の右回転角度[deg]
    1 3.65 21.67 90 3.61 20.33 90
    2 3.38 12.67 90 3.63 21 90
    3 3.41 13.67 90 3.47 15.67 90
    4 3.62 20.66 91 3.63 21 90
    5 3.69 23 90 3.43 14.33 91
    平均 3.55 18.33 90.2 3.554 18.467 90.2

    7.2 標準機統合試験のゲイン調整

    ゲイン調整を行った結果をtable14に示す。がたつきの様子は班員(佐野、宮林)が見た所感である。
    0~40のいずれの値であってもがたつき具合が変わるもののまっすぐ進んだ。
    作業中にエンコーダの検出ができていないと分かったので、不具合報告書に示す。 パルス抜けの様子をmov.1に示す。mov.1 パルス抜け
    エンコーダを エンコーダ出力の確認に沿って直した。 直してもしばらくしたらパルス抜けが起こるのでモータを交換した。
    table14 ゲイン調整結果
    Ksの値 がたつきの様子
    0 がたつきがほとんどない(基準にする)
    5 ほとんどない
    10 ほとんどない
    11 ほとんどない
    12 たまにがたつきがある
    13 がたつく回数が増えた
    14 がたつく回数が増えた
    15 がたつく回数が増えた
    16 がたつく回数がさらに増えた
    20 小刻みにゆれる
    30 がたつきが大きくなった
    40 がたつきが大きくなった
    調整を終えた機体での50cm/sの速度で200cmの前進を以下の動画に示す。
    mov.2 前進の様子

  8. 標準機製作完了

    走行動作確認まで終えたので標準機製作が完了した。
    標準機を以下に示す。


    fig.23 標準機



  9. 標準機の仕様

    直径400[mm] 高さ186[mm]
    駆動用バッテリーは1つは充電された状態で1時間半持ち、もう1つは充電された状態で約2時間持った。
    (2時間使えるバッテリーには黄色のテープで目印をつけておいた。)
    モーターに入力される電圧は駆動用バッテリーの電圧と同じ値である。
    超音波センサが読み取る値は実際の距離より3.68[%]ほど大きい。
    速度と距離を指定して走行、回転させると速度は指定したよりも10%遅くなるが距離、回転角度はほぼ正確である。
    エンコーダの分解能は360/(13[パルス/回転]×ギア比14)=1.978[deg]である。



  10. 不具合報告書

    それぞれの不具合報告書を以下に示す。

    ジャンパ線の断線
    エンコーダの検出不良
    スイッチの破損
    LEDの焼死
    Arduino電源の充電器の破損
    タイヤの歪み


  11. 標準機作製報告会

    報告会資料を以下のリンクに示す。

    プレゼンテーション資料