1

公立はこだて未来大学 2012 年度 システム情報科学実習
グループ報告書
Future University Hakodate 2012 System Information Science Practice
Group Report
プロジェクト名
人をサポートするシステムの開発
Project Name
Human Support System
グループ名
自律走行車の開発
Group Name
Development of an autonomous travel system
プロジェクト番号/Project No.
5-A
プロジェクトリーダ/Project Leader
長田昌浩
b1010162
Masahiro Nagata
グループリーダ/Group Leader
b1010046
伊藤大輔
Daisuke Ito
グループメンバ/Group Member
b1010046
伊藤大輔
Daisuke Ito
b1010162
長田昌浩
Masahiro Nagata
b1010213
大柳亮輔
Ryosuke Oyanagi
b1010220
高橋秀友
Hidetomo Takahashi
指導教員
長崎健准教授 和田雅昭教授
佐藤仁樹教授
Advisor
Takeshi Nagasaki Masaaki Wada Hideki Sato
提出日
2013 年 1 月 16 日
Date of Submission
January 16, 2013
概要
電動 4 輪モデルカー (走行体と呼ぶ) の自律制御を目的として,走行体の動作制御プログラム,
制御用コンピュータと走行体を接続するための電子回路基板,および画像処理プログラムを開
発した.走行体の動作制御システムは走行路を表す 2 本の白線の中心に従って操舵輪を制御す
るシステム (操舵システムと呼ぶ),および走行体が障害物を回避するシステム (障害物回避シ
ステムと呼ぶ) から成る.白線を検知するプログラム,および障害物の手前で停止する機能は
完成した.しかし,操舵システムおよび障害物回避システムは完成しなかったため,自律制御
はできなかった.これは,開発に必要な課題およびメンバーの技術の把握を怠り,開発にかけ
る時間を十分に確保しなかったためである.本プロジェクト活動を通して,目標を達成するた
めに必要なスキルの重要性を認識できた.
キーワード
自律制御,電子回路,操舵システム,障害物回避システム
(※文責: 長田昌浩)
-i-
Abstract
We developed a control program for an electric model car, an electronic circuit connecting a control computer and the car, and an image processing program for autonomous
control of the car. The control system consists of tow controllers to adjust the steering
wheel according to the center of two white lines representing a track (the steering system) and to avoid an obstacle (the obstacle avoidance system). A white line detection
program and a brake function were completed. However, the steering system and the
obstacle avoidance system were not completed. We thus could not achieve the aim of
autonomous control. This is because we didn’t comprehend problems required for the
development and member’s skills. As a result, we didn’t spend enough time to achieve
the aim. We understood the importance of the skills required for achieving the aim
through this project.
Keyword
autonomous control, electronic circuit, the steering system, the obstacle
avoidance system
(※文責: 伊藤大輔)
- ii -
目次
第1章
背景
1
1.1
該当分野の現状と従来例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
本グループの背景
1
第2章
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
到達目標
2
2.1
本グループにおける目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.2
通常の授業ではなく,プロジェクト学習で行う利点 . . . . . . . . . . . . . . . . .
2
2.3
具体的な手順・課題設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.4
課題の割り当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
第3章
課題解決のプロセスの概要
5
第4章
課題解決のプロセスの詳細
8
4.1
全体課題の概要とプロジェクト内における位置づけ . . . . . . . . . . . . . . . . .
8
4.2
各人の課題の概要とプロジェクト内における位置づけ
. . . . . . . . . . . . . . .
8
4.3
全体課題解決過程の詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4.4
担当課題解決過程の詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
4.4.1
伊藤大輔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
4.4.2
長田昌浩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
4.4.3
大柳亮輔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.4.4
高橋秀友 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
担当課題と他の課題の連携内容 . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.5.1
伊藤大輔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.5.2
長田昌浩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.5.3
大柳亮輔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.5.4
高橋秀友 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.5
第5章
結果
33
5.1
プロジェクトの結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.2
成果の評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.3
全体課題の評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.4
担当分担課題の評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.4.1
伊藤大輔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.4.2
長田昌浩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.4.3
大柳亮輔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.4.4
高橋秀友 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
第6章
今後の課題と展望
45
付録 A
新規習得技術
46
- iii -
付録 B
活用した講義
47
付録 C
アンケート結果
48
- iv -
Human Support System
第1章
1.1
背景
該当分野の現状と従来例
自動車はマニュアル車から開発され,その後オートマチック車が開発された.現在はオートマ
チック車が主流の自動車であり,マニュアル車の割合は減少している.オートマチック車はマニュ
アル車と比べてギアの変更,クラッチ操作などの面において運転者の負担が軽減されているとい
える.また SUBARU が開発した EyeSight というシステムのような運転支援システムの開発が進
み,商品化もされている.最近の自動車は人間を支援するシステムが数多く搭載されている.さら
にセンサ情報を用いることにより,運転者を必要としない自律走行自動車も開発されている.
(※文責: 長田昌浩)
1.2
本グループの背景
本グループでは車両を対象とした運転支援システムの開発,及び一般車両をモデル化した走行体
を作製する.運転支援システムの開発を通してセンサ情報の取得,センサ情報の処理の学習及び走
行体の作製を通して組み込みシステムの技術習得を目標とする.
(※文責: 長田昌浩)
Group Report of 2012 SISP
-1-
Group Number 5-A
Human Support System
第 2 章 到達目標
2.1
本グループにおける目的
自律走行する走行体の開発を目的とする.走行体は 3 年前に行っていたプロジェクトの走行体を
利用し,古くなった部品等を新たに作り直したものを用いる.走行体に,白線を検知し走行ルート
を定めるシステム,および走行体が障害物に接触するのを防ぐシステムを搭載することで,走行体
を制御する.これら 2 つのシステムを搭載した走行体を,自作したコース上を走らせてテストを行
う.テストを行うためのコースには,2 本の白線を引き,走行ルート上に障害物を設ける.走行体
は,自作したコースに引かれた 2 本の白線を検知しその間を走行し,走行ルート上に設けられた障
害物を検知し停止または回避する.本グループでは,上記のテストをクリアすることで自律走行す
る走行体を開発したと定める.
(※文責: 高橋秀友)
2.2
通常の授業ではなく,プロジェクト学習で行う利点
本課題では走行体の制御,電子回路基板の作製,および画像処理プログラムの作成など学ぶ内容
の分野が多岐にわたる.従って各人に役割を分担し,各人が各々の作業を行うことにより,作業の
効率化やそれぞれの知識の習得を図ることができる.また,通常の授業では個人の知識や技術につ
いて講義,演習形式で学ぶが,本課題は共同作業を行う時間が多く,学ぶ分野がそれぞれ異なるた
め通常の授業よりプロジェクト形式が向いている.
(※文責: 伊藤大輔)
2.3
具体的な手順・課題設定
本グループの立ち上がりや自律走行車の開発の手順・課題設定を以下の通りにした.
1. プロジェクト定義書の作成
課題:走行体の開発の目的や背景,活動期間などを定義することにより,本グループの明確
化を行った.
2. 走行体の選定
課題:本グループで開発する自律走行システムをどの走行体で実現するかを決定した.
3. スケジュールの作成
課題:どの程度開発期間を設けるか確認し,開発のスケジュールを立てた.
4. 走行体の変更
課題:スケジュールを立てたことによって,走行体の変更が必要であるということがわかっ
た.そのため走行体の案をいくつか出し,再度走行体の選定を行った.
5. タスクの洗い出し
Group Report of 2012 SISP
-2-
Group Number 5-A
Human Support System
課題:UML 図を用いて自律走行システムに必要な機能,およびそのタスクを洗い出した.
6. スケジュールの再作成
課題:洗い出されたタスクに対してのスケジュールを改めて作成した. 7. 制約条件の定義
課題:走行体が選定され,具体的にどのようなものを開発するか,制約はどうするか,テス
ト項目はどうするかを定義した. 8. 電子回路基板の作製
課題:過去のプロジェクトが使用してた走行体を使用することになった.しかし過去の基板
は使用できる状態ではなかったため,一から作製した.
9. FPGA 設計 課題:走行体に搭載するマイコンは FPGA 搭載のボードとしてアットマークテクノ社の
SUZAKU-V410 を使用した.SUZAKU の FPGA を設計した. 10. 画像データの取得
課題:白線検知プログラムと障害物検知プログラムは画像処理を行うため,画像処理の学習
をした.
11. 白線検知プログラムの開発
課題:白線をビデオカメラで検知し,白線の中心を計算するプログラムを開発した.
12. 障害物検知プログラムの開発
課題:障害物をビデオカメラで検知し,障害物に対して停止操作するプログラムを開発した.
13. シリアル通信の設計
課題:制御用コンピュータから電子回路基板に命令として送るために,シリアル通信を使用
した.
14. SUZAKU と電子回路基板の結合テスト
課題:SUZAKU からの命令を正常にモータに送れるようにするための結合テストをした.
15. 制御用コンピュータと電子回路基板の動作テスト
課題:制御用コンピュータからの命令を正常に送れているか動作テストをした.
16. 統合テスト
課題:設定したコースで自律走行ができるようにするための統合テストをした.
(※文責: 伊藤大輔)
2.4
課題の割り当て
時間軸のスケジュールを基準に以下のように割り当てた.なお,4人で行った作業については全
員と記入した.
1. プロジェクト定義書の作成・・・全員
2. 走行体の選定・・・全員
3. スケジュールの作成・・・全員
4. 走行体の変更・・・全員
5. タスクの洗い出し・・・全員
6. スケジュールの再作成・・・全員
7. 制約条件の定義・・・全員
Group Report of 2012 SISP
-3-
Group Number 5-A
Human Support System
8. 電子回路基板の作成・・・伊藤
9. FPGA 設計・・・長田
10. 画像データの取得・・・大柳,高橋
11. 白線検知プログラムの開発・・・高橋
12. 障害物検知プログラムの開発・・・高橋
13. シリアル通信の設計・・・大柳
14. SUZAKU と電子回路基板の結合テスト・・・伊藤,長田
15. 制御用コンピュータと電子回路基板の動作テスト・・・伊藤,長田,大柳
16. 統合テスト・・・全員
(※文責: 伊藤大輔)
Group Report of 2012 SISP
-4-
Group Number 5-A
Human Support System
第3章
課題解決のプロセスの概要
1. プロジェクト定義書の作成
解決過程:最初にグループメンバー全員でプロジェクトの目的,背景,期間,スコープなど
を話し合い,その後次回までのタスクとしてメンバーに割り振った.レビューを重ねてプロ
ジェクト定義書を作成した.
(※文責: 高橋秀友)
2. 走行体の選定
解決過程:自律走行を行う組み込むシステムを開発が目的である.しかし組み込みシステム
をテストするための走行体が必要となった.そこで昨年のプロジェクトで前輪とモータが付
いていない未完成の走行体があったので引継ぎをして,組み込みシステムをテストするため
の走行体とした.
(※文責: 高橋秀友)
3. スケジュールの作成
解決過程:タスクの洗い出しや UML 図作成によって開発するもののスケジュールが立てや
すくなり,メンバー間で話し合いながらスケジュールを作成した.今までにやったことのな
いタスクのスケジュールなので大まかに作成した.
(※文責: 大柳亮輔)
4. 走行体の変更
解決過程:スケジュールを作成したことによって,昨年のプロジェクトで利用されていた走
行体を使うことが難しいということがわかった.具体的な理由として,昨年の走行体の構造
の理解に要する時間,必要部品の選定に要する時間,必要部品の発注に要する時間,タスク
に対する人数が少ない,ということが挙げられた.したがって,新たにどの走行体にする
かをメンバーで話し合い,長崎准教授に提案することで決定した.web などで調べた結果,
我々はマイコンカーというマイコンボードが搭載された走行体を用いることを決定し提案し
た.しかし,我々はそのマイコンカーを使う上で,画像処理用コンピュータはどこに搭載す
るのか,ということを全く配慮しておらず,その点を長崎准教授に指摘された.もう一度メ
ンバーと話し合い,他にも長崎准教授からのアドバイスを元に考えた結果,我々は 3 年前に
行っていたプロジェクトの走行体を使うことになった.
(※文責: 伊藤大輔)
5. タスクの洗い出し
解決過程:どのような機能が人をサポートし,自律走行する車を開発できるかを実際に運転
している状況を想像して,人をサポートする機能を列挙し,その後 UML 図を用いて必要な
タスクを洗い出した.ユースケース図は本プロジェクトのユーザである一般車両の運転手か
ら見てどのような機能があるのかを示す.我々は開発にあたり機能に必要な処理やタスクを
Group Report of 2012 SISP
-5-
Group Number 5-A
Human Support System
洗い出すために,ユーザから見えるシステムから考えた.アクティビティ図はユースケース
図作成時に考えた機能の処理の流れを示す.我々が考えた機能を実現するためにどのような
処理をすればよいのかを考えた.オブジェクト図はアクティビティ図で考えた処理を実現
するために必要なセンサなどの部品を示す.我々はセンサについても知識が少なかったた
め web で各センサがどのようなことができるのかを調べながら考えた.コミュニケーショ
ン図はオブジェクト図で考えた部品と機能の関係性をオブジェクト図に加えたものを示す.
オブジェクト図作成時にアクティビティ図と見比べながら作成したため部品の機能は明確で
あった.作成した UML 図はユースケース図,アクティビティ図,オブジェクト図,コミュ
ニケーション図の 4 つである.UML 図を作成することによって必要な機能,タスクを可視
化することが出来た.
(※文責: 長田昌浩)
6. スケジュールの再作成
解決過程:洗い出されたタスクを,それぞれメンバーに割り振り,スケジュールを再作成し
た.このスケジュールだと我々は開発可能であると判断した.
(※文責: 伊藤大輔)
7. 制約条件の定義
解決過程:メンバーと話し合い,具体的なレベルの制約やテスト項目などを考えた.プロ
ジェクトの関係で,企業の方々からもアドバイスをもらうことができ,それを参考にした.
(※文責: 長田昌浩)
8. 電子回路基板の作製
解決過程:今までに経験したことのないタスクだったので,長崎准教授からどのように作製
すれば良いかなどをお聞きし,アドバイスを頻繁にいただいた.作成していただいた電子回
路図の解読から作業を始めた.次に電子回路図に記載されている部品を集め,部品の配置図
を作成した.作成した部品配置図を長崎准教授にレビューしていただき,直した方が良いと
ころのアドバイスをいただいた.その後部品の半田付け,配線の半田付けを行った.
(※文責: 伊藤大輔)
9. FPGA 設計
解決過程:FPGA 設計を進める上で Xilinx Platform Studio を使用して設計を進めた.前
期では使用するマイコンの SUZAKU のスターターキットマニュアルを参考にして FPGA
設計を学習した.後期は走行体を動かすために FPGA 設計を行った.後輪の駆動用モータ
の回転,モータの回転速度の変更,AD コンバータの値の取得,前輪の操舵用モータの制御,
最後に走行体および制御用コンピュータと結合した.
(※文責: 長田昌浩)
10. 画像データの取得
解決過程:プログラミング言語の C,C++ で使える画像処理のライブラリ OpenCV を利
用して画像データを取得した.
(※文責: 大柳亮輔)
Group Report of 2012 SISP
-6-
Group Number 5-A
Human Support System
11. 白線検知プログラムの開発
解決過程:関連図書や web を利用して,画像を 2 値化するプログラムを作成した.その後
に,動画でも同様に 2 値化の処理をした.しかしプログラム自体を理解しないで,関連図書
や web のプログラムを引用していた.そのため処理の方法がわからず,佐藤教授と先輩に
ご教授していただき解決した.次に,その 2 値化した画面の白色の部分を抽出することで白
線の座標を求めた.それを元に白線の中心を求め,画面の中心とのズレを算出することで,
走行体の操舵用モータの角度を決定するプログラムを実装した.
(※文責: 高橋秀友)
12. 障害物検知プログラムの開発
解決過程:白線検知プログラムのときに実装したプログラムを元に関連図書や web を利用
して,実装方法を模索した.その後,特定の色を抽出し,抽出した色がある面積以上になっ
たときに障害物を検知するプログラムを実装した.
(※文責: 高橋秀友)
13. シリアル通信の設計
解決過程:過去のプロジェクト報告書や web でシリアル通信の情報を収集した.そして実
装方法を調査してプログラムを作成した.
(※文責: 大柳亮輔)
14. SUZAKU と電子回路基板の結合テスト
解決過程:SUZAKU からの信号を電子回路基板上で正常に受け取り,各種モータやボリュー
ムに正常に信号を送れているか,オシロスコープを用いてテストした.誤ってモータなどが
動作しないように必要部品を外して,その手前でオシロスコープを使うことによってテスト
した.
(※文責: 伊藤大輔)
15. 制御用コンピュータと電子回路基板の動作テスト
解決過程:シリアル通信で制御用コンピュータの命令を SUZAKU に送信した.送信した命
令は簡略化した文字列である.文字列に意味を持たせることで走行体を制御した.
(※文責: 大柳亮輔)
16. 統合テスト
解決過程:全ての機能が接続された状態でコース上を走らせた.駆動用モータおよび操舵用
モータの強さの調整,ビデオカメラの 2 値化の調整,バッテリーの交換をし走行体を走ら
せた.
(※文責: 伊藤大輔)
Group Report of 2012 SISP
-7-
Group Number 5-A
Human Support System
第 4 章 課題解決のプロセスの詳細
4.1
全体課題の概要とプロジェクト内における位置づけ
全体課題は以下のとおりである.
5月
プロジェクト定義書の作成,走行体の選定,タスクの洗い出し
6月
スケジュールの作成,走行体の変更,制約条件の定義
(※文責: 伊藤大輔)
4.2
各人の課題の概要とプロジェクト内における位置づけ
伊藤大輔の担当課題は以下のとおりである.
7月
電子回路基板の部品の半田付け
10 月 電子回路基板の配線の半田付け
11 月 電子回路基板と SUZAKU と結合テスト,電子回路基板とボリュームの結合テスト
12 月 電子回路基板と制御用コンピュータの動作テスト,最終発表のポスターおよびスライドの
作成
(※文責: 伊藤大輔)
長田昌浩の担当課題は以下のとおりである.
7月
FPGA 設計の開発環境構築 10 月 IP コアの追加テスト,モータの回転速度の調整,走行体モータの制御 電子基板との結合
11 月 前輪の制御
12 月 制御用コンピュータとのシリアル通信,画像処理プログラムとの結合
(※文責: 長田昌浩)
大柳亮輔の担当課題は以下のとおりである.
7月
画像データの取得
10 月 シリアル通信の学習
11 月 シリアル通信に必要な機能の洗い出し,シリアル通信プログラムの開発
12 月 画像処理プログラムとの結合,電子回路基板と制御用コンピュータとの動作テスト
(※文責: 大柳亮輔)
高橋秀友の担当課題は以下のとおりである.
7月
画像データの取得
10 月 白線検知プログラムの実装,走行ライン検出プログラムの実装
Group Report of 2012 SISP
-8-
Group Number 5-A
Human Support System
11 月 障害物検知プログラムの実装,障害物回避プログラムの実装,障害物発見後停止プログラ
ムの実装
12 月 システムの結合,デバック
(※文責: 高橋秀友)
4.3
全体課題解決過程の詳細
5月
プロジェクト定義書の作成
本グループは初めにプロジェクト定義書の作成を行った.プロジェク
ト定義書を作成することで,大まかではあるが開発するシステムを決定することが出来た.
このプロジェクト定義書の作成で開発するシステムは第 2 章で説明した 3 つのシステムに
決まった.
(※文責: 大柳亮輔)
走行体の選定
我々は,走行体は昨年度のプロジェクトで未完成だったものを引き継ぐ形で使用す
ることになった.そのため,昨年度のプロジェクトメンバーの先輩から走行体について説明
していただいた.それにより使用する走行体の構造や問題点が理解でき,設計図の作り直し
から作業を始める必要があることが判明した.我々は昨年度の走行体は概ね完成しており,
少しの手直しをすれば走らせることできると予想してこの走行体の使用を決定した.しか
し,走行体の前輪部分が未完成で一から設計し直す必要があった.以下に昨年度のプロジェ
クトで作製された走行体を示す.
図 4.1 昨年度のプロジェクトの走行体
(※文責: 大柳亮輔)
スケジュールの作成 本プロジェクトは昨年度の走行体を使用したスケジュールを立てた.以下の
図は昨年度の走行体を使用したスケジュールである.
Group Report of 2012 SISP
-9-
Group Number 5-A
Human Support System
図 4.2
スケジュール
(※文責: 大柳亮輔)
6月
走行体の変更 先月,本グループでは走行体を昨年度のプロジェクトで未完成だったものを使用す
ることになった.我々が昨年度の走行体を使用するのに,現時点で起こっている問題を探し
出し,その問題を解決するための設計図を作成し,必要な部品の発注および組み立てを行う
必要が出てきた.さらに,部品の発注は使用している部品を把握し,使われている部品と発
注する部品の相性を考え,部品の発注リストを作成する必要があった.これらの作業内容か
ら走行体の作製には時間がかかるという問題が挙げられた.我々はこれらの作業を実現する
のに,使用する走行体と部品に関しての予備知識がないことが一番の問題であった.それに
スケジュールでは部品リストの作成期間が 6 月中に終了し,すぐ発注して組み立てとなって
おり 7 月下旬には走行体の完成となっている.そして,後期にソフトウェアを中心として開
発する予定である.我々はこれらの作業内容や問題から,このスケジュールを達成出来る要
素を見い出せず実現不可能と判断した.このことを長崎健准教授に相談したところ,3 年前
のプロジェクトで使用していた走行体を薦められた.薦められた走行体は電子回路基板さえ
作製すれば動くものだった.薦められた走行体なら実現可能と判断し,本グループで使用す
る走行体は 3 年前のプロジェクトで使用していた走行体に変更した.以下に,変更後の走行
体を示す.
Group Report of 2012 SISP
- 10 -
Group Number 5-A
Human Support System
図 4.3 変更後の走行体
(※文責: 大柳亮輔)
タスクの洗い出し
5 月に決定した走行体を製作することに時間がかかりすぎることがわかり,走
行体を 3 年前のプロジェクトで扱っていたものに変更することで解決した.本グループで開
発するシステムに優先順位をつけ,システムを具体的にどのように開発するかを決めるとき
に,プロジェクトメンバー同士で開発するシステムの詳細が曖昧であった.そのため UML
図を作成し,開発するシステムの詳細を決定し,システムを開発するのに必要なセンサやタ
スクを洗い出した.以下に,作成した UML 図を示す.
Group Report of 2012 SISP
- 11 -
Group Number 5-A
Human Support System
図 4.4
Group Report of 2012 SISP
ユースケース図
- 12 -
Group Number 5-A
Human Support System
図 4.5
Group Report of 2012 SISP
アクティビティ図
- 13 -
Group Number 5-A
Human Support System
図 4.6 コミュニケーション図
(※文責: 長田昌浩)
スケジュールの再作成 本グループは走行体を変更したので新たなスケジュールを立て直した.以
下の図は新しく作成したスケジュールである.
図 4.7
再作成したスケジュール
(※文責: 大柳亮輔)
制約条件の定義
走行体を走らせるコースや検知する障害物について定義した.場所は室内に緑色
のマットを敷いた平らな場所とする.そして白線はその緑色のマットに白い破線ではない
テープを貼る.また白線の幅は 5cm で 2 本の白線の幅は走行体の横幅の倍の幅とする.障
害物はコース上に存在する物体と定義し,白色,緑色以外のものを障害物として検知する.
障害物の大きさは走行ルートを遮らない大きさと定義し,止まっている障害物と動いている
障害物の 2 つが存在することを定義した.
(※文責: 長田昌浩)
4.4
4.4.1
担当課題解決過程の詳細
伊藤大輔
7月
Group Report of 2012 SISP
- 14 -
Group Number 5-A
Human Support System
部品の半田付け
我々は 3 年前にプロジェクト学習で利用されていた走行体を使うことになった.
その走行体はモータやタイヤが既に取り付けられている物であったため,走行体に手がける
作業として電子回路基板の作製と制御プログラムを作成すれば動かせるものであった.私は
電子回路基板の作製担当となった.長崎准教授との話し合いの結果,長崎准教授に作成して
いただいた電子回路図を使うことになった.以下に作成していただいた電子回路図と説明を
示す.
図 4.8 AD コンバータ回路
AD コンバータは操舵タイヤの角度を取得する際に必要となる部品である.操舵タイヤにボ
リュームが接続されており,そのボリュームの抵抗値をアナログ信号からデジタル信号に変
換することで角度を取得することができる.AD7819 が AD コンバータである.
Group Report of 2012 SISP
- 15 -
Group Number 5-A
Human Support System
図 4.9
アナログ回路
この回路図は AD コンバータと繋がっており,ボリュームと AD コンバータを接続するた
めのコネクタである.接続するコネクタはヒロセ電機の HIF3BA-10D-2.54R と HIF3BA-
10PA-2.54DSA を用いた.
図 4.10 モータ駆動回路
モータ駆動回路は SUZAKU からの信号でモータを駆動するための回路である.回路図は 1
枚しかないが,実際には操舵用モータと駆動用モータの 2 つがあるのでこの回路が 2 セット
あることになる.モータの制御は H ブリッジ回路を用いて正回転と逆回転を実現した.正
回転と逆回転ができるようになれば,操舵用モータでは左右,駆動用モータでは前進後進
Group Report of 2012 SISP
- 16 -
Group Number 5-A
Human Support System
と速度制御が可能になる.H ブリッジ回路は P チャンネル MOS-FET2 つと N チャンネル
MOS-FET2 つの 4 つスイッチの組み合わせからなる.スイッチの ON/OFF の組み合わせ
で電流の流れる向きを変えることができ,正回転と逆回転を実現した.
図 4.11 電源回路
電源回路はバッテリーからの電流を DC-DC コンバータを通して電源供給している回路であ
る.ここの配線は強い電流を扱う箇所なので,一番太いものを利用した.またスイッチも取
り付けた.
図 4.12 SUZAKU-V
SUZAKU-V はモータを制御するためのマイコンである.SUZAKU-V 上の CON2 と回
Group Report of 2012 SISP
- 17 -
Group Number 5-A
Human Support System
路図上の CON3,SUZAKU-V 上の CON3 と回路図上の CON2 がそれぞれ接続される.
SUZAKU-V の CON3 のピン番号 4,6,8,10,12,14,16,18,20,32,34,36 が AD
コンバータ回路と繋がっている.SUZAKU-V の CON2 のピン番号 6,8,10,12,14,16,
18,20 がモータ駆動回路と繋がっている.MAX3232 はトランシーバで,シリアル通信す
るために必要な部品である.SUZAKU-V の CON3 のピン番号 38,40 が MAX3232 と繋
がっている.
私は,この作成していただいた電子回路図を見て必要な部品を集めた.どのような順序で基
板を作製すれば良いかわからなかったので長崎准教授にご相談し行った.長崎准教授の指示
は,まず部品配置図を作成し,その配置で問題がない場合は作製に移るのが良い,とアドバ
イスをいただいた.私は過去のプロジェクトで使われていた基板の配置を参考にしたり,作
成していただいた回路図を繋げて短い配線で済む配置を考えて配置図を作成した.レビュー
していただいた結果,過去のプロジェクトの配置の方法をそのままにしてしまった部分が
あった.もっと簡潔に配置するよう指示をいただき,レビューを細かく受けることで部品配
置図を完成した.以下に作成した部品配置図を示す.
図 4.13
部品配置図
その後部品配置図を見ながら基板に部品を半田付けした.
10 月
配線の半田付け
部品の半田付けが終わり,配線の半田付けをした.配線の太さは 3 種類で,バッ
テリーと繋がる電流が強い箇所には太い配線を使い,グランドなどに繋がる部分は中くらい
の配線,信号を伝達するだけの配線は細い配線を使った.配線の半田付けをする上で,電圧
がかかる部分を分散させる,太い配線は半田がのりにくいので銅線を温めて半田付けする,
他の配線とショートしないように露出部分を少なくする,などの指示を長崎准教授から受け
た.それらを意識し,配線をどのように接続するべきか考え半田付けした.以下に完成した
電子回路基板を示す.
Group Report of 2012 SISP
- 18 -
Group Number 5-A
Human Support System
図 4.14 電子回路基板の表
図 4.15 電子回路基板の裏
11 月
電子回路基板と SUZAKU の結合テスト
基板に SUZAKU を乗せ,SUZAKU からの信号が基
板上で送れているかどうかを確認した.しかし,SUZAKU の設定を行っている長田と確認
作業をしているときに問題が起こってしまった.その問題は,長崎准教授が作成していただ
いた電子回路図に間違いがある可能性があるということであった.図 4.12 の SUZAKU-V
の回路図に問題点が見られた.その箇所は基板上の CON3 のピン番号 4 と 6 の部分である.
ピン番号 4 と 6 は AD コンバータと繋がっているピンだが,SUZAKU-V の CON2 のコネ
クタのデータシートを見たところ,ピン番号 4 と 6 は”SPI フラッシュプログラム用”と記
Group Report of 2012 SISP
- 19 -
Group Number 5-A
Human Support System
載されていた.本来ならピン番号 4 と 6 は”外部 I/O Virtec-4 FX 接続ピン”でなければ
ならなく,このピンだと入出力が出来ないということを長田から指摘をいただき,問題を発
見することができた.この問題の報告を長崎准教授にお聞きしたところ,長崎准教授のミス
であることが発覚した.ピン番号を 4 と 6 ではなく,入出力に対応できる 7 と 9 に変更す
るよう指示をいただき,再度半田付けした.他に問題点がないか十分に確認し,長田と結合
テストをした.確認方法は,長田から SUZAKU のあるピンに信号を送るソースコードを書
いてもらい,そのピンに繋がっている配線に信号が送られているかどうかをオシロスコープ
を使って確認をした.最初はオシロスコープの使い方がわからなかったため,長崎准教授に
テストしていただいた.その後,使い方をご教示いただき自分でテストを行った.送られて
くる信号の波形を読み取ることができ,送られていることを確認できた.その後モータと接
続したところ,設定したとおりの周期のモータの回転を確認することが出来た.
電子回路基板と前輪の角度を取るボリュームの結合テスト
前輪の操舵用モータは振り切ってしま
うとモータが壊れてしまうため,振り切らないように前輪の角度を取得する必要がある.
前輪の角度を取得する方法として,過去のプロジェクトを参考にして前輪に取り付けたボ
リュームを使って取得することにした.ボリュームが正常に使えるかどうかをテスターを
使って確認し,ボリュームと基板を繋ぐためのケーブルを改めて作成した.ボリュームは
AD コンバータを通して SUZAKU に繋がっている.ボリュームの値が AD コンバータに
よって変換され,その値を取得できるかどうか長田とテストをしつつ結合テストした.結合
テスト中,うまく値が取得できないという問題が起こってしまい,それぞれに問題があるか
どうか確認作業をした.確認作業として昨年使われていたボリュームに問題があるのではな
いかと考え,他のボリュームでも同じテストをしたが問題が見られなかった.長田のプログ
ラムに問題があることが発覚し,直してみたところ値を取得することが出来た.
12 月
電子回路基板と制御用コンピュータの結合テスト
シリアル通信を用いて,電子回路基板と制御
用コンピュータの接続をした.大柳の担当してるシリアル通信と,長田の担当している
SUZAKU の結合テストをしたが,うまく通信することが出来なかった.SUZAKU での単
体テストと,シリアル通信の単体テストが出来たので,原因は電子回路基板にあると考えら
れた.私も長崎准教授に作成していただいた電子回路図と半田付けをした電子回路基板の確
認をしたが,問題が見られなかった.このことを長崎准教授に相談をして,長崎准教授にも
テストしていただいた.その結果,電子回路基板で使うと想定されていたケーブルの型と,
実際に使っていたケーブルの型が違うということが通信がうまくできない原因の可能性があ
る,と長崎准教授から指摘を受けた.実際に使っているケーブルに合わせた電子回路図の変
更の指示を受け,半田付けをしなおしたところ,通信が出来るようになった.
最終発表のポスターとスライドの作成
スケジュールが遅れているのが原因で,他のメンバーが最
終発表の準備に手をかけることが出来ない状態だった.私のタスクとして電子回路基板の作
製が既に完了しており,各結合も終わっていたので,私が最終発表のポスター,スライドを
作成することになった.メインポスター,サブポスター共に佐藤教授にレビューしていただ
き,適切でない日本語,英語の文章の指摘をしていただいた.スライドも各メンバーにこの
ような流れで発表するという話し合いをして,長崎准教授,和田教授にレビューをいただい
て,手直しをした.
(※文責: 伊藤大輔)
Group Report of 2012 SISP
- 20 -
Group Number 5-A
Human Support System
4.4.2
長田昌浩
7月
FPGA 設計の開発環境構築 私は走行体を電子制御するために FPGA の設計を担当した.使用
するマイコンは SUZAKU-V410 を使用した.以下に SUZAKU-V410 の画像を示す.
図 4.16 SUZAKU-V410
今までに FPGA を設計したことが無かったため,先輩方の報告書を参考にした.昨年度の
報告書を見ると FPGA を設計するために Xilinx Platform Studio という開発環境で設計し
ていた.Xilinx Platform Studio であればハードウェア記述言語(HDL)を使用する部分
を Xilinx が提供しているライブラリを利用し,自動生成することができる.私はプロジェ
クト学習という 1 年間の活動で FPGA を設計しなければいけないため,Xilinx Platform
Studio を選定した.
10 月
IP コアの追加のテスト 私はどのように開発するのか分からなかった.そのため,SUZAKU の
スターターキット上の LED ライトを光らせることから始めた.基板は SUZAKU スター
ターキット付属の基板を使用した.xps gpio という IP コアを使って LED ライトを点灯さ
せた.点灯させる LED は一つであるためバス幅は 1 に設定し,LED ライトに対応したピ
ンに出力するように設定した.IMPACT というソフトを使って SUZAKU に書き込んだ.
SUZAKU に書き込んだ結果 LED ライトを点灯させることが出来た.バス幅を変更し,他
の LED ライトに対応するピンに割り振ることにより複数の LED ライトを点灯させること
が可能なことを確認した.作業途中でコンパイルでエラーが出た.私は LED を光らせてい
るソースコードが間違っていると思った.しかしエラーの場所は LED を光らせているソー
スコードではなかった.エラーの場所がわからなかった私は長崎准教授に相談した.長崎准
教授に見ていただいたところ,xps gpio の出力に設定していたピンの番号が間違っていた.
私はコンパイルのエラーは処理の内容のソースコードだけだと勘違いしていたためミスを発
見できなかった.私のタスクでは処理の内容を書くソースコード,入出力に使うピンの割り
Group Report of 2012 SISP
- 21 -
Group Number 5-A
Human Support System
振り及び,IP コアの設定の 3 つについてエラーを探す必要があった.
走行体のモータの回転速度の調整 走行体のモータの回転速度を調整するための方法を長崎准教授
に聞いたところ,PWM 制御が良いという助言をいただいた.PWM 制御を行うために IP
コアの xps timer を追加した.xps timer の設定を PWM モードにすることで PWM 制御
を行った.SUZAKU のスターターキットの基板を利用し LED ライトを PWM の周期で点
滅させることによりテストを行った.テストで指定した DutyTime は 2 秒,HighTime は
1 秒に設定した.SUZAKU に書き込んだ結果指定した周期で点滅しているのを目視で確認
できた.xps timer の設定をするにあたり,xps timer の仕様を理解する必要があった.そ
のため私は xps timer の仕様書を読んだ.しかし,英語の仕様書しかなかったため理解する
のに非常に多くの時間を使った.xps timer を PWM モードに設定するためには xps timer
を追加したときに設定したアドレスの値を変更する必要があった.また,PWM 制御で使う
DutyTime と HighTime の 2 はアドレスの値を変更することで変えることができる.ソー
スコードを実行してすぐに xps timer のアドレスの値に xps timer を PWM モードにする
初期値と PWM の DutyTime と HighTime の初期値を与えることにより PWM 制御が出
来た.
走行体のモータの制御 走行体のモータを回すためにはモータに繋がる 4 つの電流の ON,OFF
の組み合わせで正回転,逆回転を表現した.その組み合わせを 2 ビットの GPIO の入力で
10 であれば正回転,01 であれば逆回転になるように長崎准教授に Mixer という IP コアを
追加していただいた.この IP コアを使うことで正回転と逆回転のパターンを正しくモータ
に送ることが出来る.正しく送れることを確認するためにスターターキットの基板の LED
ライトを使ってテストした.テストしたところ正しいパターンの信号を送ることが出来てい
る事を確認出来た.以下にテスト用の基板でテストしたときの画像を示す.
図 4.17 LED 点等テストの様子
電子回路基板との結合 LED ライトで正しいパターンの信号を送れているのを確認出来たため,
本プロジェクトで用いる走行体に搭載する電子回路基板と結合した.電子回路基板のピンに
対して PWM 周期の信号パターンを送り,正しいピンに送れているか確認した.確認の方
Group Report of 2012 SISP
- 22 -
Group Number 5-A
Human Support System
法はオシロスコープを使い波形を読み取り,ピンに対して正しい場所に正しい波形で送れて
いるかを確認する.オシロスコープでピンに送られている電流の波形を確認すると全ての信
号で,モータを回すのに必要な 4 つのピンに電流が流れてしまっており,正しいパターン
のピンに電流が送れていないことを確認した.この問題は Mixer のソースコードの電流を
流さない部分の信号を 1 から 0 に変更することで解消できた.この問題は SUZAKU のス
ターターキットの基板と走行体に搭載する基板の仕様の違いから起こる問題であった,テス
ト用の基板では 0 に設定すると,電流が流れる.しかし,本番用の基板では 1 に設定すると
電流が流れる,この仕様の違いにより問題が起きていた.問題部分を修正した後もう一度テ
ストしたところ,正しいピンに PWM の波形を確認することが出来た.正しいピンに正し
い波形を確認し,結合テストが成功したと判断したため,電気回路基板と後輪の駆動用モー
タを結合したところ,モータが設定した PWM 周期で回転した.
11 月
前輪の制御 駆動用のモータを任意の周期で回転させることが出来たため,次は前輪の操舵用モー
タを駆動用モータと同じように回転させた.操舵用モータは簡単に可動可能範囲の限界値ま
で振り切ってしまった.長崎准教授から限界値まで振り切った状態でさらに振り切る方向に
モータを回転させるとモータが故障してしまう可能性があるという助言をいただいた.ここ
で操舵用モータを制御しなければならないことが分かった.対応案として操舵用モータの回
転角度を取得しなければならなくなった.使用する走行体の前輪部分には可変抵抗器が取り
付けられている.私は前輪の回転角度を取得するために可変抵抗器の値を取得することで対
応した.可変抵抗器の値はアナログデータであるため,デジタルデータに変換するために
AD コンバータで変換した値を取得する.AD 変換を行うために AD コンバータの仕様書を
読み始めたが,仕様書が英語であったため xps timer の仕様を理解するのと同様に AD コ
ンバータの仕様を理解するのが大変だと予想できた.私は先輩も同じ問題にぶつかったと考
えた.同じ走行体を使った 3 年前のプロジェクトの報告書を読むと AD コンバータについ
ての記述があった.AD コンバータの型番を確認すると今回私たちが使用する型番と同じで
あった,そのため,私は先輩の報告書を参考にして AD コンバータの仕様を理解した.AD
コンバータの仕様書どおりのタイミングで電流を操作すると AD 変換された値を読み取る
ことができた.可変抵抗器の値を取得することにより操舵用モータを一定の角度以上は回さ
ない処理を追加することが出来た.以下に AD コンバータのタイミングチャートを示す.
Group Report of 2012 SISP
- 23 -
Group Number 5-A
Human Support System
図 4.18 AD コンバータのタイミングチャート
12 月
制御用コンピュータとのシリアル通信
私はシリアル通信を担当していた大柳君と結合テストを
行った.結合テストでは結合が完了している伊藤の基板を使用した.制御用コンピュータか
らシリアル通信を試みたところ,SUZAKU に信号が送れていなかった.そのため各自で単
体テストを行った.私は SUZAKU を SUZAKU のスターターキットの基板に載せてテス
トをした.制御用コンピュータから SUZAKU に対してシリアル通信ソフトウェアの Tera
Term を使って通信し,送られてきた信号をそのまま送り返すという方法でテストを行った.
すると正しくシリアル通信が出来ていることを確認することが出来た.問題は電子回路基板
にあるという事が判明し,問題を修正することで正しくシリアル通信が出来た.
画像処理アルゴリズムとの結合 高橋が開発した画像処理アルゴリズムとの結合を行った.結合し
てみると走行体は白線の間をうまく走行することが出来なかった.走行の様子を見ると白線
の中心線から少しずれるだけで前輪を大きく切ってしまっていた.そこで白線の中心線と走
行体のずれの大きさを新たに SUZAKU に送り,そのずれの大きさによって前輪を切るス
ピードを操舵用モータを回さない命令と左右 4 パターンの計 9 パターンで変更するように
した.変更後に走らせたところ今度は曲がり始めが遅いという問題が起きてしまった.制御
用コンピュータからの命令のログを見たところ,命令を送る周期が遅いことが分かった.し
かし成果発表のデモには間に合わないと判断したため,障害物の前で停止するアルゴリズム
との結合を優先させた.障害物検知アルゴリズムとの結合はうまくいった.成果発表では障
害物認知アルゴリズムのデモのみ行った.以下に作成したソースコードのクラス図を示す.
Group Report of 2012 SISP
- 24 -
Group Number 5-A
Human Support System
図 4.19 ソースコードのクラス図
(※文責: 長田昌浩)
4.4.3
大柳亮輔
7月
画像データの取得
私は白線検知プログラムの開発担当となった.私が開発するのに用いたプログ
ラミング環境は,Microsoft 社のソフトウェア開発製品のひとつである Visual C++ 2010
Express を使用した.使用した理由は,無料版が公開されているのと,幅広い開発に適して
いたためである.画像処理のプログラミングをするのに,インテル社が公開しているコン
ピュータビジョン向けライブラリの OpenCV を使用した.これを使用した理由は,画像処
理のプログラミングをするのに必要な機能が様々実装されていたためである.私が白線検知
プログラムを開発するにあたって,画像処理の技術が必要であった.そのため,講義だけで
は理解できなかった内容を学習した.ここでは主にビデオカメラを使ってリアルタイムの映
像を取得する方法と OpenCV の使い方を学習した.私は OpenCV について書かれた書籍
や web などを利用して OpenCV の使い方やできることをなどを調べた.それにより,ビデ
オカメラからの映像を取得する技術,取得した映像をキャプチャーしディスプレイ上に表示
する技術を会得した.そして,私が会得した技術を用いてビデオカメラから取得した映像を
制御用コンピュータのディスプレイ上に表示するプログラムを作成した.
10 月
画像データの取得
私は画像処理を行う際に基礎となる内容が理解出来ていなかった.私は画像
処理の学習に OpenCV について書かれた書籍を用いた.この書籍に記されていた内容は
OpenCV の使い方がほとんどであった.そのため,私は画像処理に関する知識ではなく
Group Report of 2012 SISP
- 25 -
Group Number 5-A
Human Support System
OpenCV の実用の仕方を学んでいた.このことに気がついた私は同じ画像処理の担当で
あった高橋と共に,3 年前にプロジェクト活動をしていた先輩から画像処理についてアドバ
イスをもらった.先輩はプロジェクト活動中に画像処理の技術で白線を検出していたので,
画像処理の基礎的な知識や当時の話しを聞けた.さらに、先輩に雛形のソースコードを作成
してもらった.このソースコードは画像処理でカメラから取得した映像を画面上を指定した
色を抽出して 2 値化を行うプログラムであった.このソースコードの中身を理解することで
画像処理の知識を身につけた.しかし,我々は SUZAKU にデータを送る方法を検討してい
なかった.白線検知プログラムと障害物検知プログラムが完成しても,SUZAKU にデータ
を送信出来なければ走行体を制御出来ない.そのため,私は開発したシステムからデータを
SUZAKU に送信するプログラムの作成に移った.私は制御用コンピュータから SUZAKU
へデータ通信を行うために過去のプロジェクトの報告書を読み直して,どのような方法が存
在するのか確認した.その結果データ通信するのにシリアル通信という方法があることがわ
かった.そこで,私は web を用いてシリアル通信について学んだ.
シリアル通信の学習
白線検知プログラムと障害物検知プログラムの設計を高橋に任せて,私はシ
リアル通信についての学習を始めた.まず初めに,シリアル通信とは何か,どのような経緯
で制御用コンピュータの情報を SUZAKU に送るのか等の基本的な情報を収集した.調べた
方法として,過去のプロジェクトの報告書からシリアル通信について書かれている内容を読
み,過去のプロジェクトではシリアル通信がどのように使われているかを学んだ.他には
web を用いて,シリアル通信の基本的な情報を得た.その次に,SUZAKU に付属されてる,
SUZAKU スターターキットガイド(FPGA 開発編)に記されている UART の追加を実行
した.これは SUZAKU に UART を追加して,内部メモリの中のアプリケーションに受信
した文字をそのまま送信するソースコードを追加する内容であった.そのため,SUZAKU
に文字を送る方法を学ぶ目的で実行した.その結果,私は SUZAKU と制御用コンピュータ
でシリアル通信する基礎の学習を行うことが出来た.
11 月
シリアル通信の設計
私はシリアル通信の基礎となる部分の学習をした後に,制御用コンピュータ
から SUZAKU にデータを送るプログラムの作成を行った.プログラミングを始める前に,
実際にどのようなプログラムを作成すれば求めている機能が出来るか検討を行った.私は
制御用コンピュータで画像処理を行った情報を元にシリアル通信で SUZAKU に「前進」,
「後退」,
「停止」,
「右折」,
「左折」の命令を送るプログラムを作成した.走行体は後輪の駆
動用モーターを回転させ後輪が回ることで走行体が走る仕組みで,右折と左折は前輪の操
舵用モーターを回転させて前輪の向きを変えることで実現している.そこで,前輪の正回
転,逆回転,停止と後輪の正回転,逆回転,停止の 6 つの命令を制御用コンピュータから
SUZAKU に送り走行体の制御を行った.具体的に 6 つの命令を SUZAKU に送る方法は,
一文字のアルファベットを SUZAKU に送り,その送信したアルファベットに命令の意味を
持たせる方法を行った.送る文字は‘a’,‘s’,‘d’,‘l’,‘k’,‘j’でこれらの文字を選ん
だ深い理由はない.‘a’の文字を送信することで駆動用モーターが正回転し,走行体が前進
する.‘s’の文字を送信することで駆動用モーターが逆回転し,走行体が後退する.‘d’の
文字を送信することで駆動用モーターが停止し,走行体が停止する.‘l’の文字を送信する
ことで操舵用モーターが正回転し,前輪の向きが右に向く.‘k’の文字を送信することで操
舵用モーターが逆回転し,前輪の向きが左に向く.‘j’の文字を送信することで操舵用モー
ターが停止し,前輪の向きが固定される.私はこれら 6 つの文字を制御用コンピュータから
Group Report of 2012 SISP
- 26 -
Group Number 5-A
Human Support System
SUZAKU に送信することで走行体を制御することにした.
シリアル通信プログラムの開発 プログラミング環境は画像処理を行うソースコードからデータを
もらう必要があったため,画像処理と同じ環境でプログラミングをした.そのため Visual
C++ 2010 Express を使った.私は SUZAKU に文字を送信するプログラムを作成するた
めに,web を利用してシリアル通信のプログラムがないか調べた.それでいくつかの web
ページを探し出した.探し出した web ページはほとんど同じ手順でシリアル通信が行われ
ていたため,その手順を用いてプログラミングした.そして,シリアル通信のプログラミ
ングを行う際に WIN32API を利用した.WIN32API を用いて OS を操作することでシリ
アル通信プログラムの作成出来た.私がシリアル通信のプログラミングを行う際に用いた
手順を以下に記す.この手順には WIN32API の機能を用いている.まず初めに,シリアル
ポートを開く必要がある.開くシリアルポートをファイルとみなして,CreateFile() 関数
を用いて開きハンドルを取得する.次に開いたシリアルポートの通信パラメーターの初期
化を SetupComm() を用いて行う.このときに送受信のバッファーの設定を行う.次にシ
リアルポートの設定を取得する.GetCommState() 関数を用いてシリアルポートの制御設
定をデバイス制御ブロック構造体に格納する.次にシリアルポートの設定を接続されてい
るシリアルポートの通信条件と同じものに変更する.デバイス制御ブロック構造体に伝送
速度やパリティ有無などの通信条件を設定する.設定したデバイス制御ブロック構造体を
SetCommState() 関数に代入する.次にデータを送信する.WriteFile() 関数を用いてデー
タを送信する.最後に開いたシリアルポートを CloseHandle() 関数を用いて閉じる.以上
がシリアル通信のプログラム構成である.私は上のプログラム構成でプログラミングをし
た.その結果,シリアル通信を行うことが出来た.
12 月
画像処理システムとの結合
私は完成したシリアル通信のプログラムと高橋が設計した白線検知プ
ログラムと障害物発見後停止プログラムを統合した.シリアル通信のプログラムを高橋が設
計したプログラムに貼り付ける形で結合した.結合する際,プログラムの流れが正常になる
よう高橋と話し合いを行った.白線検知システムには,前輪の操舵モーターを制御する命令
しか送信しない.白線検知システムで送信する文字は‘l’,
‘k’,
‘j’の 3 つである.2 本の
白線の間の中心と出力されたビデオカメラの画面の中央を比較し,適切な文字を送信するこ
とで操舵システムの実現を図った.障害物発見後停止プログラムには,後輪の駆動用モー
ターを制御する命令しか送信しない.さらに,障害物発見後停止プログラムは障害物を発見
したら停止する命令しか送信しないので‘d’の文字だけ送信した.障害物が一定以上まで
近づくと走行体に停止する‘d’の文字を送信することで障害物発見後停止プログラムの実
現を図った.
電子回路基板と制御用コンピュータとの結合
画像処理システムと結合した後,電子回路基盤と結
合した.初めは上手くいかなかった.原因は電子回路基盤にあった.電子回路基盤を修復
している間に,私はシリアル通信のプログラムにも問題がないかテストをした.テストは
FPGA 設計担当の長田と協力し行った.実際に行ったテストは,SUZAKU のスターター
キット基盤を利用して前に行った UART の追加を応用した方法だった.既存のターミナル
エミュレータソフトである Tera Term を用いて,制御用コンピュータから SUZAKU へ文
字列を送信,その後送信した文字列をそのまま制御用コンピュータに送り返す方法でテスト
を行った.このテストで送信した文字列がそのまま送り返されていたので,私たちはシリア
ル通信のプログラムには異常がないと判断した.電子回路基盤の問題が解決し,シリアル通
Group Report of 2012 SISP
- 27 -
Group Number 5-A
Human Support System
信のプログラムにも問題がないことを確認した後,もう一度統合を行った.シリアル通信の
プログラムから電子回路基盤に文字を送信し,走行体のモーターが命令通りに回転するか確
認した.私は 6 通りの命令をそれぞれ走行体に送信し,命令通りにモーターが 6 通りの回転
方法をすることを確かめた.走行体が命令通り 6 通りの回転を行ったので,私は電子回路基
板と制御用コンピュータとの結合が正常に行われていると判断した.
走行体の走行調整
走行体とシステムを統合したので,我々は走行体を走らせた.その際,走行体
に命令が送信出来てない問題が何度か起きたので一度に送信する文字を 3 文字にした.こ
れにより,この問題を解決した.しかし,この問題とは全く別に走行体は思い通りに走らな
かった.走行体は白線の中心を走行せず,走行途中でコースから外れた.問題は操舵システ
ムにあったが,今から修正するのは時間的にも厳しかった.それに我々は走行体の走るス
ピードを考えずに操舵システムを設計していた.それが第一の問題に挙げられた.そこで
我々は走行体の進む速さを変え操舵システムが正常に動くスピードを探した.我々は走行体
にコースを走らせ,コースアウトしたらスピードを変更する.この作業を繰り行うことで走
行体がコースアウトしないスピードを探った.しかし,最後までコースアウトしないスピー
ドを見つけることが出来なかった.障害物発見後停止プログラムは問題なく実行され,少し
の微調整で完成した.
(※文責: 大柳亮輔)
4.4.4
高橋秀友
7月
画像データの取得
過去のプロジェクトの報告書を参考に,開発言語は C++ を使い,Visu-
alC++2010 を用いてプログラミングを行こなうことに決めた.白線や障害物を認識するた
めに,まずカメラからの画像データを制御用コンピュータで処理できる環境を作る必要があ
るので,関連図書と web を用いて環境を構築した.具体的には,カメラから得た画像デー
タを制御用コンピュータの画面上で表示できるプログラムを実装した.また,カメラからで
はなく,ファイルの画像データを制御用コンピュータの画面上でグレースケール化し,その
後 2 値化するプログラムを作成した.
10 月
白線検知プログラムの実装
関連図書や web を利用して,カメラからの画像データを 2 値化して
制御用コンピュータの画面上に表示できるプログラムを作成した.しかし,プログラム自体
の理解をしないで,関連図書や web のプログラムを引用していたので,その後の処理の方
法がわからなかった.そのため佐藤教授と先輩にご教授していただき,新しくプログラムを
作成し直すことで解決した.制御用コンピュータの画像データを処理する環境の画面のサイ
ズは 640 × 480 に設定した.走行体の走行ラインを決定するために,走行ラインを 2 本の
白線の中心と決めた.そして 2 本の白線の中心を出すプログラムを作成した.カメラから得
た画像データを 2 値化し,その後,白線の中心を求めるために白色の部分を抽出した.
走行ライン検出プログラム
画像データの y 座標の 100∼104 まで y 軸方向に 5 ピクセル分の幅を
それぞれに x 方向 640 ピクセル分探索するようにした.探索した 5 × 640 ピクセル分に対
応した x 座標と画素値を掛け,それを画素値で割ったものをすべて足し合わせ,足した数で
割ることで白線の中心を求めることができた.以下にその数式を示す.
Group Report of 2012 SISP
- 28 -
Group Number 5-A
Human Support System
I=(
w
∑
x ∗ (座標に対応する輝度値))/255 ∗ w
x=1
中心値 = (
104
∑
I)/5
y=100
w は画像データの横幅
しかし,時間が経過するごとにパソコンのメモリ使用量が上がっていき,すぐにプログラム
自体が動作を停止してしまった.Web を見ることで IplImage の構造体を開放していなかっ
たことがわかった.構造体を開放することでメモリ使用量が上がっていく問題は解決した.
しかし,プログラムの動作が停止することがなくなり,白線の中心を算出するのに時間がか
かり過ぎていることがわかった.この問題を解決するために,画面のサイズを 320 × 240
のサイズとすることや,y 方向 5 ピクセル分を 1 ピクセル分にするなどしてプログラムの動
きを軽くなるようにすることで解決を試みた.しかし,動作は少しは早くなったが,まだ遅
くもっと早く 2 本の白線の中心を算出する必要があった.解決策が見つからなかったため,
プログラムのアルゴリズムそのものを変えることにした.新しいアルゴリズムは,2 値化し
た画像の白線の左半分から指定した y 座標の白線の座標を取得し,x1 として格納する.同
様の処理を右半分にも行い x2 として白線の座標を格納した.その x1 と x2 を足し合わせ2
で割ることで,白線の中心を早く算出することができた.以下にその数式を示す.
(x1 + x2)/2
次に,走行体のステアリングの角度を決定するプログラムを作成した.ステアリングの角度
を決定するために,算出した白線の中心と走行体の中心とのズレを算出した.白線の中心と
走行体の中心とのズレから走行体のステアリングの角度を決定するすることにした.走行体
の中心は,走行体の中心にカメラを取り付け,カメラからの画像データの中心が走行体の中
心と一致するようにした.
11 月
障害物検知プログラムの実装
関連図書や web を利用して,実装方法を模索し,色により障害物
を認識するプログラムを実装した.障害物を赤色と決め,取得した画像データの赤の輝度値
をとり,その赤の輝度値がある一定以上の値とそれ未満の値で 2 値化処理を行った.障害物
を白色,それ以外を黒色とした.そしてその画像データの中である一定以上白色のピクセル
数を検出したら,障害物と認識するプログラムを実装した.
障害物回避プログラムの実装
障害物を回避するプログラムを実装した.走行体は白線を出ずに障
害物を回避するとし,障害物は 2 本の白線内に走行体が置くとした.障害物を回避するアル
ゴリズムは,障害物の最小の y 座標の最小の x 座標と最大の x 座標と左側の白線の x 座標
と右側の白線の x 座標を算出した.さらに障害物の最小の x 座標と左側の白線の x 座標の
距離と障害物の最大の x 座標と右側の白線の x 座標の距離を算出し,その距離の値が大きい
Group Report of 2012 SISP
- 29 -
Group Number 5-A
Human Support System
方に回避すると決めた.そして障害物と白線の x 座標の中心を求めその中心を障害物の回避
の走行ラインとした.しかし実際に,障害物の最小の y 座標の最小の x 座標と最大の x 座
標を取得するプログラムの作成を試みたが,うまく動作しなかった.佐藤教授からご教授い
ただき,障害物を回避するアルゴリズムとして決め打ちで回避することにした.障害物があ
る一定以上のピクセル数を検出した時に右に何秒間か曲がり続け,次に,白線を探索しなが
ら,左に曲がり続け,白線を発見した場合は白線の中心を走行するシステムを実装した.
障害物発見後停止プログラムの実装
障害物がある一定以上のピクセル数を検出した時に止まる命
令を出すシステムを実装した.
12 月
システムの結合,デバック
白線検知プログラムの作成,走行ライン検出システムと障害物検知プ
ログラムの作成,障害物回避システムの結合をおこなう際に白線検知プログラムと障害物検
知プログラムを結合するには,どうすればよいかわからなかった.そのため web を利用し
て,結合方法を模索した.その結果,cloneImage という opencv の関数を用いて画像デー
タをコピーして2つ作り,それぞれで白線検知するための 2 値化と障害物検知するための 2
値化をおこなうことで,結合することができた.
(※文責: 高橋秀友)
4.5
4.5.1
担当課題と他の課題の連携内容
伊藤大輔
長田昌浩
電子回路基板とモータの結合が出来ているかどうかを,長田と協力をして結合テストをした.長田
が電子回路基板に対応しているピン番号に信号を送り,その信号が送れていることをオシロスコー
プを使って確認した.またボリュームとの結合でも長田と協力して結合テストをした.
大柳亮輔
電子回路基板とシリアル通信の結合テストをしている時に,結合がうまくいかないという問題が起
こった.大柳とうまくいかない原因を突き止めるために協力して話し合った.大柳の担当している
シリアル通信プログラム設計の方は単体テストが出来ていると証明できたので,電子回路基板の方
に問題があるということが判断することが出来た.
(※文責: 伊藤大輔)
4.5.2
長田昌浩
伊藤大輔
マイコンから外部出力する際に電子回路図の理解が必要であったため,電子回路基板作製担当の伊
藤に教えてもらった.教授ではなく担当者に聞くことでお互いに理解が深まった. また,結合部分
では私が各ピンに PWM 周期の電流を送り,伊藤がそれをオシロスコープで確認することにより
共同でデバックを行った.
大柳亮輔
PC から各モータに命令を出すためにシリアル通信担当の大柳と協力して結合を行った.大柳が決
Group Report of 2012 SISP
- 30 -
Group Number 5-A
Human Support System
めた信号を受け取り各モータを正しく動作させることが出来た.走行体を動かすために制御用コン
ピュータから送信する命令である文字列は大柳が決めた.私はその文字列に対応して操舵用モータ
及び,駆動用モータの正回転と逆回転をさせた.
高橋秀友
PC の命令で走行体を動かすために画像処理アルゴリズム担当の高橋と協力して走行体の振る舞い
の調整を行った.大柳が決めた文字列の命令は高橋のプログラムでも正しく動作した.しかし,制
御がうまくできず理想の走行をさせることが出来なかった.
(※文責: 長田昌浩)
4.5.3
大柳亮輔
高橋秀友
白線を検知するシステムの開発を担当したが,開発する前に画像処理について学習をした.その結
果リアルタイムの映像を取得することが出来た.障害物検知プログラムもリアルタイムの映像を用
いて行うので,障害物検知プログラム開発担当の高橋に今回習得した内容を教えた.そして,高橋
から静止画の 2 値化する方法を教えてもらった.
長田昌浩
シリアル通信をする際に,SUZAKU スターターキットガイドの内容を行った.FPGA の内容が
含まれていたので,FPGA 設計を担当していた長田に教えてもらった.シリアル通信の動作テス
トのときに協力してもらった.
伊藤大輔
シリアル通信のプログラムが完成し,電子回路基盤と制御用コンピュータを接続する際に問題が起
きたため,電子回路基盤を担当していた伊藤と協力して問題を解決した.
(※文責: 大柳亮輔)
4.5.4
高橋秀友
大柳亮輔
開発した画像処理プログラムを SUZAKU へ命令を出すために大柳が開発したシリアル通信のプロ
グラムと結合した.画像処理プログラムの 2 本の白線の中心とカメラからの画像データの中心との
ズレの値と障害物を検知した場合に右に曲がる命令とその後,左に曲がる命令をシリアル通信のプ
ログラムに送れるように画像処理プログラムにシリアル通信のプログラムを関数として結合した.
最初に,シリアル通信のプログラムを COM ポートを開き,COM ポートのセットアップする関数
と COM ポートにデータを送信する関数と COM ポートを閉じる関数の 3 つの関数に分け,画像
処理プログラムに結合したが,うまくいかなかった.そこでシリアル通信のプログラムを 1 つの関
数として画像処理のプログラムに結合することで解決した.
長田昌浩
SUZAKU とシリアル通信を通して結合した.2 本の白線の中心とカメラからの画像データの中心
とのズレの値に応じてステアリングを 9 パターンの命令を SUZAKU に出すように画像処理プロ
グラムに書き加えたが,同じ命令を連続で送りすぎてしまう問題が生じた.この問題を解決するた
めに 2 度連続で同じ命令をしないようにプログラムを書き換えた.このことで 2 度連続で同じ命
Group Report of 2012 SISP
- 31 -
Group Number 5-A
Human Support System
令をすることはなくなったが,走行体が思うように動かず,曲がりすぎて白線からすぐにコースア
ウトしてしまいうまくいかなかった.そこでステアリングは 9 パターンではなく,左に曲がるか右
に曲がるの 2 パターンにしたが,それでもうまくいかなかった.障害物検知に関しては,障害物を
検知したら止まるという処理はできた.
(※文責: 高橋秀友)
Group Report of 2012 SISP
- 32 -
Group Number 5-A
Human Support System
第5章
5.1
結果
プロジェクトの結果
我々が作った自律走行車は,障害物を検知したら止まるというところまで実装できた.白線に
沿って走行するシステムについては白線を検知し,白線の中心を出すことはできた.しかし,走行
体を制御する微調整の段階で終ってしまいできなかった.そのため,障害物を回避するアルゴリズ
ムはプログラムを実装したが,マイコンには命令を出して実際に動作を確認することはできなかっ
た.最終成果発表では,小規模なデモをおこなった.デモでは 2 本の白線の間を走行するシステム
と障害物を検知したら止まるシステムの発表をおこなった.しかし,2 本の白線の間を走行するシ
ステムはデモでうまくいなかった.SUZAKU と制御用コンピュータとの調整がうまくいっていな
かったことが原因であるかもしれない.障害物を検知したら止まるシステムはデモでは成功するこ
ともあったが,失敗することもあった.
(※文責: 高橋秀友)
5.2
成果の評価
白線検知し,白線の中心を出すプログラムは実装できた.しかし,マイコンとの制御がうまく行
かず,走行体を白線に沿って走行させることはできなかったので,当初の目的である自律走行車を
開発することはできなかった.しかし,障害物を検知して止まるという一部のシステムはできてい
たので,自律走行車の開発とはいかなかったが一部の機能として開発することができた.
(※文責: 高橋秀友)
5.3
全体課題の評価
プロジェクト定義書の作成
本グループはプロジェクト定義書を作成した.プロジェクト定義書を
作成することで,本グループの目的,スコープ,制約条件をメンバー間で共有出来た.しか
し,プロジェクト定義書は立ち上がる時点ではとても分かりやすいドキュメントではあった
が,開発を進めていくに従って新たな制約条件が見つかった.本グループの開発で適宜内容
が変わった部分も出てきたので,最初に作成したプロジェクト定義書が全てではないことが
分かった.
(※文責: 大柳亮輔)
走行体の選定
プロジェクト開始当時は,昨年度活動していたプロジェクトの前輪とモータが付い
ていない未完成の走行体を引き継ぐことにした.しかし,車などの製作する工作をやったこ
とがある人がいなかったため,作成にどのくらい時間がかかるのかも見積もることができな
かった.そこで,昨年度活動していたプロジェクトの先輩に助言をいただいた.パソコンの
ソフトを使った設計図の書き方やその設計図を元に本から部品を選び,その部品の発注の仕
Group Report of 2012 SISP
- 33 -
Group Number 5-A
Human Support System
方を教えていただき,やるべき作業がわかった.
(※文責: 高橋秀友)
スケジュールの作成
本グループは必要とされる走行体の作業内容と開発するシステムをそれぞれ
スケジュールに入れ作業時間を導いた.このスケジュールは走行体作製の時間が曖昧で実現
出来るかわからないものだった.去年の先輩の話しを聞いた後,本グループで部品発注の準
備に取り掛かった.しかし,我々はこのような走行体の部品を選定した経験がなく,わから
ないことだらけであった.発注するのに相当な時間がかかり,すぐにスケジュール通りには
いかないと判断出来た.
(※文責: 大柳亮輔)
走行体の変更 昨年度のプロジェクト学習で利用されていた走行体を使うことになったが,タスク
の洗い出しやスケジュールを見直したところ,あまりにも無理なスケジュールとなってしま
い,結果的に使う走行体の変更をせざるを得なくなってしまった.これによって 1 ヶ月時間
を使ってしまったので,もっと早く気づけば良かった.
(※文責: 伊藤大輔)
タスクの洗い出し
プロジェクトのスケジュールを立て直すために UML 図を使用しにタスクの洗
い出しを行った.開発するシステムと走行体の作成に必要なタスク,センサを洗い出すこ
とができスケジュールを立てることが出来た.UML 図を使用することでイメージがしやす
かった.
(※文責: 長田昌浩)
スケジュールの再作成 本グループはタスクの洗い出しをした後に新たにスケジュールを立てた.
しかし,各タスクを行った経験者が本グループ内にいないため,各タスクにかかる時間が詳
しくわからなかった.これに対して本グループはスケジュールをこまめに見直すという処置
をしなかったので,後期になってスケジュール通りにならなかった.
(※文責: 伊藤大輔)
制約条件の定義
前期に制約条件を定義したが開発するうちに制約条件が具体的になったり変更し
たりした.白線と白線の幅は 90cm に定義しなおした.さらに障害物は赤色の物体のみを障
害物を検知することに再定義した.6 月に決めた制約条件から変更になった部分については
プロジェクトの進行具合とプロジェクト終了の時期を考えたときに難しいと判断したため目
標を絞ることで対応した.
(※文責: 長田昌浩)
担当分担課題の評価
5.4
5.4.1
伊藤大輔
電子回路基板の部品の半田付け 電子回路基板の作製は今までに行ったことのない作業であり,わ
からない部分が多くあり,検討していた時間よりも長引いてしまった.部品についてわか
Group Report of 2012 SISP
- 34 -
Group Number 5-A
Human Support System
らないことがあった場合,その部品のデータシートなどを見たり,web を使って調べたり,
web を使ってもわからないことは長崎准教授に訪ねることで対策を行った.長崎准教授に直
接指示をいただくことは,web などを使って調べるよりも理解しやすく,もっと早く訪ねる
べきであった.その判断基準が難しく長引いてしまった原因となってしまった.
電子回路基板の配線の半田付け 配線の半田付けは,部品の半田付けと同じように行う予定だった
が,太い銅線の半田がうまく付かず,うまく配線を繋ぐことが出来なかった.しかし,太い
銅線は銅線自体を温めてから半田付けを行うとうまく繋ぐことが出来る,といった技術を長
崎准教授からアドバイスをもらうことによって配線の接続をうまく出来るようになった.他
にも,ただ単に配線をするのではなく,信号レベルの基準になるグランドの部分は分散して
接続するのがもっとも良い方法,という長崎准教授からアドバイスをもらい,配線の接続を
上手に作成することが出来るようになった.
電子回路基板と SUZAKU の結合テスト
SUZAKU 担当の長田と結合テストをする際に,私の
作成した電子回路基板では SUZAKU のピン番号に対応している場所などが見やすい状態で
はなく,ピン番号の特定に手間がかかってしまう状態であった.対策として基板にピン番号
の 1 番,もしくは 1 番後ろのピン番号を油性ペンなどで印をつけることによって,お互いに
見やすいような基板の手直しをすることで対応した.これによって円滑に結合テストをする
ことが出来るようになった.また,オシロスコープの操作方法を学んだことによって,問題
なく信号が送れているかなどの確認を行うことが出来き,今後の結合テストも円滑に進むこ
とが出来るようになった.
電子回路基板とボリュームの結合テスト
ボリュームの場所や,接続方法は 3 年前のプロジェクト
の走行体をそのまま利用させていただいたので,特に変更はなかった.ただ,接続されてい
た接着剤の部分が折れていたので,再度接着剤で接続しなおした.その際にボリュームの隙
間に接着剤が入らないよう注意をして接続した.
電子回路基板と制御用コンピュータの結合テスト
結合がうまく出来ない問題に対して,我々で原
因特定が出来なかった.しかし単体テストをして SUZAKU と制御用コンピュータでは問題
がないということがわかり,原因が基板周辺にあるということまで絞り込むことが出来た.
最終発表のポスター作成
中間発表で使ったポスターの変更があった場所の手直しと,新たに必
要となったシステム構成図などを付け足す程度で,ポスター全体のレイアウトなどの変更
は大きく変わらなかった.しかし,作成した文章などに矛盾があったり,違うことを述べ
ている部分があった.適切でない文章を佐藤教授に手直ししていただいて,ポスターを完
成することができた.しかし,ポスター印刷をする際に PDF で書き起こしたファイルがう
まく表示されないという問題が起こってしまった.この問題は書き起こす際に PDF ではな
く PNG で書き起こすことによって対応することが出来たが,根本を解決することはできな
かった.予想での原因として考えられることは,ポスターで使った写真などはサイズを縮小
せずそのまま挿入して利用していた.このことによって PDF に書き起こす前の ai ファイ
ルのサイズが,とても大きいサイズになってしまっていた.これが原因で PDF に書き起こ
す際,うまく表示できなかったのではないかと考えられた.今後ポスター作りをする際は,
挿入する写真のサイズに気を配って縮小して,合計サイズが大きくならないよう作成しなけ
ればならないということがわかった.
最終報告書のスライド作成
中間発表での発表スライドに後期の活動を付け足す内容で作成した.
メンバーと話し合い,スライドの流れも中間発表と同様な流れで作成した.私一人で作成し
ているとき,どのように作成他方が良いか,詰まってしまうことが多々あり,時間がかかっ
Group Report of 2012 SISP
- 35 -
Group Number 5-A
Human Support System
てしまった.結果として,発表ギリギリにスライドが完成するという事態に陥ってしまい,
私以外の発表者の練習に時間を割くことが出来なくなってしまった.作成している時点で詰
まってしまった場合,他のメンバーに意見を早い段階で聞くことが重要ということがわかっ
た.また私が作ったスライドは背景や概要を述べたあと,開発したことの内容,そして最後
にデモをする,という流れで作成した.発表練習の際,長崎准教授,和田教授に発表練習の
レビューをいただいた.そのときのアドバイスとして,プロジェクトで起こった問題,それ
にどのように対処したか,そこから得たことは何か,などの内容は入れないのだろうか,と
いう指摘をいただいた.私は内容を見直し,デモが終わった後に教授から指摘していただい
た内容を入れて,スライドを完成した.しかし,発表後のアンケートを見たところ,プロ
ジェクトで学んだことなどの内容が長すぎる,というご意見もあり,発表スライドの作成の
難しさを学ぶことができた. (※文責: 伊藤大輔)
5.4.2
長田昌浩
開発環境構築 開発環境を整えるために過去の先輩の報告書を参考することにより,スムーズに開
発環境を選べた.しかし,開発環境や FPGA 設計について知識が足りなかった.そのため
すぐに開発に取り掛かることは出来なかった.開発用の PC に先輩のソースコードが残って
いたため,参考にしようとした.しかし,先輩のソースコードを読んで理解することができ
なかった.
IP コアの追加 私は FPGA 設計の学習として LED ライトを点灯させることから始めた.LED
ライトを点灯させるためには IP コアを追加する必要があり,SUZAKU のスターターキッ
トのマニュアルに従って学習を進めた.しかしマニュアルで使われている単語の意味を理解
できなかった.そのため,web で検索することにより単語の意味を理解することが出来た.
マニュアル通りに進めると LED ライトが点灯した.LED ライトを点灯させる機能を作る
ことで外部出力の方法を学習することが出来た.また,バスの幅を変えることで一つの IP
コアを使って複数の外部出力が出来ることも学習した.
モータの回転速度の調整
私は外部出力の方法を学習した.しかし外部出力は ON と OFF しか出
力できないため,モータの回転速度を変更することが出来ないという問題があった.長崎准
教授に相談したところ,PWM 制御が適しているということを教えていただいた.PWM 制
御を実装することで LED ライトを指定した時間で点滅させることが出来た.PWM 制御を
走行体のモータの出力に適応すればモータの回転速度を変更できるようになった.
走行モータの制御
走行体で使用するモータは 4 つの ON と OFF のパターンでモータを正回転,
逆回転させた.このパターンを間違いなく制御するために長崎准教授に Mixer という IP コ
アを追加していただいた.Mixer は 2 ビット信号と PWM の入力として持ち,2 ビットの
信号のパターンによりモータを正,逆回転させる.Mixer の追加は問題なく進んだ.Mixer
の内部についても長崎准教授の作業を見ていたためソースコードで何をしているのか,理解
することが出来た.
電子基板回路との結合 電子回路基板作製担当の伊藤と共同で行った.電子回路基板と結合する際
に,長崎准教授の助言を頂いた.結合する際に出来るだけ小さい単位でデバック,結合を行
うと問題が起こっている場所を特定しやすいと教えていただいた.我々も助言の通り結合を
行った.私の FPGA 設計側の単体テストでは成功していたが,結合すると思ったとおりに
Group Report of 2012 SISP
- 36 -
Group Number 5-A
Human Support System
信号が送れていなかった.そこで伊藤に電子回路基板の確認をしてもらった.伊藤が確認し
ている間に私の作業でバグが起こっていないかもう一度確認した.結合する際にテスト用基
板と伊藤が作製した電子回路基板の違いだけだったため,電子回路基板の仕様が違う場合し
か考えられないため仕様の再確認を行った.するとテストで使用した基板は基板への信号
が”1”で電流をとめる信号であることが分かった.走行体に搭載する電子回路基板への”1”
の信号は電流を流す信号であるためこの部分が間違っていることが分かった.間違っている
部分が Mixer のソースコード内にあったため間違っている部分を変更することで正しい信
号を送ることができた.Mixer のコーディングに立ち会ったためすぐに修正することが出来
た.モータに接続する前まで全てデバックを終えたので駆動用モータに接続したところ,正
しく動作しているのを目視で確認することが出来た.
前輪の制御 前輪の制御を行う際に操舵用モータが可動可能範囲の限界値からさらに過剰にモータ
が回ってしまう問題が起きた.そのため前輪に取り付けた可変抵抗器の値を読み,モータの
回転角度を取得する必要があった.可変抵抗器の値は AD コンバータを通して SUZAKU
に入力されるため AD コンバータの仕様を理解する必要があった.そのため AD コンバー
タの仕様書を読み,AD 変換の仕方を理解した.仕様を理解し,ソースコードで仕様どおり
のタイミングで電流を流すと可変抵抗の値を取得することが出来た.
制御用コンピュータとのシリアル通信
SUZAKU にシリアル通信を行う際に起きた問題も,出来
るだけ小さい単位からデバックを行った.ここでも単体テストは SUZAKU のスターター
キットの基板を使用した.何度も単体テストが必要になるためテスト用の基板があるとデ
バックの単位が小さくなり開発がスムーズに進んだ.
画像処理アルゴリズムとの結合 最後に画像処理アルゴリズムと結合テストを行った.テストの結
果は芳しくなく,思ったような走行をさせることが出来なかった.最終的にシステムの規模
を小さくすることにより清秋成果発表ではデモを行うことが出来た.ここまで開発を行って
きて最後の思ったとおりの振る舞いにさせるこの部分の作業が一番難しく感じた.問題を見
つけることとその問題の解決策の知識があれば問題が解決できていただろう.
(※文責: 長田昌浩)
5.4.3
大柳亮輔
画像データの取得
私はプログラミング環境を整えるのに手間取った.使ったソフトは Visual
C++ 2010 Express と OpenCV の 2 つだけだったが,両方とも使ったことがなくインス
トールから始めた.中でも OpenCV を使える環境にするのが一番大変だった.OpenCV は
Visual C++ 2010 Express 上で使えるようにするのだが設定の仕方が複雑だったため,書
籍や web で調べながら環境設定した.他にも Visual C++ 2010 Express を使い慣れるの
にも時間がかかってしまった.私は画像処理のプログラミングの経験が全くもってなかった
ので,環境が整いプログラミングを行う段階となっても,ビデオカメラからの映像を取得す
るプログラムをどのように作成していくのかがわからなかった.どういった理屈でプログラ
ムが動いてビデオカメラからの映像を取得しているのか理解出来ない状態だった.私はいつ
もビデオカメラの映像を表示するのに市販のビデオカメラに付属しているソフトを立ち上げ
て行っていた.そういった経験しかなかった私は最初自分でそのようなプログラムを作成出
来ないのではないか思っていた程であった.しかし,画像処理の学習を進めていくうちに理
解出来るようになった.
Group Report of 2012 SISP
- 37 -
Group Number 5-A
Human Support System
シリアル通信の学習
白線検知と障害物検知のシステムは初め 2 人で役割分担をして進めていた
が,予定通りに進まなかった.そのため,その次に行う制御用コンピュータと SUZAKU を
繋げるシリアル通信の作業に中々移れずにいた.走行体を制御して自律走行させるのに,シ
リアル通信のプログラムが必須であった.先に白線検知プログラムと障害物検知プログラム
が完成しても走行体を自律走行させる命令を SUZAKU に送れないので早急に終わらす必要
が出た.そのため,白線検知プログラムと障害物検知プログラムは一人でも出来る状態まで
作業が進んでいたので,そちらの作業は高橋に任せて私はシリアル通信のプログラムの開発
に移った.私はシリアル通信の学習をして,Win32 API とシリアル通信の仕組みを理解出
来た.
シリアル通信の設計
私は SUZAKU に送る文字を深く考えないで設定した.そのため,右に曲が
る命令を出す文字が‘l’だったので,Left の頭文字と混合して分かりづらくなった.しか
し,直す時間がなかったのでそのまま訂正せずにやりきった.
シリアル通信プログラムの開発 私はシリアル通信のプログラムを作成した.シリアル通信は手順
通りに行えば問題なく出来た.しかし,クロックの同期式と非同期式の違いがわからなかっ
たことでプログラムが上手く動作しなかった.私はこの問題に相当な時間を割いてしまい戸
惑った.プログラムが上手く動作しない理由がどこにあるのかわからない期間が続き,シリ
アル通信のプログラムが完成しないことで他のメンバーにも迷惑をかけてしまった.私の作
業が中々終わらないので他のメンバーに協力を求めた.メンバーに別の視点からソースコー
ドを見てもらったことでクロックの同期式と非同期式が混合しているのに気づけた.今回は
制御用コンピュータから SUZAKU へ送信するだけだったので受信のプログラムを考えない
で済んだ.受信はいつ SUZAKU のデータが制御用コンピュータに受信するかを考える必要
があり,受信待機する時間やタイムアウトする時間なども考える必要があった.そのため,
プログラムが上手く動作しない問題があった中,受信の内容もプログラミングしていたら終
わらなかっただろう.
画像処理システムとの結合
私たちは画像処理システムのプログラムとシリアル通信のプログラム
は同じプログラミング環境で行っていた.そのため,統合するのに問題は起こらなかった.
私はシリアル通信に移る前に画像処理の学習を行っていたため,画像処理のプログラム内容
も大体把握出来た.そういった予備知識があったため,結合はスムーズに行いその結果結合
することに成功した.画像処理システムのプログラムとシリアル通信のプログラムを結合す
ることで,操舵システムと障害物発見後停止するシステムの完成に近づいた.しかし,実際
に走行体を使用してシステムを動かしていないため完全に完成したとは言えない.それに計
画では障害物回避システムを開発する予定だったけれども,現段階で完成しているのは障害
物発見後停止するシステムである.従って,障害物を回避するシステムは完成していない.
これは本来 2 人で作業するはずだった画像処理システムを高橋一人だけに任せたのが原因と
して挙げられる.高橋は私が途中でシリアル通信プログラムの作業に移ったため,一人で作
業することになった.これについて本グループはスケジュールが甘かったと反省している.
スケジュール作成時にシリアル通信プログラム作成のタスクがあることを把握していれば,
その段階で考慮して計画を立てれた.しかし,シリアル通信プログラム作成のタスクは活動
中に必要だと気づいた.そのため,活動中に担当が代わる事態が発生した.もし,計画通り
に二人で分担していたら障害物回避システムも完成していたかもしれない.そう考えると悔
やまれる点であった.
電子回路基板と制御用コンピュータとの結合
Group Report of 2012 SISP
結合方法はシリアル通信プログラムを動作させて文
- 38 -
Group Number 5-A
Human Support System
字を電子回路基板に送信し,走行体のモーターが命令通り回転するか確かめた.電子回路
基盤に不具合があったため,私は電子回路基板に送信する前に,SUZAKU に文字を送信し
送った文字を制御用コンピュータに送り返すテストを行った.その際,テストに用いるアプ
リケーションは動くことがわかっているものを使用するべきと長崎准教授にアドバイスをい
ただいた.理由は動くかわからないアプリケーションを用いてテストを行った場合に,プロ
グラムが動作しなかったら問題はプログラムなのかアプリケーションなのか判断出来ないか
らである.このアドバイスに従い,Tera Tarm を使用した.そしてこのテストは成功した.
その後,電子回路基板に文字を送信した.命令通りモーターが回転したため,文字を送信す
るのに成功した.従って,電子回路基板と制御用コンピュータとの結合は成功した.
走行体の走行調整
走行体に開発した 2 つのシステムを搭載して自作のコースを走らせた.操舵シ
ステムは思い通りに機能しなかった.走らせた走行体は白線の中心を走行出来ずコースから
外れてしまった.我々は走行体のスピードを変え白線の間を走行出来るよう調整したが,最
終成果発表に間に合わなかった.結果,操舵システムは完成しなかった.電子回路基板と制
御用コンピュータとの結合が終わり,走行体が走れる状態になったのが最終成果発表の間近
であった.操舵システムは走行体に搭載してから調整が必要だったが,調整する時間が少な
かった.本グループは走行体の完成をもう少し早く終えるべきであった.スケジュールでは
8 月中旬には完成している予定であったため,スケジュールの遅れが問題である.そして,
本グループは計画を十分に立てるべきであった.スケジュールが遅れたときに明確な対策を
打つべきであった.障害物発見後停止システムは完成した.これは走行体が完成した後に行
う調整が少しだったため,少しの時間で完成することが出来た.従って,本グループが完成
したシステムは障害物発見後停止システムである.成果物として障害物発見後停止システム
を搭載した走行体が挙げられる.この走行体は特定の色の障害物を検知し,ある程度の距離
に近づくと停止するものである.
(※文責: 大柳亮輔)
5.4.4
高橋秀友
画像データの取得
画像処理するための環境をパソコンに作るために,開発環境は Visual C++
2010 Express を使用することに決め,コンピュータビジョン向けライブラリの OpenCV
も使用することに決めた.Visual C++ 2010 Expres と OpenCV をインストールおこなっ
た.しかし設定が複雑だったため設定に時間が多くかかってしまった.web や書籍を見るこ
とで,我々のプロジェクトの目的である 2 本の白線を検知し,走行体がその間を走行する命
令を出すプログラムと障害物を検知し,走行体が回避または停止する命令を出すプログラム
を実装するための基本的な学習をすることができた.白線と障害物を認識するために,どち
らも画像を 2 値化する処理が必要である.Web と書籍を参考にしてファイル上の画像デー
タを 2 値化すること,カメラからのリアルタイム映像をパソコンとディスプレイ上で表示す
るプログラムを実装することができた.画像データを 2 値化する基本的なこととカメラか
らのリアルタイム映像をパソコンのディスプレイに表示する方法を学べたので白線検知,障
害物検知するプログラムを実装する際の基本を学ぶことができた.
白線検知 2 本の白線の間を車体が走行するためのラインを検出するために,白線の座標を取得す
る必要があった.カメラから取り込んだ画像データを 2 値化処理をすることで白線を抽出
し,白線を検知した.以下に白線を検知するプログラムを実装した画像処理の結果を示す.
Group Report of 2012 SISP
- 39 -
Group Number 5-A
Human Support System
図 5.1 2 値化前
図 5.2 2 値化後
走行ライン検出
カメラから取り込んだ画像データに 2 値化処理をおこない白線を抽出し,2 本の
白線の中心を算出する.最初に考えた 2 本の白線の中心を算出するアルゴリズムは,白線の
中心を算出するのに多くの時間がかかってしまっていた.白線の中心を算出するための処理
Group Report of 2012 SISP
- 40 -
Group Number 5-A
Human Support System
が少ないアルゴリズムに変えることで解決することができた.これまでは,パソコンの処理
速度などを意識することなくプログラムを実装していたが,パソコンの処理をならべく減ら
すようにアルゴリズムを考えるようになったのでよかった.白線の中心と車体に取り付けた
カメラの画像データの中心とのズレを元にステアリングの角度を決定するプログラムを実装
した.以下に実装した画像処理の結果を示す.
図 5.3
Group Report of 2012 SISP
走行ライン検出前
- 41 -
Group Number 5-A
Human Support System
図 5.4
走行ライン検出後
障害物検知 障害物を赤色と定義した.車体に取り付けたカメラから画像を取り込み,取得した画
像の赤の輝度値を取得し,その赤の輝度値がある一定以上とそれ未満で 2 値化処理を行っ
た.2 値化後の画像から障害物を抽出し,障害物を検知した.以下に実装したプログラムの
画像処理の結果を示す.
図 5.5
Group Report of 2012 SISP
障害物検出前
- 42 -
Group Number 5-A
Human Support System
図 5.6
障害物検出後
障害物回避 最初に障害物を避けるときは走行体は白線の外側には出ずに障害物を避け,その後白
線の中心を走行すると定義した.障害物を避けるアルゴリズムは,白線の中心を出すアルゴ
リズムと似た処理にすることにした.2 本の白線の中心を出すときには,左側の白線と右側
の白線の座標を足し合わせたものを 2 で割ることで 2 本の白線の中心を割り出して走行ラ
インを検出する際に用いていた.カメラからの画像データを障害物の赤色の輝度値で 2 値
化処理をおこない障害物を抽出した.その障害物の左側か右側の障害物の座標と左側か右側
の白線の座標の 2 点を座標を足し合わせ,2 で割った値の座標を算出するプログラムの実装
をおこなった.しかし,プログラムはうまく動かなかった.画像処理の際にフィルタ処理を
おこなえばうまくいっていたかもしてないが,時間がなかったので方法を変えることになっ
た.障害物を回避するアルゴリズムを決め内でおこなうことにした.障害物のピクセル数が
ある一定以上になった時に右に何秒間か曲がり続け,次に,白線を探索しながら,左に曲が
り続け,白線を発見した場合は,2 本の白線の中心を走行するプログラムを実装した.実装
したプログラムは,走行体が障害物を回避するところまでは時間がなく,実際に走行体が障
害物を検知して右に曲がる動作は確認していない.また,右に数秒程度曲がった後に障害物
が白線を探索しながら左に曲がり,白線の中心を走行するという動作はそもそも走行体が白
線の中心を走行することができていないとできないため実際にテストはおこなっていない.
しかし,カメラからの画像データを 2 値化処理をし障害物を検知し,ある一定以上のピクセ
ル数になった際に右に曲がるという命令を出す.次に,数秒後に左に曲がるという命令を出
すという処理は printf を使い,ターミナル上に命令を表示させ,命令が出せていることは確
認した.
障害物発見後停止
障害物を 2 値化処理をおこない検知し,障害物がある一定以上のピクセル数に
なった場合,走行体に停止する命令を出すアルゴリズムを実装した.
システムの結合,デバック
これまで実装してきた走行体が 2 本の白線を走行する命令を出すプロ
Group Report of 2012 SISP
- 43 -
Group Number 5-A
Human Support System
グラムと障害物を回避または停止する命令を出すプログラムを結合して同時に処理をおこな
わなければならなかった.しかし,その方法を見つけることに時間を多く使ってしまった.
シリアル通信のプログラムと結合 実装した画像処理プログラムの命令を SUZAKU へ出すために
シリアル通信のプログラムと結合した.最初は,シリアル通信のプログラムとどうの結合す
ればよいかわからなかった.メンバーのアドバイスにより,関数としてシリアル通信プログ
ラムを画像処理プログラムに追加することにした.シリアル通信プログラムをポートを開く
などの機能に応じて分割して関数として画像処理プログラムに追加していった.しかし,走
行体に命令が送られているかを確認したところうまく命令できていないことがわかった.そ
こで,関数を機能ごとに分割しないでシリアル通信プログラムを1つの関数として画像処理
プログラムに追加することで命令を SUZAKU に出すことができた.
SUZAKU と結合 シリアル通信により SUZAKU へ命令を出せるようになった.8m くらいの
曲がったコースを作製し,画像処理プログラムと SUZAKU との調整をした.動いている走
行体に取り付けたカメラからの画像データを処理しながら画像処理のプログラムを動かし
た.2 本の白線内をうまく走行することができず,すぐに白線からでてしまった.実際に走
行体と動かして,走行体のカメラの角度や 2 本の白線から中心を算出する際のy座標の位置
などの調整をおこなった.しかし 2 本の白線内をうまく走行できなかった.画像処理プログ
ラムから SUZAKU へ命令がでているか,どのタイミングででているかを知るために画像処
理プログラムに printf を使いターミナル上に表示した.そこで命令が連続で出し過ぎている
問題があることがわかった.プログラムを 2 度連続で同じ命令を出さないように書き換える
ことで連続で命令を出す問題は解決することができた.それでも走行体は思ったような動作
はしなかった.プログラム上でできていると思っていたとしても実際に走行体を思ったよう
に動かすことは難しいということがわかった.原因や対策もわからづに最終成果発表をする
ことになった.しかし,最終成果発表では小規模なデモを行うことができた.最終成果発表
では,走行体への操舵の命令を 2 パターンの左に曲がるか右に曲がるかにしておこなった.
(※文責: 高橋秀友)
Group Report of 2012 SISP
- 44 -
Group Number 5-A
Human Support System
第6章
今後の課題と展望
電動 4 輪モデルカー(走行体と呼ぶ)の自律制御を目的として,走行体の動作制御プログラム,
制御用コンピュータと走行体を接続するための電子回路基板,および画像処理プログラムを開発し
た.走行体の動作制御プログラムは FPGA を走行体の動作に合わせて設計した.FPGA は駆動用
モーターと操舵用モーターの制御を行う.これらのモーターを制御することで走行体を走らすこと
に成功した.制御用コンピュータと走行体を接続するための電子回路基板は走行体に搭載し,走行
体専用の電子回路基板を設計した.電子回路基板は教授に電子回路図を作成していただき,それを
元に部品配置図の作成して,配線の半田付けを行い完成させた.操舵システムは走行路を表す 2 本
の白線の中心を求め,その中心に従って操舵輪を制御する.しかし,本プロジェクトで開発した操
舵システムは走行体が白線に従って走行できなかった.原因は PC の計算速度と走行体の速度を考
慮せず操舵システムを開発したことが挙げられる.結果として操舵走行システムは完成しなかっ
た.障害物回避システムは障害物を検知し,白線の走行路とは別のルートで障害物を回避する.し
かし,操舵システムが未完成のため,操舵システムと連動した障害物回避システムは完成しなかっ
た.未完成の障害物回避システムの代わりに,障害物を検知したら走行体を停止させるシステムを
開発した.このシステムは操舵システムとは無関係なので完成した.プロジェクト活動を通して,
本プロジェクトはスケジュール作成の不十分と作業工程の細分化が行われていなかったことが本プ
ロジェクト失敗の大きな原因であった.本プロジェクトが立てたスケジュールは個々人の能力とそ
の作業に必要な時間とのバランスがなされていなかった.理由として必要とされる作業を経験し
た者がいなかったので,各作業にかかる時間が分からなかった我々は経験者がいない作業のスケ
ジュールを立てるのに,希望的観測でスケジュールを立てた.これによりスケジュールが遅れた.
他にもスケジュールが遅れたことに我々は注目せず作業を続けていた問題がある.スケジュールが
遅れた時にグループ内で話し合いを行い,その時点で対策を打っていれば計画がここまで崩れるこ
とはなかった.もうひとつの原因である,作業の細分化はスケジュールを立てる際にも必要なタス
クであった.作業の細分化が行われていれば,細かなスケジュールを作成できた.本プロジェクト
で作成したスケジュールは各作業の開始時と終了時しか決めておらず,作業内容のスケジュールを
作成しなかった.後期になり,予想される作業内容を含めてスケジュールを作り直した.しかし,
作り直したスケジュールも曖昧な作業内容だったためスケジュール通りにならなかった.本プロ
ジェクトは後期になり作業の遅れを懸念し,各自の作業工程を立ちミーティングという形で週 2 回
プロジェクトメンバー内に報告した.この活動は,各自の進み具合をお互い監視し合う目的があっ
た.しかし作業の細分化が行われていないため,作業の進捗を割合に出して明確化できずお互い監
視し合うことができなかった.初めから作業の細分化が行われていれば,各メンバーが自分のスケ
ジュールを正確に管理することができた.これらのことからプロジェクト活動を通して,目標を達
成するためにウォータフォールでいう上流工程の重要さ,特に必要な作業量を計算し個々人の能力
を考慮したスケジュール作成をすることが大切だと分かった.
(※文責: 大柳亮輔)
Group Report of 2012 SISP
- 45 -
Group Number 5-A
Human Support System
付録 A
新規習得技術
電子回路基板の作製
電子回路基板を作製する上で必要な半田付けの技術,電子部品の構造などを
習得した.
FPGA 設計 FPGA 設計を行うことで,FPGA 設計の基礎を学習した.
画像処理プログラムの実装
VisualC++2010 の開発環境で opencv を用いて,画像処理の基礎お
よびアルゴリズムを学習した.
シリアル通信プログラムの設計 シリアル通信を行うにあたって,設計するための基礎知識を学習
した.
Group Report of 2012 SISP
- 46 -
Group Number 5-A
Human Support System
付録 B
情報処理演習 I
活用した講義
FPGA 設計,画像処理プログラム,シリアル通信プログラム
情報処理演習 II FPGA 設計,画像処理プログラム,シリアル通信プログラム
ソフトウェア設計論 I
開発プロセス,UML 図
ソフトウェア設計論 II UML 図
ハードウェア基礎
FPGA 設計,電子回路基板作製
ハードウェア設計
FPGA 設計,電子回路基板作製
画像工学 画像処理プログラム
認知心理学演習
報告書執筆
アルゴリズムとデータ構造
画像処理プログラム
Group Report of 2012 SISP
- 47 -
Group Number 5-A
Human Support System
付録 C
アンケート結果
(前期)
発表技術について (10 点満点) 平均点数:6.98
アニメーションや現実例を述べて効果的に発表内容が設計されていた
スライドのフリーズは良くない,船を全然やらないのはよくない
声は大きくてよかったけど少したどたどしかったように感じました
写真や図をつかって分かりやすかったです
人に見せるプレゼンまでは出来上がってないと感じた
発表になめらかさが足りず,伝達しきれてない点が多くある.システムの具体的な手法等が
なく,イメージがしづらい.
図に対する解説がもう少し欲しいなと思いました.
声が小さくてよく聞こえなかった
Good speech (voice projection).Good rythm. Good practice time(not reading script).
本物の自動車(自律走行車)の写真を使うのは誇大広告的で良くない
聞き取りやすい発表でした.スライドと発表者を分けたほうがスムーズなのではないかと思
う.
発表者とスライドを切り替える人は別がいいと思います.質問に対してのコメントがちゃん
と出来ていたと思います.
requirement はあるが Content の検討が不十分(実装されたら recall)
別にポスターを使わなくても良いのではないかと思った.アニメーションはわかりやすくい
が少々テンポが悪く質がいまいち?少しだけ字が小さい.何を言っているかはわかりやすく
良かった.
大変聞きやすくわかりやすかったので発表原稿を覚えているとよりよくなると思いました.
とてもはきはきと言っていて聞きやすかったです.手も使っていて,わかりやすかったで
す.
質問対応などうまくできていた.
スライドの写真と字のバランスがよかった.
発表内容について (10 点満点) 平均点数:7.52
やっていることが目標に適していてかつ面白そうである
車のほうの今年の具体的な目標がよく分からなかった
「ゴールが分かりづらかった(実車の模型?)」というのは発表としては問題
冬になると雪のせいで白線が見えなくなってしまうので,それをあい決してもらえれば面白
いと思います
目標が定まっていて良いなと思いました.実際に自律走行車の開発をし,障害物認知などの
機能ができればいい名と思います.
まったく知らない人でも伝わるように内容が組まれていたと思う
具体性が足りず,目標が達成できるか不安です.
Group Report of 2012 SISP
- 48 -
Group Number 5-A
Human Support System
船班の発表が気になりました(車班だけでなく)
アニメーションを使っていたので,どういったことをやっていたのかイメージがつきやす
かった.
Good presentation. Too much animation interrupts flow. Background was too long.
very good graphics. Less presentation more demonstration. Good color schemes.
開発に用いる手法についての内容が少なく思う.
車班,船班,両方聞きたかったです.
まとまりがある
制約がある中で工夫を凝らしているところをアピールしているのが非常に良かった.車とい
う危険なものを扱うことになるのでもう少し詳細に内容をつめてほしい.
開発するシステムで上げられている目的地検知の部分が少なかったです.アジャイルで行う
場合でももう少し詳しく決めたほうが良いと思います.船班のことをもう少しふれたほうが
いいと思います.
わかりやすくて,興味がわきました.便利そうでとてもおどろきました.
今後のスケジュールなど細かく決められていたと思う.
各項目が明確でよかった.
車を所持しているか 20 名中 8 名
役に立つと思う機能 白線認知 (5 点満点) 平均点数:3.48
役に立つと思う機能 障害物認知 (5 点満点) 平均点数:4.10
役に立つと思う機能 目的地認知 (5 点満点) 平均点数:4.05
他にこれはあったらいいな,と思う機能
白線は実線が出来たら破線でもやったほうがよい
居眠り防止
すでに実用化されている技術に対抗するのではないのは分かったがスケーラビリティ(実車
を模型)には注意したほうが良い
スピードを出しすぎてたら,認知してくれるシステム
信号を見落とさないきのう
(後期)
発表技術について (10 点満点)
平均点数:6.11
効果的な方法ではあるが,スライドの字がかぶっていたりで見づらかった.
補足などはさみながら分かりやすい説明だった.
起承転結が明確でない.
スライドはわかり易いものでした.ただ,発表時間に対して枚数が多すぎるようです.
白線検知や障害物検知は既存の技術の延長にあると思われるが,先進性やこのプロジェクト
としての差別化ポイントが分かりにくかった.
デモは必ずうまくいくとは限らないので,対策を 2 重,3 重にでもとっておくべき (ビデオ
Group Report of 2012 SISP
- 49 -
Group Number 5-A
Human Support System
を撮るなど)
OK CLEAR SOME ENGLISH WOALD BE HELPFUL.TOO MANY BULLET POINTS.
プロジェクトの目的や活動内容などについては,わりとよく整理して説明されていた.活動
の遅れの部分,反省会ごめんなさいトークやや長く,くどいと思った.実現できたこと,成
果のほうをもっと話してほしかった.デモの back up プラン (障害物をもっと前に置く等)
を考えておいたほうが良かった.
デモでの障害物検知をやったが失敗で終わってしまったので,成功した例がわからなかった
ので成功しているときが見たかった.
発表技術,もうちょっと練習すれば上手くなったかと.
プロジェクトの遅れについて説明はしても良いと思うが,その部分の説明が長すぎると感じ
た.
少し文字 (スライドの) が小さいと思った.デモで障害物をよけるのを見たかった.スケ
ジュールのところが見にくい.人の誘導をしっかりしたほうが良いと思う.
発表場所的に不利 (他の発表場所と距離が離れている等が自分では思いつきましたが…) だ
と思うので,呼び込みが必要だと思います.
自分自身の言葉で話されていたので,理解しやすかったです.
会場が広すぎる.目的地指定などの実装していないものは,どのような技術で実装しようと
思っていたのか,わからなかった.
ポスターセッションも積極的にするべき.
長田君の説明,ずいぶん改善したようだ.画面の説明で,手をぐるぐる回すのはやめたほ
うがいい.マウスを持った手で画面を指さないこと (大柳君).説明しながら笑わない (大柳
君)
声がでかくてよかった.
長田君は完璧だと思った.大柳君は良かった.
聞き手がわかりやすいように発表していた.しかし,スライドの表示の仕方が少し悪かっ
た.「とりあえず」という言葉を使っていたが,これは良くないと思う.
長いです.
スライドの構成が悪く,内容が伝わりにくかった.
声量,テンポ,目配りが出来ていて,作りこまれていると感じた.
前半:若干早口.実演やボードを用いた説明は良かった.が,実演でできることがもう少し
多い,長いと良かった.後半:もう少し練習しておいて欲しい.全体:ちょっと長いです.
マウスの誤操作が多かったです.デモの失敗が残念でした.話は聞きやすく,わかり易い発
表でした.
声の大きさがよかったです.もう少し練習するべき.
資料,発表ともよく準備されています.デモが動けばよかった.
発表内容について (10 点満点) 平均点数:5.76
計画性があるようには感じなかった.また,長々と開発の遅れの原因を説明されてもうれし
くなった.
成果物についての詳しい話がもう少しあればよかったと思う.デモから伝わるものが少な
かった.スケジュールの反省ばかりのように感じた.
Group Report of 2012 SISP
- 50 -
Group Number 5-A
Human Support System
制約の意味が分かってない.
何が出来るようになったかの説明がありません.できないのが見積のまずさのみでいた.な
ぜそうなのか分析が欲しい.
スケジュール遅れに対しての対応は,それぞれ実施できているが実現可能性に対する検討や
事前の準備不足があったことはいなめない.
計画が遅れていたとはいえ,それなりに形になっていた点は評価できる.
GOOD TO DO DEMO,BUT DEMO I DID NOT WORK.
障害物検知や白線検知のアルゴリズムや処理の流れはどうだったんでしょうか? (説明がな
かったのでわかりません) 障害物検知ができたのわかりました.
反省点の発表のよう.
実装が進まなかった分,補えていたので良いと思いました.
デモが成功しているとこを見たかった.似たような技術,実現してたはず.技術説明 (こん
なことしました) っていうより,スケジュールの話ばかりされた感が強い.全体を通してス
ケジュールの話が多い目.
どう遅れたかよりも,そこから何を学んだかを強調したほうが良い.現状より何を良くした
ら,白線検知,障害物回避,移動速度等が改善できるか知りたい.
今後もし,このような無人の車ができたら,じぶんで 運転しなくて済むし,移動が楽にな
るので,興味深いものだと思う.
自分が思うダメなこと,というのを自分たちで理解しているのは今後生かせてよいと思いま
す.
何か新しい提案があればよかったと思います.これで何をしたいのかがよく理解できません
でした.
「人にサポート」というよりも,「人に代わって」になっているように思う.(全自動運転は,
人のサポート?) 「開発が遅れた」とか「その理由」は言わないほうがいいと思う.成果
発表会なので成果に重点を置いたほうが良い.
「ウリ」を始めにはっきり紹介してほしい.
最初のつかみとして,アイサイトはご存知ですか?これはいい.資料とてもわかりやすく
なった.写真のパワーだね.実装範囲の説明は,ちょっと苦しいが,これがあってよいと感
じた.デモは失敗.夏休みの開発がうまく行かなかった理由は?説明されてない.
目標に到達しなかったこと.
デモは失敗したけどある程度実装できそうでしたし,面白かった.
スケジュールの管理という基本的なことができていなかった.
計画はしっかり練ったほうがいいと思う.
導入からこのプロジェクトの核に至るまでにプロセスがしっかりとしていて良い.
いろいろ出来てないことが多く,目標のミスだとは思う.技術的になりない部分は仕方ない
が,その足りなかった部分の説明が長いかとも思った.
後半の,開発の遅れ原因の発表はもっと省略しても良かったのではないかと思いました.技
術面の発表をもっと聞きたかったです.
少しでもデモを動かせればよかったです.後半の開発の流れなどは発表知れなくても良いと
思う.成果発表という意味では不足していたと思われる.
今年の取り組みは,昨年までの取り組みと何が違うのかがよくわからない.台車は以前に作
成されたものであり,マイコンボード,画像処理の内容も既に見たもののように思う.うま
Group Report of 2012 SISP
- 51 -
Group Number 5-A
Human Support System
くいかなかった言い訳をしているように見える.
このプロジェクトで開発したシステムは役に立つと思いますか? (10 点満点) 平均点数:5.5
赤い障害物しか避けることが出来ないというのは,役に立たないと思いました.
完成できれば役に立つと思う.
完成すればすばらしいシステムだと思います.
似た技術 (障害物検知) は,もう導入されてなかったかと.
役に立つとは思います.現状この函館では雪が降っているし,白線が見えない.全国で利用
可能になるには信号や標識の認識の方が優先度が高いのではないかと思います.
障害物を検知することも大事だが,その後の動きが大事なのではないかと思いました.
役に立つかどうかはテストを繰り返して分かることだと思います.今日初めて聞いた人には
わからないと思います.
プロジェクトで”とりあえずやってみる”はあり得ない.開発の遅れの原因がスケジュール
更新の怠りとあるが,よくわからない.学んだことの深堀が足りない.
精度さえあれば・・・
5 つの機能がきちんと開発できていたら役立つと思う.
2 値化だけでは無理があると思う.
このままだと役には立たないと思う.
自分がとても興味を持っている分野で,聞いていて楽しかった.乗用車で実装するために
は,誤動作を必ずしないようにグレードアップが必要だと感じた.
現時点でのシステムでは厳しいと思います.
本当にこの技術が実現されればすごいと思います.
Group Report of 2012 SISP
- 52 -
Group Number 5-A