公立はこだて未来大学 2021 年度 システム情報科学実習
グループ報告書
Future University-Hakodate 2021 System Information Science PracticeGroup Report

プロジェクト名
めざせ宇宙開発-自律移動ロボット飛行プロジェクト

Project Name
Flying Autonomous Robot Project

グループ名
B グループGroup Name
B Group
プロジェクト番号/Project No.

15-B

プロジェクトリーダ/Project Leader
成田 凪

Nagi-Narita

グループリーダ/Group Leader
松田 洸

Koh-Matsuda

グループメンバ/Group Member
成田 凪

Nagi-Narita

坂東 紗希

Saki-Bando

瀧川 崚登

Ryoto-Takigawa

上松 大貴

Daiki-Uematsu

菊地 勇斗

Yuto-Kikuchi

平尾 渚羽

Miu-Hirao

山崎 琉清

Ryusei-Yamazaki

松田 洸

Koh-Matsuda

指導教員
大沢英一 三上貞芳

和田雅昭

AdvisorEichi-Osawa Sadayoshi-Mikami Masaaki-Wada

提出日
2022 年 1 月 19 日

Date of Submission
January 19, 2022

概要
CanSat とは、空き缶サイズの衛星をモデルとし名付けられた超小型人工衛星のことである。本グループでは独自のミッションを立てて検証するミッションコンペティションに基づいた機体の設計・製作を行い、「完全自律走行によるサンプル採取」を達成すべきミッションとして掲げていた。このミッションを達成する上で不整地での走行性能、機体の重量・堅牢性、取得した位置情報からの自律走行などの課題が挙げられた。ミッション達成に必要な要素を「飛行、構造、制御」に分けて、3 つ班にグループ分けを行った。そして３つのグループ間で連携を取りながら、一つの機体を作り上げていった。前期から夏季休暇にかけてミッションコンペ
ティションの設定や機体設計を行い、後期から本格的に機体の製作を行った。成果物としては、
パラシュートと完全自律走行や 2 種類のサンプル採取をするローバーを製作した。計画では投下からサンプル採取までの一連の実験を通しで実施する予定であったが、天候不良などの影響
で通しの実験を実施することが難しい状況になった。そこで一連の通しの実験を、
「投下」
、
「パ
ラシュートと機体の切り離し」、「地上走行」、「サンプル採取」の 4 つに分け、それぞれのシス
テムが正確に動作することを確認する実験を別々に行った。その結果、4 つの実験で各システ
ムが正確に動作することを確認できた。実験から得られた問題点を改良し、通し実験を実施するとともに、CanSat 競技会へ参加することが今後の展望となる。
キーワード

CanSat, ミッション, サクセスクライテリア（※文責: 山崎琉清）-i-Abstract
CanSat is a microsatellite modeled after an empty can-sized satellite. In this group,
we designed and fabricated the vehicle based on the mission competition, in which we
set and verify our own mission, and ”sample collection by fully autonomous driving”
was set as the mission to be achieved. In order to achieve this mission, the following
issues were identiﬁed: running performance on uneven terrain, weight and robustnessof the vehicle, and autonomous running based on acquired location information. The
necessary elements to accomplish the mission were divided into ”ﬂight, structure, andcontrol” and the groups were divided into three groups. The three groups then worked
together to create a single aircraft. From the ﬁrst semester to the summer vacation, we
set up the mission competition and designed the aircraft, and from the second semester,
we started to build the aircraft in earnest. As the deliverables, we made a parachute anda rover that can run completely autonomously and collect two types of samples. The
plan was to conduct the whole series of experiments from dropping to sample collection,
but due to bad weather, it became diﬃcult to conduct the whole series of experiments.
Therefore, we divided the series of experiments into four parts: ”dropping,” ”separating
the parachute from the aircraft,” ”running on the ground,” and ”collecting samples,”and conducted separate experiments to conﬁrm that each system worked correctly. As aresult, we were able to conﬁrm that each system worked correctly in all four experiments.
The future prospects are to improve the problems obtained from the experiments, tocarry out full experiments, and to participate in CanSat competitions.
Keyword

CanSat, Missions, Success Criteria,（※文責: 成田凪）

- ii -

目次
第1章

はじめに

1

1.1

背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.3

従来の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.4

従来の問題点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.5

課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

プロジェクト学習の概要

52.1

問題と課題の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2

課題の割り当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

活動内容

9

第2章

第3章

3.1

前期スケジュール

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93.2

後期スケジュール

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.3

作業詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

第4章

3.3.1

構造

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.3.2

制御

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

インターワーキング27

4.1

プロジェクト全体のインターワーキング . . . . . . . . . . . . . . . . . . . . . . .

27

4.2

グループ内のインターワーキング . . . . . . . . . . . . . . . . . . . . . . . . . .

27

実験

29

5.1

実験概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

5.2

実験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

5.3

解決手段と評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

発表会

41

中間発表会 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

第5章

第6章

6.1

6.2

6.1.1

概要

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

6.1.2

日時と場所 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

6.1.3

Zoom での質疑応答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

6.1.4

成果物 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

6.1.5

結果と考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

最終発表会 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

6.2.1

概要

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

6.2.2

日時と場所 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

6.2.3

Zoom での質疑応答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

6.2.4

成果物 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45- iii -

6.2.5
第7章

結果と考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

まとめ

48

7.1

プロジェクトの成果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

7.2

今後の展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

7.3

プロジェクトにおける自分の役割 . . . . . . . . . . . . . . . . . . . . . . . . . .

49

7.3.1

成田凪 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

7.3.2

坂東紗希 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

7.3.3

瀧川崚登 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

7.3.4

上松大貴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

7.3.5

菊地勇斗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

7.3.6

平尾渚羽 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

7.3.7

山崎琉清 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

7.3.8

松田洸 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

第8章

謝辞

55

付録 A

作成したプログラム

56

参考文献

65

- iv -

Flying Autonomous Robot Project

第 1 章 はじめに
この章では、本プロジェクトの背景と目的、従来の例や問題点、課題について説明する。
（※文責: 松田洸）

1.1

背景

現在、宇宙開発は、科学的知識の向上だけでなく社会インフラへと貢献を重ねている。しかし、
高コスト、複雑化、高信頼化への要求に伴い、安全性を保障し実験しなければならず、学生による宇宙開発は困難とされてきた。そこで、学生の宇宙工学における教育を目的として始められたのが、CanSat プロジェクトである [1]。

CanSat とは、空き缶 (Can) サイズの衛星 (Satellite) をモデルとし名付けられた超小型模擬
人工衛星のことである。1998 年 11 月ハワイで開かれた日米大学宇宙システム会議 (USSS98 :University Space Systems Symposium 98) でスタンフォード大学の Bob Twiggs 教授の提唱のもと始められた [1]。これを機に、アメリカや日本の大学を中心として、CanSat プロジェクトが盛んに行われている。

CanSat 競技会とは、まずロケットや気球に Cansat を搭載し上空から落としその降下中、または着地後にミッションを行う競技のことである。CanSat 競技会の競技種目は、カムバックコンペ
ティション (Comeback Competition) とミッションコンペティション (Mission Competition) の2 種類がある。 ミッションコンペティションでは、各団体がミッションを自由に設定し、報告書による事前審査、ミッション達成度、プレゼン テーションによって評価する [2]。本グループでは、
このミッションコンペティションの競技をもとに、CanSat の製作をする。
（※文責: 成田凪）

1.2

目的

本プロジェクトの目的は、CanSat の設計・構築・運用を通して、航空宇宙工学に関連した、電子工学、情報工学および通信工学技術といった人工衛星開発に必要な知識と技術を習得するとともに、人工衛星の打ち上げ、運用というプロジェクト管理について学習することである。
本プロジェクトの目標は「目標地点へ到達できる、姿勢制御および自律移動アルゴリズムを 取り入れた機体の製作」である。人工衛星を運用するうえで、目標地点へ到達することは最も重要なミッションの 1 つである。そのため、本プロジェクトでは CanSat を無事に目標地点へ到達させることを掲げ、さらに各グループごとにミッションの追加を行っていくものとする。
本グループの目的は、自ら設けたミッションを実施し達成することである。
（※文責: 成田凪）Group Report of 2021 SISP

-1-Group Number 15-B

Flying Autonomous Robot Project

1.3

従来の例

CanSat には 350ml クラスとオープンクラスの 2 つのサイズ規定がある。350ml クラスは重量350g 以下、高さ 240mm 以下、直径 66mm 以下であり、オープンクラスは重量 1050g 以下、高さ 240mm 以下、直径 146mm 以下である。なお、オープンクラスは、ARLISS の大会において多くの大学が採用している。
日本で行われている大会の中の一つに種子島ロケットコンテストがある。種子島ロケットコンテ
ストの CanSat 部門では、機体とパラシュート合わせて、直径 154mm、高さ 300mm の円筒に収まるサイズで、質量 1050g 以内という規定のもとコンテストを行う。CanSat による come-back
競技で、高度 30m 前後から投下し、その後、飛行または走行して、あらかじめ指定した目標地点

1のの近くに到着できるかを競う。図 1.1 に概念図を示した。飛行して目標地点を目指す場合は、○2 を行わずに○3 の目標地点に着地する。走行して目標地点を目指す場合は際に飛行制御を行う。○
1 の際に飛行制御を行わない。○
2 で走行制御を行い、○3 の目標地点へ到着する。また、○
1 で飛行○
2 で走行制御も行うことも可能である。さらに、come-back を行わない機制御を行い、着地後に○体も、審査員特別賞（企業賞）とプレゼンテーション表彰の対象となる。come-back を行わない機

2 の際に自身で設定したミッションを行う。
体は、○

図 1.1

ミッション概念図

過去の機体例として、サンプル採取のミッションを行った機体を ARLISS2011 東京電機大学の報告書 [3] より紹介する。ミッションは、あらかじめ任意に設定したポイントでの実機による土採取を行うというものである。ドリルを搭載し、モータとリニアレールを用いてめねじを通過する時にドリルが回転しながら上下することができる機構とした。
ここで、昨年度の作成機体を紹介する。

Group Report of 2021 SISP

-2-Group Number 15-B

Flying Autonomous Robot Project

Ａグループ
本グループでは一般的な 350ml クラスサイズとオープンクラスサイズのうち、350ml クラス
サイズの CanSat を設計、運用を検討してきた。ミッションは、CanSat の着地後の走行による軌道によって図形を描くというものである。ミッション達成のために、描いた軌跡を画像認識で線として出力することを試みた。本グループの実験の流れとしては、まずダムから CanSat を落下させ、パラシュートを展開させる。CanSat が地面に着地後地面を走行しつつ、その軌道で図形を描いた後、GPS センサによって与えられた目標地点を目指して走行し、ゴールする。
下に概念図を示す。左から、投下、軌跡を描く、目標地点へ走行という流れである。

図 1.2

昨年度の A グループのミッション概念図

B グループ本グループでは一般的な 350ml クラスサイズとオープンクラスサイズのうち、オープンクラス
サイズの CanSat を設計、運用を検討してきた。ミッションは、壊れやすいものを壊れないように運ぶというものである。ミッション達成のために、運搬物を入れる箱を作製した。運搬物としてチョークを採用し、これを衝撃吸収材とともに収納できるように設計した。本グループの実験の流れとしては、まずダムから機体を落下させ、グライダーによる空中移動を行う。緩衝材で衝撃を抑えて軟着陸し、コンテナから CanSat が出てきたら、センサ類の情報から自律走行をはじめ、あらかじめ決めておいた目標地点を目指して走行し、ゴールする。

図 1.3

昨年度の B グループのミッション概念図（※文責: 平尾渚羽）

1.4

従来の問題点

従来の問題点には、以下の 2 つの要素がある。

Group Report of 2021 SISP

-3-Group Number 15-B

Flying Autonomous Robot Project• パラシュートやパラフォイルが空中で展開する際に CanSat に絡まってしまい、着陸時にCanSat が破損してしまう。
• サイズ規定（重量、高さ、直径）を規定以内に収めるのが容易ではない。
サンプル採取ミッションの問題点には、以下の 3 つの要素がある。

• サンプルを複数種採取する時に、同じサンプルを採取してしまう。
• 複数採取したサンプルが混ざってしまう。
• 実験回数が少なかったために、不良が発見できない。
昨年度のプロジェクト学習の問題点には、以下の 5 つの要素がある。

• パラシュートでは落下地点の制御ができない。
• 機体のパーツを少なくしすぎると、基盤のセッティングに時間がかかってしまう。
• 障害物により、走行不能となる可能性がある。
• 誤差により、GPS センサだけでは正確にゴール地点まで走行できない。
• 落下の衝撃により、機体が壊れてしまう。
（※文責: 平尾渚羽）

1.5

課題

従来の問題点を参考に、問題の分析と改善策の考案、そして CanSat の自律制御による目標地点への到達を課題とする。また、今年度は昨年度に引き続き新型コロナウイルス感染症 (COVID-19)の拡大防止の影響により、本学での活動が制限された。そのため、スケジュール管理は大きな課題となる。

CanSat のミッションとは、CanSat が遂行する観測や実験など、プロジェクトの存在意義と価値を決定するものだ。CanSat の設計では、まず開発目的を端的に表したメントるを宣言する。次に、それを実現するためのサクセス・クライテリア

ミッション項目

ミッション・ステートとその成否判断の基準となを挙げる [4]。

本グループでは、サンプルリターンのミッションを遂行する。具体的なミッション定義については 2 章で後述する。 サンプル採取は実際の宇宙開発での主要なミッションであり、2020 年には小惑星探査機「はやぶさ 2」が小惑星リュウグウからサンプル採取し地球に持ち帰った。地球外の惑星からサンプルを採取し地球に持ち帰ることは、生命誕生の手がかりや宇宙の起源を迫る上で大変重要な試みである。しかしながら、サンプル採取は容易なことではなく、その惑星の重力や地表の状態など様々な要因に左右され、地球からの遠隔または自律制御でサンプルを採取することは過去の宇宙開発の事例を見ても極めて困難である。以上を踏まえ、本グループでは、実際の小惑星探査
機のサンプルリターンを模した実験を行い、安定して遂行することが可能な機体作成を行う。
（※文責: 成田凪）Group Report of 2021 SISP

-4-Group Number 15-B

Flying Autonomous Robot Project

第 2 章 プロジェクト学習の概要
この章ではまず、ミッションと問題の設定として第 1 章で説明した目的と課題から考えられる
ミッションと問題について説明する。次に、課題の設定として設定した問題に対する課題とアプローチを説明する。
（※文責: 松田洸）

2.1

問題と課題の設定

グループ B では CanSat による複数種のサンプル採取を目標とした。まずサンプル採取には自律走行や不整地での採取など様々な問題をクリアしなければならず、複数種のサンプル採取となるとそれに加えて採取したサンプルが混合するなどの問題が生じる。そこで我々は第 1 章 4 節で挙げた従来の問題点から特にサンプル採取に関わる問題点を選択し、具体的に解決しなければならな
い問題を列挙した。これらの問題を飛行物系、プログラム系、地上物構造系、地上物電子回路系の各班で作業分担し協力しながら解決していく。
以上のミッションを達成するために、B グループはサンプル採取に関する独自の課題を設定、またそれと同時にサクセスクライテリア（到達基準）を設定した。
また、本プロジェクトでは、ミッションをいくつかの段階に分け、実験結果がミッションに対してどの程度の成功であったかを評価する、B グループの到達レベルは 4 段階に分けられており、ミニマムサクセス (成功基準の 60 ％)、ミドルサクセス (成功基準の 80 ％)、フルサクセス (成功基
準の 100 ％) となっている。現時点では次の通りである。
ミニマムサクセス
本ミッションの基盤となる目標である。B グループでは、「採取地点 A まで走行する」と「サンプルを一種類採取する」という目標を設定した。
ミドルサクセス
サンプル採取という今回のミッションを達成する上でクリアしておきたい、ミニマムサクセスに次ぐ目標である。B グループでは、「採取地点 B まで走行する」と「サンプルを二種類採取する」という目標を設定した。
フルサクセスCanSat を用いてミッションを達成することを、ミドルサクセスからさらに発展させた目標である。B グループでは、「全てのサンプルが採取量 100mg を満たしている」と「最終目標地点まで走行する」という目標を設定した。
具体的に解決すべき問題と、その問題を選択したプロセス・課題・到達レベルは以下である。

Group Report of 2021 SISP

-5-Group Number 15-B

Flying Autonomous Robot Project

障害物による走行不能のトラブル

1. 問題を選択したプロセス
サンプル採取は実際の宇宙開発の現場を想定した不整地でおこなうため、地面の凹凸や石などの障害物により走行不能になる可能性があるから。

2. 課題
障害物によるミッション遂行を達成するため、障害物を事前に回避、または衝突後に移動
方向を変更するなどのアルゴリズムを実装した上で、あえて障害物を設置した不整地での走行を行い、安定した走行を行う。

3. 到達レベル
今回サンプル採取のミッションを行う場は、障害物等がある不整地と予定している。したがって、そのような不安定な場でも目標まで走行をできることが求められている。ここでの到達レベルは、着地後、確実に目標点まで走行できるようにすることである。

実験結果の再現性の確保

1. 問題を選択したプロセス
同じ条件下で実験を繰り返し、同じ結果を得られるという再現性の確保は非常に重要であ
るから。

2. 課題
実験結果の再現性を確認するために同じ条件下で実験を繰り返し行い、評価する。

3. 到達レベル
サンプル採取が確実に行えるかどうかは、サンプル採取をミッションに掲げる上で非常に重要な問題である。ここでの到達レベルは、再度実験を繰り返してみても同じ結果を得られるという再現性の確保ができることである。

機体の重量や堅牢性

1. 問題を選択したプロセス
CanSat にはミッションを遂行するにあたり Arduino、GPS、モーターなど多くの機器が搭載されている。しかし、これらの機器をむやみに搭載すると重量オーバーで走行できないという事態に陥ってしまう。また落下などの衝撃により搭載されている機器が故障など悪影響を及ぼす可能性があるため、機体の重量や堅牢性について考慮する必要があるため。

2. 課題
機体の重量は搭載機能や堅牢度によって変化する。堅牢で軽量な素材や、最低限の機器を使用することにより、機体の軽量化を図る。

3. 到達レベル
サンプル採取のための機構や、プログラム、電子回路等を搭載したまま自律走行する機体には、内部の破損を防ぐための耐衝撃性が必要であり、またそれと同時に軽量であることが求められる。ここでの到達レベルは、軽量で、着地時の衝撃でも壊れない丈夫な機体を作成することである。

Group Report of 2021 SISP

-6-Group Number 15-B

Flying Autonomous Robot Project

GPS による位置情報の取得
1. 問題を選択したプロセス
CanSat によるサンプル採取は GPS を用いた自律走行により行う。サンプル採取を行う
ためには、機体の現在地、目標地点の方角などを GPS で取得する必要がある。しかし、搭載機器のノイズによる影響や、GPS モジュールの精度などの問題から、正確な位置情報の取得は難しい。これらの問題を踏まえ、取得した位置情報のミッション遂行における活用方
法を考える必要があるから。

2. 課題
GPS により取得した位置情報の誤差を考慮し、機体が目標地点に到達可能なアルゴリズ
ムの作成を行う。

3. 到達レベルGPS によって位置情報を取得した後、マイクロコンピュータによってモーターを制御し、機体を目標地点まで走行させる。ここでの到達レベルは、GPS 情報から現在の位置を取得し、確実に目標地点まで走行できるような制御アルゴリズムを構築することである。

マイクロコンピュータによる制御

1. 問題を選択したプロセス
CanSat は GPS で位置情報を取得した後、マイクロコンピュータによってモーターを制御し、機体を目標地点まで走行させる。目標地点に到達するにはマイクロコンピュータに適切なアルゴリズムを実装し、作動させる必要があるから。

2. 課題
目標地点まで到達させるにあたり欠陥がないようなアルゴリズム作成を行う。また、自立走行するため、遠隔操作なしで動作が完結するようにする。

3. 到達レベル
今回は、CanSat との通信は行わず、自律走行のみでミッションを達成することを予定している。ここでの到達レベルは、遠隔操作を行わずに CanSat のみでミッションを達成することである。

落下地点の制御

1. 問題を選択したプロセス
サンプル採取は CanSat を高所から落下させて行う。その際にパラシュートが絡まるなど
空中での制御が困難になる可能性があり、目標の落下地点から大きく外れないような機体開発を行う必要があるから。

2. 課題
CanSat が目標の落下地点に到達するために、落下時に風の影響を受けにくい機体作成を行う。

3. 到達レベル
今回のミッションでは、パラシュートやパラフォイルを使った方法での落下を予定しているため、空中で細かく落下地点を制御するわけではない。しかし、風の影響を強く受けすぎ
ると、着地後の目標地点までの走行に、深刻な問題が発生する可能性がある。ここでの到達Group Report of 2021 SISP

-7-Group Number 15-B

Flying Autonomous Robot Project
レベルは、風による落下地点への影響を考え、その対策案を講じ制御できるようにすることである。
（※文責: 松田洸）

2.2

課題の割り当て2.1 で示した問題を解決できる CanSat を製作するにあたって、以下の項目に分類して課題の洗い出しを行った。
（※文責: 坂東紗希）

飛行制御系
一般的な CanSat で用いられるものと同様に、本グループでもパラシュートを基本とした降下機構を採用した。高所から投下するにあたり克服しなければならない課題は、高所からの落下ダ
メージをなるべく軽減することと、非操縦状態での飛行姿勢の安定性を確保することである。また

CanSat が地上に着地した際パラシュートが繋がったままなので、地上走行させるために CanSat
からパラシュートを切り離す機構も作成する必要がある。
構造系

CanSat の規定サイズ（250mm × 150mm）や重量（1050g）に収まるように、マイクロコン
ピュータ、バッテリー、モーターなど必要な部品を格納できる機体構造の設計と作成を目指した。
また高所から落下させるため丈夫な機体、そして地磁気センサを始めとするセンサが正確に測定できるようにするために不整地でも安定する機体の作成も同時に求められる。
制御系

CanSat の自律走行に必要になるアルゴリズムの考案と実装を行った。実験において CanSat が走行する際に問題になると考えられる位置情報の誤差、またタイヤの僅かな歪みや不整地という要因で CanSat が直進しない問題をどう修正、解決していくかを考える必要がある。
班の割り当てこれらの課題を解決して製作を進めるにあたって、グループメンバーで各分野を分担して勉強や設計、製作を進める。なお、まず始めに各自が希望する分野を担当できるようにメンバーを割り当てた。その後、分野ごとの人数にばらつきがでないよう、なるべく個人で特に注力する分野とサブで担当する分野の、二つの分野に跨る担当にすることで調整を行った。特に、飛行物系や構造系
は、他と違い集まって作業を迫られる都合上、人数不足による滞りを無くすため、担当者が多くなるように割り当てた。

• 飛行制御系：平尾、坂東、成田、山崎、菊地• 構造系：成田、山崎、菊地、平尾• 制御系：上松、坂東、松田、瀧川（※文責: 坂東紗希）Group Report of 2021 SISP

-8-Group Number 15-B

Flying Autonomous Robot Project

第 3 章 活動内容
この章では、本グループのミッションの活動スケジュール や作業詳細について説明する。
（※文責: 松田洸）

3.1

前期スケジュール

5月
まず、グループ内のリーダーやサブリーダーの管理職、議事録を記入する係を決めた。グループの目標を大会に参加するかを決めつつ、問題点を挙げるとともに決めていった。そして、グループ
で iCanSat についての資料の読み合わせを行い、CanSat についての予備知識をつけた。大学登校
日には、工房の基本的な説明を受けたり、先輩方から去年制作した機体の詳細や反省点を説明していただいた。

6 月上旬
グループ全体で去年使われた部品の確認と仕分けを行った。また、去年使用した部品や機体の動作確認を行い、ミッションの決定するため、他の CanSat 出場校の機体について調べ、共有した。
期末提出物であるグループ報告書についての作業の分担を行い、各自で進めた。また、機体作成する際の担当分野を機体制作、プログラム系と分け、さらに機体制作の中でも飛行物系と構造系の電子回路系、地上物系で分けた。そして、課題の再検討およびサクセスクライテリアを考えることで目標をより明確にした。

6 月下旬
オンラインの活動では、制作する機体についての担当分野を分けた。また、ミッションについて、アドバンスドサクセスは現段階で考慮しないという方向性に決めた。グループ報告書内部構
成のすり合わせしつつ進めた。大学登校日には、購入した部品の GPS、9 軸センサ、ArduCam、
モータードライブモジュールの動作確認を引き続き行った。その際、中間発表で使用するための写
真撮影を行った。

7 月上旬
中間発表に向けての準備および中間発表を行った。中間発表に使用するスライドを用いて練習する全体での活動が主となった。また、グループ・全体のそれぞれに想定される質問を挙げ、その回答を共有した。中間発表の準備をするにあたって、全体やグループの間での情報のやり取りが頻繁に行われたため、間違った情報を共有しないように Slack 等のコミュニケーションツールにて情報共有を慎重に行った。そのため、機体に関する活動に時間を割くことはできなかった。

Group Report of 2021 SISP

-9-Group Number 15-B

Flying Autonomous Robot Project

7 月下旬
中間発表終了後に Google Forms で作成した評価アンケートを用いて B グループの評価、良い点、悪い点を確認した。また、今後の作業に影響しそうな問題がないかなどを検討した。その際、メンバー同士のフィードバックを行い、グループ報告書、学習ポートフォリオ、学習フィードバッ
ク等の期末提出物を作成した。
（※文責: 上松大貴）

3.2

後期スケジュール

8 月上旬（夏季休暇）
機体考案をし、今後の機体作成の土台を固める。
また過去の部品も参考に予算で部品発注を行い、後期開始後にスムーズに開発に取り掛かれるよ
うに心がけた。

8 月下旬〜9 月（夏季休暇）
夏季休暇中であっても作業を進められるよう、夏季休暇中の目標と担当分野を決定した。しかし、各々インターンシップや集中講義があり詳細な予定が組めないため、担当ごとにできる限り予定を合わせて作業を進める。そのため Notion で各自の予定を記入しておき、事前にメンバーに知らせておくなどのスケジュール管理を行っていた。

10 月
飛行制御、構造、制御の 3 つの班に分かれて本格的に作業を開始した。一つの機体を作り上げるにあたり全ての班が連携できるように slack を中心として進捗報告を行った。その中で遅れていたり、アイデアに困っている班があれば他の班のメンバーが協力に入るなどした。また、制作する上での問題点があれば zoom ミーティングも使い、積極的に議論や確認を行った。1 月に本格的に実験することを見据えて、笹流ダムや大学事務などに実験申請の許可を取った。

11 月
ダムや大学構内にて実験を行った。実験は 1 週間など間隔を空けて複数回行い、実験で不完全だった所を修正し、次の実験を行うという形をとった。途中、天候不順などの理由で外での実験が思うようにできず屋内中心の実験に切り替えることになった。実験の様子や記録をカメラで撮影することを心がけ、映像は後から見返したり解析できるように GooglePhoto の共有アルバムを使って管理を行った。一通りの実験が終わったあと、最終成果発表会に向けて、これまでの実験結果をまとめる作業を行った。

12 月
成果発表会（10 日）に向け、スライド等を用いた発表準備をする。プロジェクトの目標や結果を分かりやすくどう聴講者に伝えるかを考え、ポスター、web サイトなどの作成も行った。
その後、最終発表会の評価フォームを集計し、期末提出物の作成に取り掛かった。

Group Report of 2021 SISP

- 10 -

Group Number 15-B

Flying Autonomous Robot Project

1月
仮提出の際に受けたフィードバックを基に報告書を推敲、訂正し、期末提出物を最終提出期限(19 日) までに完成させ、提出する。そして最終講義 (21 日) に向けて準備する。
（※文責: 坂東紗希）

3.3

作業詳細

3.3.1

構造

1. 飛行
本項では、CanSat のパラシュートとパラシュートの切り離し機構について説明する。
本グループでは飛行物にパラフォイルではなくパラシュートを採用した。パラフォイルは
目標の場所に着地させる事には適しているがパラシュートよりも展開の難易度が高くなる。
目的地から多少離れてしまうリスクとパラフォイルが展開せずに機体が自由落下してしまう
リスクを天秤にかけた結果、パラシュートを採用することにした。

パラシュートに要求される条件として、以下が挙げられる。

• 減速しながら着地することでの機体の受ける衝撃を軽減する• 落下速度が遅すぎるために、風に流されて目標の落下地点から大きく外れないようにすること• 非操縦状態での飛行姿勢の安定性を確保する• 落下開始直後パラシュートが完全に展開可能であること• 着地後に機体に絡まることなく切り離し可能であること
昨年度の飛行物系では、キャノピーの面積を運動方程式にあてはめて計算を行ったが、ほぼ垂直落下という結果で終わった。その原因と考えられるものとして以下が挙げられる。

• 頂部通気口を作らなかったこと• ラインの素材が絡まりやすいタコ糸であったこと• ラインの長さが長く絡まりやすくキャノピーが開きづらかったこと
パラシュートに要求される条件と昨年度の失敗の原因を踏まえ、パラシュートは以下のように作成した（図 3.1）。
（a）キャノピーについて説明する。キャノピーとはパラシュートの傘のような部分である。
この部分は、様々な先行論文などを確認した結果、本格的なパラシュートには八角形が多く用いられていたため、八角形にした。また、材料については、強度などの観点からナイロン生地を使用した。

Group Report of 2021 SISP

- 11 -

Group Number 15-B

Flying Autonomous Robot Project（b）ラインについて説明する。ラインとは、パラシュートのキャノピーと機体を収納する部分をつなぐものである。この部分の材質は、昨年度はタコ糸を使用したが、タコ糸が絡まりやすい素材であるため、ラインが絡まってしまう可能性が高かった。そのため、パラシュートの生地と同じく、パラフォイルなどに用いられるナイロン素材のものを使用した。
（c）スライダーについて説明する。スライダーとはパラシュートが開く間、ラインの間を徐々に滑り下りることによって、パラシュートの膨張を調整するものである。本グルー
プでは、スライダーのようにラインを徐々に滑り下りる機能は付けなかったが、MDFを用いてラインをまとめることで、スライダーと同様の機能を持たせつつ、ラインが絡
まってしまう可能性を低くした。
（d）外殻について説明する。外殻とは、本グループで考え出した、機体とパラシュートを安全に切り離すための機構である。機体を外殻で包み込み、外殻とラインをつなぐ。着地
後、外殻を展開することで、パラシュートを切り離すという目的のもと作成した。外殻には厚さ 0.5mm のプラスチック板を使用し、外殻の内側には着地の際の衝撃を吸収す
るために気泡緩衝材を貼り付けた。

図 3.1

パラシュートここから、キャノピーについて説明する。
昨年度のキャノピーの面積は、運動方程式にあてはめて計算を行ったが、その結果パラ
シュートの展開は失敗した。パラシュートのキャノピーは小さすぎると落下速度が速くなる
が、逆にキャノピーが大きすぎると開かない。そのため今年度は、昨年度よりも小さいキャ
ノピーを作成した。昨年度は、一辺 40.5cm のものを作成していたため、今年は、実際に一Group Report of 2021 SISP

- 12 -

Group Number 15-B

Flying Autonomous Robot Project
辺 35cm のキャノピーを作成して投下実験を行った。投下実験は天候の影響で外で行うことができず、風に流されるかどうかを試すことができなかった。しかし、体育館での投下実験
ではパラシュートの展開や落下速度に問題はなく、キャノピーの大きさに問題なしとして、一辺 35cm で決定とした。また、キャノピーには頂部通気口と呼ばれる穴をあけた。頂部通気口が無ければ、キャノピー内に溜まった空気は様々なところから溢れ出す。その為、パラシュートが傾き CanSat 機体が大きく振り子のように左右に振られる危険性がある。よって、キャノピー内に溜まった空気を外に逃がすために、直径 10cm の円形の穴をキャノピーの中心部分に作成した。

ここから、ラインについて説明する。
ラインのサイズについては、600mm、700mm、800mm のものをそれぞれ用意し、体育館にて投下実験を行った。軌道解析については、パラシュートと背景が同化してしまいうまく解析することができなかったため、実験の様子を収めた動画で最終的に最も安定性が見られた 700mm のものを採用した。実験の詳細については、第 5 章で後述する。また、ナイロン
素材のラインを使用したことで、投下中にラインが絡まってしまうことは一度もなかった。
ラインがほどけてきてしまわないよう、木工用ボンドを用いてラインの先端を固める作業なども行った。ラインとキャノピーは、キャノピーに穴をあけ、ラインをその穴に通して結ぶ
ことで固定した。

ここから、スライダーについて説明する。
当初は厚さ 5.5mm の MDF で直径 10cm の円形のものを作成した。実験を進めていくう
えでスライダー部分に耐久性を求める必要はないことがわかった。さらに、CanSat 機体全体の重量を減らすため、最終的に大きさはそのままで厚さ 2.5mm の MDF の中を十字型でくりぬいたものを使用した。ラインを通す位置に穴をあけ、通したラインをアロンアルファとセロハンテープで固定した。

ここから、切り離し機構について説明する。
当初予定されていた二つの案を紹介する。一つ目は、ラインと機体を直接つなげる方法である。着地後に機体に取り付けたサーボモータで一つに束ねたラインを引くことでラインがほどけ、機体と切り離せるというものだった。しかし、ラインと機体を、サーボモータで引く程度の力でほどけてしまうようなつなぎ方をすれば、投下時にラインと機体が容易に切り離されてしまう可能性があったため新たな案を考えた。二つ目は、機体を包み込む外殻を用意し、その外殻とラインをつなぐという方法である。外殻はテグスで固定し、着地後にニク
ロム線に電流を流して外殻を固定していたテグスを焼き切るというものだった。しかし、テグスを切断する際にニクロム線で機体自体に火がついてしまう可能性があった。さらに、投下時の衝撃にテグスが堪えきれず、外殻が空中で開いてしまう可能性もあったため、新たな案を考えた。
これら二つの方法を考慮して考え出した切り離し機構の説明をする。機体を外殻で包み込
み、外殻とラインをつなぐ。着地後、外殻を展開することで、パラシュートを切り離すという機構である。
外殻の固定には、バネ付きの金具 (ピン) を使用し、ピンで外殻を固定するためのピン取付用の金具を外殻に取り付けた。着地後、サーボモーターを駆動させることで、ピンを引きGroup Report of 2021 SISP

- 13 -

Group Number 15-B

Flying Autonomous Robot Project
抜き外殻を展開する予定であった。しかし、外殻が開こうとする力が左右に向かうことで、
サーボモータの力では、ピンをピン取付用の金具から抜くことができないと判明した。
そのため、次のように仕様を変更することとなった。外殻の固定にはピンを使用し、ピンで外殻を固定するための、ピン取付用の金具を外殻に取り付けた。外殻に設けられたピン取付用の穴にピンを通し、ピン先端にストッパーを挿し込むことでピンが抜けないように固定した。着地後、サーボモーターを駆動させることでストッパーを引き抜き、ばねの勢いでパラシュートを分離する。以上が最終的なパラシュートの切り離し機構である。
外殻の固定にピンを用いたことで、投下時や落下中に、空中で外殻が開いてしまう危険性を低下させ、テグスをニクロム線で焼き切るという工程をなくすことで、機体に火が付く危
険性も無くすことに成功した。外殻にラインを取り付けたことで、機体に直接ラインをつなぐよりも機体とラインが絡まってしまう可能性を低くする。外殻の内側には着地の際の衝撃を吸収するために気泡緩衝材を貼り付けた。当初は外殻の外側にも気泡緩衝材を貼り付ける予定であったが、端材に気泡緩衝材を取り付けたものと取り付けていないものを同じ高さから落下させる実験にて、気泡緩衝材を貼り付けた物のほうがより跳ねることが判明したた
め、外殻の外側に気泡緩衝材を貼り付けずに作成した。着地の際に機体が高く跳ねてしまうと、機体がスライダーを飛び越えて回転し、ラインに機体が外殻ごと絡まってしまう可能性が高いためである。外殻には 4 か所に穴をあけ、それぞれにスライダーに取り付けた紐を通し、アロンアルファとセロハンテープで固定した。ピン取付用の金具もアロンアルファを用いて固定した。
（※文責: 平尾渚羽）

2. 地上設計・製作
本項では、CanSat の機体本体の設計・製作の過程について説明する。
始めに、作成した CanSat 本体の概念図を図 3.2 に示す。

始めに、作成した CanSat 本

図 3.2 CanSat 本体の概念図

体の概念図を図 3.2 に示す。CanSat 本体の基本構造は 2 層構造となっている。上層にマイコン、センサ等の電子機器を搭載している。また、本報告書 3.3.1.1) で説明を行っているパ
ラシュートと CanSat 本体を分離させる機構で使用されるモーターについても、上層に設置

Group Report of 2021 SISP

- 14 -

Group Number 15-B

Flying Autonomous Robot Project
されている。そして、下層にはモーター、バッテリー等を搭載し、本グループのミッション達成に必要なサンプル採取機構についても下層に搭載することで地面のサンプルを採取しや
すいよう設計されている。2 層構造となった経緯は、モーターやバッテリー等の重い部品を下層部に配置することにより CanSat 本体の重心を下げ、走行の安定化を図ったためである。タイヤは不整地走行を想定しているため凹凸を付けた形状に設計した。また、後部にはスタビライザーを設置することで、さらなる走行の安定化が可能となっている。

本グループが作成した CanSat 本体は試作品を含めて全部で 4 種類存在するので、改良・修正の経緯とともに順を追って説明していく。
まず初めに作成した機体について説明する。この機体は走行実験を目的としたベース機体として作成された。また、当初から落下時の衝撃に耐えられるように堅牢さに重点を置いていた。5.5mm の MDF を使用しており、2 枚の底板に長さ 100mm のボルトを通し、ナットで高さを調整している。MDF の切り出しにはレーザーカッターを使用し、データ作成には Adobe Illustrator を使用した。実際に使用した切り出し図面については図 3.3 に示す。
モーター・バッテリーケースは 3D CAD ソフト”Tinkercad”で作成したものを 3D プリン
ターで出力している。上部のモーター設置部分は側面からモーターを挿入するため、取り外
しがしやすく、回路の接続やタイヤとの接続についても専用のスペースを設けることで問題なく接続することが可能となっている。固定に関してはケース自体がモーターの寸法で作成されているため、側面から挿入後、アクリル板で蓋をすることで固定が可能となっている。
バッテリーは片方で 2 個ずつ取り付けることが可能であり、モーター部分と同じくアクリル板で蓋をするため、走行中に外れる心配は無い。このモーターケースを挟みこむ形で 1 層目と 2 層目の底板が繋がっている。2 層目には 2.5mm の MDF を使用して作成した蓋付きのケースがあり、ケース内には Arduino や Raspberry Pi のようなマイコン、その他電子機器を搭載できる。蓋に関してはナットを埋め込んだ土台を底板に固定することでボルトを使って簡単に留めることが可能となっている。マイコンを搭載することでケース内に熱がこ
もり、故障の原因となってしまう危険性を想定して側面は格子状になっている。また、2 層目の底板には穴が開いており、1 層目のモーター・バッテリーから伸びる配線に関しても問
題なく 2 層目の配線に組み込める構造となっている。タイヤは直径 15cm であり、スポンジ
ボードを切り出し作成した。不整地走行を想定し、凹凸を作成している。また、タイヤ本体にはモーターとの接着をより強固にするためにアクリル板で挟む加工を行っている。
次に、この機体の問題点について説明する。
モーターケースの高さが想定以上に高くなってしまったために、機体全体の高さがタイヤの直径を超えそうになってしまった。また、底部から地面への距離が極端に短くなり、走行の際に邪魔になる可能性が浮上したので高さを抑える工夫が必要となった。他にも、モーターケースの形状とタイヤとモーターの接続を強固にするためのアクリル板の影響もあり、モーターシャフトが短くなりモーターとタイヤの接続が不安定となってしまう点も目立った。
しかし、モーターケースの高さが想定以上に高くなってしまったために、機体全体の高さ
がタイヤの直径を超えそうになってしまった。また、底部から地面への距離が極端に短くなり、走行の際に邪魔になる可能性が浮上したので高さを抑える工夫が必要となった。
そこで、底板などのパーツはそのままに、モーターケースを改良した図 3.7 の機体を説明する。以前まではバッテリーをモーターの下に設置していたが、モーターの横部分に余裕がGroup Report of 2021 SISP

- 15 -

Group Number 15-B

Flying Autonomous Robot Project

図 3.3

レーザーカッター切り出し図面

図 3.4 Tinkercad 上でのモーターケース

図 3.5

試作機

あったためバッテリーの位置を変更しモーターケースの高さを抑えることに成功した。また、上記で示した通り従来のモーターケースではタイヤとモーターの接続部分が短くなり、固定が難しいという問題があった。そこで、改良版のモーターケースでは今まで側面に設置していた固定用のアクリル板をモーターとタイヤの接続部分に変更することでモーターとタイヤの距離を従来の機体より薄くすることに成功し、より強固な固定を可能にしている。
モーターの取り付け方法にも変更を行い、側面ではなく正面から挿入しアクリル板で固定する方式に変更した。モーター本体が完全な深遠でなかったため、挿入口には突起の存在する

4 点に合わせて凹みを作成し、モーター挿入時に途中で詰まらないよう変更を施した。
しかし、この機体を使用した走行実験を行うことはできなかった。この機体は堅牢さに重点を置きすぎた結果かなり重くなってしまい、製作段階で 800g を超えてしまっていた。まGroup Report of 2021 SISP

- 16 -

Group Number 15-B

Flying Autonomous Robot Project
た、使用予定のモーターのトルクが足りず、この重量を動かすことができなかった。そのため、ここから先の機体はトルクの高いモーターを搭載し、軽量化を目標に作成することと
なった。

図 3.6

改良後のモーターケース

図 3.7

改良後の試作機（※文責: 山崎琉清）
次の機体としては、図 3.8 にあるように前回の機体の反省点として挙げた重量についての問題を改善した機体となる。図 3.5 にある機体からの改善点としては、機体の底板として使われている MDF の厚みを 5.5mm から 2.5mm とし、隅を支えているボルトは M6 の太さから M3 へと変更し、高さも限りなく低くした。また、モーターを協力で小さい物へと変更することで、重量と高さを下げることに成功した。懸念点であった、堅牢さも 2 枚の底板を支えるボルトやモーター入れがしっかりと機体を安定し、歪むことがないと結論づけることが出来た。検証として実際にモーターを稼働させてみると、問題なく走行出来ることも確認した。重量としては、基盤などを乗せない状態で 200g 程度の重さとなったこともあり、前回の機体から 4 分の 1 程度にすることが出来たのは大きな成果であった。しかし、タイヤや機体を保護するシートなどを付けた状態でのサイズが定めた規程を超えていることが判明したため、サイズを縮小した機体が求められた。

そこで内部の配置を見直し、タイヤのサイズも小さくすることにした。また、図 3.5 にある機体でも走行試験は出来ることから走行試験を行い、走行中は安定性を欠いていることが判明した。そこで安定性を増すため、機体の後方にスタビライザーという機体を安定させる機構を追加した。スタビライザーは、パラシュートで上空から落下させるため収納しなくてはならない。そのためある程度の強度があり、折り曲げられる物ということで、メジャーのGroup Report of 2021 SISP

- 17 -

Group Number 15-B

Flying Autonomous Robot Project

図 3.8

図 3.9

上記の改良機体

改良前と改良後の比較

一部を採用することになった。それにより機体は安定したが、より内部の面積を取ることになったため、バッテリーなどをモーター入れに食い込ませることで場所を確保し、固定を強固にすることに成功した。タイヤのサイズでは、モーターを動かす力として小さく軽い物の方が良いということから、直径 15 から 10 へと変更した。さらに、タイヤにあった大きさの凹凸を付けることで地面をしっかりと捉え、タイヤが滑ることを防止することが出来た。タ
イヤには多少柔らかい素材が使用され、パラシュートでの落下にもモーターや機体に負担が可能な限り行かないような工夫を施した。これにより走行は問題なく行われ、定めた規程以内に無事収めることに成功した。

次に図 3.11 にあるようなカバーをかぶせることで、機体の内部を外部からの刺激から守る工夫を行った。パラシュートにも使用した 0.5mm のプ
ラスチック板に気泡緩衝材を貼り付けることで、砂などが基盤に着くことを防ぎ、落下や衝突などに備え気泡緩衝材を外装に張ることで衝撃を軽減させている。

次にサンプルを採取するという目標があったため、Fusion360 などのソフトを使い、3Dプリンターで採取機構を作成した。図 3.12 にあるような、サーボモーターに簡単な綿棒のGroup Report of 2021 SISP

- 18 -

Group Number 15-B

Flying Autonomous Robot Project

図 3.10

図 3.11

最終機体

カバー付き最終機体

固定器具を設置することで、綿棒を動かし採取物を付着させるという機構を作成した。サンプルは 2 つ採取するという目標であったため、採取機構は前後で隙間なく配置することで、機体の大きさを変えずに作成することができた。サーボモーターの形状から、底板に直接配置する場合は採取機構が傾くことも分かったため、MDF の加工を行い上下からさらに固定することで安定性を高めることが出来た。
（※文責: 菊地勇斗）

図 3.12

Group Report of 2021 SISP

採取機構

- 19 -

Group Number 15-B

Flying Autonomous Robot Project

3.3.2

制御

1. 検証
制御班は B グループが掲げた「完全自律走行によるサンプル採取」を達成するために、

GPS 測位の位置情報誤差の検証から行うことにした。サンプル採取地点到達までには、事前に把握している目的地点への位置情報を目指して走行する。これより位置情報の精度は大変重要なものになっており、現在使用している GPS モジュールがどれくらいの精度で位置情報を取得できるのかを事前に知っておく必要があった。そこで今回、場所や衛星の状態など条件を変えて位置情報の誤差を検証することにした。

具体的な検証方法であるが、GPS モジュールから取得した位置情報を GoogleMap に入力し、実際の位置からどれくらい位置がずれているのかを調べてみる。また、その際に GNSS

View という衛星の位置を確認できるアプリを用いて、受信している 3 つの衛星がどのような状態にあるのかも確認する。
検証結果として、市街地では 30〜50m 誤差があったものの、笹流ダム公園では 3〜5 ｍ、
未来大前交流広場では 0.5〜2m の誤差という結果になった。

図 3.13

衛星測位誤差この実験結果から考えれることとして、衛星測位に関して干渉する要因の多い場所では位
置情報の精度に悪影響が出るということが考えられる。市街地では多くの人工物や遮蔽物が存在し、様々な電波が飛び交っている一方で、ダム公園や未来大前では周りに干渉する要因となるようなものが少ないことから精度が良いと判断した。（ダム公園での精度が未来大よ
りも若干悪いのはダムという巨大なコンクリートの構造物の存在が考えられる）Group Report of 2021 SISP

- 20 -

Group Number 15-B

Flying Autonomous Robot Project
また GNSS View も用いて、衛星が２つ出ている時と３つ出ている時にも調べ、衛星が３つ出ている時が一番精度がいいことも確認できた。

2. アルゴリズムの考案
まず始めに制御班が取り組んだことは、機体を目的地の方角に正確に機体を向かせることであった。
そこで地磁気センサを用いて、地磁気を取得しながら目的の方角に向いたら判定したらその時点で回転を止めるというアルゴリズムを考案した。しかし、機体が動いている状態で地磁気を取得しようとすると地磁気を安定して取得することができず、正確な方角に向くことができないという問題があった。

図 3.14

上手くいかなかった案

そこで改善案として考案したのが以下の図 3.15 のアルゴリズムになる

まず停止状態で地磁気を取得し、目的方向に機体を右回転か左回転どちらに回ればいいか判定させ、目的の方角との差分に比例する時間でその方向に機体を回転させる。これを何度も繰り返し、しきい値の±３度以内に収まれば目的の方角に正確に向いたと判断するアルゴ
リズムを実装した。

前述の上手くいかなかった方法から比べて地磁気を取得するのは機体を停止させた時のみになっており、これにより地磁気を安定して取得することができ、正確な方角に機体を向かせることに成功した。

徐々に正確な方角に機体の向きが収束していくイメージ図が、以下になる。

Group Report of 2021 SISP

- 21 -

Group Number 15-B

Flying Autonomous Robot Project

図 3.15

図 3.16

上手くいった案

方位角の誤差が修正されていくイメージ

目的地に向かって正確に機体を向かわせるアルゴリズムが作成できた後、次に目指したのが目的地の方角に向かって走らせるアルゴリズムの考案である。目的地の正確な方角に機体を向かせたとしても、タイヤのわずかな歪みや、地形の凹凸などの要因によって直進せず目的地に辿りつかないことが考えられる。

そこで考案したのが以下の図 3.17 のようなアルゴリズムである。

「機体は直進しない」、「思い通りの距離を走らない」ことを前提に方角と移動させる距離をその都度修正し、直進していくというものである。また、直進させる時間が一定だと目的地になかなか辿りつかないので、目的地に近づくにつれて直進する時間を距離と比例させて狭めていくという手法を取った。
「差分と比例するだけの時間で動かして差分を狭めていく」という点で角度と距離を調整するアルゴリズムは本質的には同一のものである。
以上の「機体を目的地に正確に向かせるアルゴリズム」、「目的地の方角に正確に走行する
アルゴリズム」の２点を考案、実装したことにより、実験において様々な誤差が生じてしまう環境下でも安定して目的地に向かう機体を作成することができた。
（※文責: 瀧川崚登）

Group Report of 2021 SISP

- 22 -

Group Number 15-B

Flying Autonomous Robot Project

図 3.17

目的地に至るまでのイメージ図

3. 制御アルゴリズムのフローチャート
ミッションを達成するために、制御班が考案した機体の制御アルゴリズムは以下の図のようになる。

図 3.18

機体を投下させてから地上走行を始めるまでのフローチャート

まず機体を起動させて、機体を高所から投下する。そして「地面に着地した」と判定した
後にパラシュートと機体の切り離しを行う。切り離しが終わったあと、現在地と座標の取得
を GPS モジュールを用いて行う。そして事前に判明している目的地の位置座標と現在地の位置座標から機体をどの方向に向ければいいのか、目的地と現在地がどれほど離れているのかを計算する。そして地磁気センサを用いて、現在機体が向いている方向から目的地の方角に機体を向かせる。この際、機体を動かしながら地磁気を取得すると精度に影響するので、地磁気を取得するのは機体が停止させた時のみに限定する。そこで機体を一定秒数だけ回転させ、停止した時に地磁気を取得し、右回転をすればいいか左回転をすればいいか判定すGroup Report of 2021 SISP

- 23 -

Group Number 15-B

Flying Autonomous Robot Project

図 3.19地上走行を始めてからサンプル採取するまでのフローチャート

る。これを繰り返し、閾値 +-3 度の方角に機体が向いた時に「機体が目的地の方角を向いた」と判定し、機体を直進させる。ここで目的地点までずっと直進させるのではなく、機体の現在地と目的地の距離の比例した時間で直進させ、停止したらまた機体を目的の方角に合わせる。これは不整地という環境であったり、タイヤの僅かな歪みが原因で機体がずっと直進し続けることが難しいからである。この方角と機体を直進させる作業を繰り返すことで、徐々に目的地に近づけていく。そして目的地の一定範囲内に入ったと判定したら、機体から採取棒を起動させてサンプル採取を試みる。以上が投下からサンプル採取までを行う制御ア
ルゴリズムのフローチャートの説明である。
またこの制御アルゴリズムは投下からサンプル採取までの一連の通しの実験を想定したものになっているが、実際の実験では通しの実験ではなく「投下」、「切り離し」、「地上走行」、「サンプル採取」と独立させて行ったので、このフローチャートと各実験が部分的に対応している形になっている。
（※文責: 瀧川崚登）

4. 使用機器
ここでは、使用機器に関する説明をする。

GPS 機器は三機受信対応の「QZSS(みちびき)」を使用した。この製品は秋月電子から発売されているものである。基板サイズが 30*30*13.5mm(電装ボックス実装時)、重量が約11g である。1PPS 出力付きで電源電圧が DC5V(3.8 12V)、電源電流が 40mA で、シリアル通信は 9600bps、入出力信号レベルは C-MOS ロジック (3.3V) レベルであり、非同期シ
リアル信号となっている。太陽誘電製の小型高感度 GPS モジュール [GYSFDMAXB] を使用した GPS 受信機であり、NMEA0183 に準拠した緯度・経度・高度・時刻等の各種ナビ
ゲーション情報を出力する。GPS 衛星追尾中 (三次元測位中) には正確な一秒 (1PPS) 信号を出力することが可能である。また、専用 GUI ソフトウェア [Mini GPS] によって、通信Group Report of 2021 SISP

- 24 -

Group Number 15-B

Flying Autonomous Robot Project
速度や NMEA フォーマットのセンテンスを設定できる。採用理由については、汎用性の高さがあり、加えて実用例や使用方法などがインターネット上や文献で発見しやすく、初めて扱ったにも関わらず、応用しやすかったためである。加えてみちびきが準天頂衛星システムであることも採用理由の 1 つである。GPS 衛星だけでは都市部や山間部、ビルや樹木などに電波が遮られ可視衛星数が減ってしまい、位置情報が安定的に得られないことがあるが、みちびきは 2018 年 11 月から四機体制で運用を開始しており、GPS と一体で利用できることから安定した高精度測位を行うことを可能にする衛星数を確保することができる。更に、GPS 互換であるみちびきは安価に受信機を調達することができるため、地理空間情報を高度に活用することが可能である。また、去年の機体にも使用されていたものを、試験的に用いたことがきっかけであった。

マイコンは「Arduino NanoA000005」を使用した。GPS と同じく、こちらも秋月電子で購入した。搭載マイコンはプログラムが既に書き込まれている「ATMEGA328P-AU」で、マイコン動作電圧は 5V、ボード入力電圧は 7 12V である。ピンは、デジタル I/O ピンが14 本、PWM 出力可能ピンが 6 本、アナログ入力ピンが 8 本となっている。メモリについては、フラッシュメモリが 32kB、SRAM が 2kB、EEPROM が 1kB である。クロック周
波数は 16MHz で、USB 端子はミニ B メスとなっている。採用理由については、それまで使用していた「ArduinoUNO」より、小型かつ改良後の軽量化した機体に合う性能であるためである。

9 軸センサは「AE-LSM9DS1-l2C」を使用した。こちらも同様に秋月電子で購入した。
電源電圧は 3.3 5.0V で、加速度の測定レンジは± 2/± 4/± 6/± 8/± 16g で、ジャイロの測定レンジは± 245/± 500/± 2000dps、磁力の測定レンジは± 4/± 8/± 12/± 16gaussである。インターフェースは I2C で、基盤寸法は、24mm × 19mm となっている。採用理由については、先に決めた Arduino に合う性能であり、小型・安価かつ運用しやすい点が評価されたためである。
（※文責: 坂東紗希）
モーターは「POLOLU-3076

150:1 シャフト付き超小型メタルギアドモーター HPCB

6V」を左右のタイヤに１つずつ、計２つ使用した。SWITCH SCIENCE で購入した。寸法は 10 × 12 × 26mm で重量は 9.5g、シャフト径は 3mm D タイプである。ギア比は 150.58: 1、無負荷時速度（6 V）は 220rpm、無負荷時電流（6 V）は 0.10 A、ストール時電流（6V）は 1.5 A、ストール時トルク（6 V）は 2.0 kg・cm、最大出力時電力（6 V）は 1.1 W であり、6 V での最大効率は 31 ％となる。また、最大効率では速度が 170rpm、トルクが 0.41

kg・cm、電流が 0.39A、出力電力が 0.73W となる。地上走行をする上では欠かせない機器である。使用した理由は、軽く、小さく、速いためである。初めは機体のサイズが大きかったため、それに合わせてモーターのサイズもより大きなものにしていたが、最初の走行実験
でモーターの重量過多により、機体が上手く動作しなかった。その後機体のサイズを小さくすることになったことから、モーターの寸法や重量、速度を重要視したという経緯がある。

モータードライバーは「DRV8835 使用ステッピング＆ DC モータドライバモジュール」
をモーターと同じく 2 つ使用した。秋月電子で購入した。2mm × 3mmWSON パッケージGroup Report of 2021 SISP

- 25 -

Group Number 15-B

Flying Autonomous Robot Project
を、使いやすい 300mil 幅 2.54mm ピッチ 12 ピン (6x2) の DIP 基板に変換し、電源ライン(VM、VCC) に必要なコンデンサを実装してある。2 個 (並列接続時は 1 個) の DC モータ、あるいは 1 個の 2 相バイポーラステッピングモータを駆動できる。ハイサイド + ローサイ
ド 305m Ωにより、低オン抵抗の内蔵 MOSFET により低損失を実現している。1 回路 (Hブリッジ) ごとに 1.5A のドライブ能力があり、並列接続で 3Amax である。モータ電源 2〜

11V、ロジック電源 2V〜7V である。モーターのブレーキや正逆切替を行う際に使用する機器であり、今回、地上走行の際に向きを変える際に使用した。また、回路を小さくまとめる
ことによって、問題が起こり動作しない場合でも、原因を理解しやすくすることができた。
使用している Arduino やモーターの寸法に合うように決めた。

地磁気センサは「P Prettyia Arduino 用 3.3V / 5V HMC5883L 三軸 コンパス 磁力
センサ モジュール」を使用した。楽天市場で購入した。通信モードは標準 IIC 通信プロト
コルで HMC5883L チップを使用している。ボードサイズは約 16x18mm/6.3x7.08 インチ、供給電圧は 3.3V / 5V、ピン間隔は 2.54mm（100mil）である。X,Y,Z 軸方向の磁力を計測することで方位を計算するため、着地の判断やサンプル採取地点までの走行をする際には重要なである。3 軸であること、先に決めた Arduino に合い、収まるサイズであることが使用する決め手となった。
（※文責: 上松大貴）

Group Report of 2021 SISP

- 26 -

Group Number 15-B

Flying Autonomous Robot Project

第 4 章 インターワーキング
本章ではプロジェクト全体の進捗やグループ相互間の活動を円滑に進行するために行ったプロ
ジェクト内やグループ内における活動について述べる。
（※文責: 山崎琉清）

4.1

プロジェクト全体のインターワーキング

本プロジェクトではメンバーを活動目的の異なる、A グループ、B グループという 2 つのグループに分け、活動を行った。前期のプロジェクトでは去年に引き続き、新型コロナウイルス感染症（COVID-19）の影響によって、プロジェクト学習全体でオンラインによる会議が主であった。週に一度、全体でのミーティングを行い、大学での活動は 3 回に 1 回の頻度で行われた。また、プロ
ジェクト全体の進行をより円滑に行うために、全体ミーティングとは別にプロジェクトリーダーと各グループのリーダーで行うリーダーミーティングを週に一度行い、予め次回の全体ミーティ
ングの議題を決定していた。昨年度同様、プロジェクトメンバー間での会議は、Zoom を使用して行い、メンバー同士の意見交流や情報共有については Slack を使用して行った。議事録などの資料共有については、Google ドライブでの管理を行っていた。タスク管理に関しては 6 月下旬から

Notion の使用を行った。
後期も前期に引き続き、毎週水曜日の活動日に全体ミーティングを行い各グループの活動内容を共有した。また、リーダーミーティングについても引き続き毎週行い、全体ミーティングの円滑な進行を可能にしていた。大学登校については、9 月・10 月は登校を制限されていたので、工房を利用する者のみが担当教員に連絡し許可を得たうえで登校していた。11 月以降は前期同様に登校が可能になったが、大学で活動が必要なメンバーのみが登校するという体制のまま活動を続けることとなった。後期の活動でもメンバー間の連絡や情報共有には Slack を活用し、各グループのタスク
管理は Notion で行った。
また、反省点として後期の大学登校者確認が挙げられる。工房利用のために大学登校をする際、登校する学生を確認したうえで担当教師への事前の連絡が必要だったが、いつ誰が登校するかを管理するシステムが確立していなかった。なので、プロジェクトリーダーが毎週登校者を確認し、連絡を行っており負担となっていた。後期からこの方式となったので対応が遅れてしまったが、次年度以降はこのような対応に労力を割かぬよう、登校予定者の確認について事前に話し合うことが今後の展望となる。
（※文責: 山崎琉清）

4.2

グループ内のインターワーキング前期の活動については、進捗管理をオンライン会議の際に行った。また次回が大学での活動である場合は、あらかじめ対面で行うべき内容を確認し、さらに次回のオンライン会議での課題を出し合った上で活動した。機体製作を進めるにあたり、メンバーごとに役割を分担し、担当するシステ

Group Report of 2021 SISP

- 27 -

Group Number 15-B

Flying Autonomous Robot Project
ムごとに個別にタスクを設定する必要が生じたので、タスクの進捗管理に Notion を使用することにした。また、B グループは CanSat の技術について一から学習して機体を作成するグループなので、調査内容については Google ドライブや Slack を活用して積極的に共有した。
後期については、飛行、構造、制御の 3 班に別れての活動が中心となったので、連絡についても各班で個別に行うことが多くなった。前期に引き続き、連絡や資料の共有は Google ドライブとSlack を活用し、CanSat 本体製作に関わる重要なタスクの管理などは Notion を用いた。前期のようにグループ全体でミーティングを行う頻度が下がったため、各班の進捗報告については主にSlack で行っていた。
ここからは飛行、構造、制御の各班が個別で行った活動について述べる。飛行班は Slack で独自のチャンネルを作成し、前期から夏季休業にかけて参考資料などの収集を行っていた。メンバー
は夏季休業中の情報収集の際は 1 名であったが、パラシュート製作時に構造班との合同製作となり、最終的に 4 名となった。活動については製作を行えるメンバーが積極的に作業をし、製作期間を短くし、実験の期間を長く設けられるよう活動を行った。パラシュート製作後は実験動画をSlack、Google フォトで管理・共有を行った。構造班も同じく独自の Slack チャンネルを作成し、メンバー間での情報共有を行っていた。また、主にプロジェクト活動日に進捗状況を共有し、そこで早急に行わねばならないタスクが発生した際には週末等の非活動日にも対面・オンライン問わず集まり、活動を行った。進捗共有に関しては合同で活動を行っていた飛行班も同様である。また、構造班では TinkerCAD での 3D CAD データ製作も行っており、そのデータの共有は Google ド
ライブを用いた。メンバーは当初 3 名であったが、設計段階で飛行班と合同となり、共同で活動を進めていたため 4 名となった。制御班も専用の Slack チャンネルを用いて情報共有を行っていた。
また、GitHub を活用することによりコード共有をスムーズに行っていた。班員は 4 名であり、そのうち 2 名がアルゴリズムの考案・実装を担当し、残りの 2 名が衛星測位誤差の検証や実験環境の調査を行った。進捗状況の確認については週末に臨時ミーティングを開くことで行っていた。これら 3 班の Slack にはグループメンバー全員が参加することとし、他の班の活動を即座に確認することが可能となっている。また、詳細な進捗確認については各班の代表同士が Zoom や Slack を用いて共有することで行っていた。
グループでの反省事項としては、あまり Notion を活用することが出来なかった点だと考える。
前期末から B グループでも使用を開始したが、その時点で資料共有などは Google ドライブを利用していたため、タスクの管理を主な使用目的としていた。そのタスク管理についても、重要なタ
スクのみが書かれており、個人的な小さいタスクなどについてはあまり利用されていなかった。また、プロジェクト内でのインターワーキングで反省点として挙げた大学登校者の確認についてもNotion を活用することで楽に管理することが出来た。プロジェクト途中から Notion を使用し始めたのでメンバー間でも利用することが頭から抜けていたというのもあるだろう。以上の反省点から、今後の展望として使用予定のツールに関してはプロジェクト初期から利用し、その後グループ内で利用しやすいツールを選択し、使用していくことを挙げる。
（※文責: 山崎琉清）

Group Report of 2021 SISP

- 28 -

Group Number 15-B

Flying Autonomous Robot Project

第 5 章 実験5.1

実験概要

実験場所は、北海道函館市赤川町にある笹流ダム、公立はこだて未来大学の構内で行った。笹流ダムでは 11/6, 13 の計 2 日間、13:00 〜 15:00 の時間帯で行い、大学構内での実験は 11 月の水曜日と金曜日のプロジェクト活動の時間帯（４〜５限）に行った。

実験内容は、以下である。

CanSat にパラシュートを装着し、ダムの頂上（高度 25.3m）から人力で 機体を投射し、地面に落下させる。空中では、地面への軟着陸に備え、パラシュートの展開を行う。着陸後、CanSat とパラシュートを切り離し、センサ類の情報から自律走行をはじめ、あらかじめ決めておいた目標地点を目指し走行する。目標地点到達後、CanSat に取りつけてある採取棒を動作させてサンプルを採取する。
しかし、11 月中旬から天候不順の影響で屋外の実験をすることが困難となり、大学構内の屋内中
心での実験に切り替えることになった。その結果、投下からサンプル採取に至るまでの一連の通しの実験は断念せざるを得なくなった。そこで「投下」、「機体とパラシュートの切り離し」、
「地上走
行」
、
「サンプル採取」という 4 つのカテゴリに分けて、それぞれ独立させて実験を行うことにした。
（※文責: 成田凪）1. 飛行実験• 投下
投下実験は CanSat にパラシュートを装着し、ダムの頂上（高度 25.3m）または体育館（高度 13.0m）から人力で機体を投射する。この実験では空中でパラシュートが正確に展開することと、展開後機体が落下速度を下げながら地面に軟着陸できるかを確認する。この実験は 2021/11/6(土) の笹流ダムと 11 月のプロジェクト時間内に体育館で実施した。笹流ダムでの実験ではパラシュートが正しく展開するかを確認することに重点を置いた。11 月の体育館での実験では、パラシュートの正しい展開の確認に加え、着地の衝撃がパラシュートのライン長によって変化するかについても調べることとした。

2. 地上走行実験• 機体とパラシュートの切り離し
切り離し実験では高所から投下された機体がパラシュートを展開し着陸した後に機体の切り離し機構が正しく動作し、機体とパラシュート部分が分離されるかを確認する。
この実験は 11 月のプロジェクト活動時間に体育館（高度 13.0m）で実施した。

• 地上走行
地上走行実験では CanSat 本体がセンサからの情報を用いて自律走行を行い、あらかじめ決めておいた目標地点への走行が可能であるかを確認する。この実験は2021/11/13（土）の笹流ダムで実施され、その後天候不良等の理由から 11 月のプロ
ジェクト活動時間に体育館でも実施した。

• サンプル採取
Group Report of 2021 SISP

- 29 -

Group Number 15-B

Flying Autonomous Robot Project
サンプル採取実験では自律走行で目標地点に到達した後に機体に搭載された採取機構を用いてのサンプル採取が可能であるかを確認する。この実験は天候不良等の理由から

11 月のプロジェクト活動時間に大学構内で実施した。
（※文責: 山崎琉清）

図 5.1

5.2

笹流ダム

実験結果

1. 飛行実験• 投下
笹流ダム（25.3m）
本実験は「5.1 実験概要」で先述したように、2021/11/6(土) に笹流ダム（高度 25.3m）
で実施したパラシュートの正確な展開を確認する実験であった。本実験では、ダムの頂上（高度 25.3m）から人力で以下の図のような 3 つの装置を投射し、地面に落下させた。ビニール製パラシュートを装着した 300g のペットボトル、リップストップポリエ
ステル製パラシュートを装着した 400g の筐体、400g の筐体という 3 つの装置をそれぞれ装置 1、装置 2、装置 3 とした。

図 5.2

Group Report of 2021 SISP

装置１

- 30 -

Group Number 15-B

Flying Autonomous Robot Project装置 1 の投下実験は、投射の練習やパラシュートの試運転、装置 2 との比較を目的としていた。結果としては、パラシュートは問題なく展開していたため減速して軟着陸ができていた。しかし、降下中にダムの壁に衝突することがあったり、振り子のように大きく揺れて降下した。前方向ではなくダム側の後方向によって降下する傾向にあった。

図 5.3

装置２

装置 2 の投下実験は、装置 1 よりも本番の環境に近い装置での投射の練習や筐体の耐久度テストを目的としていた。結果としては、パラシュートは問題なく展開していたため減速して軟着陸ができていた。装置 1 よりも安定した着陸で、前方向に降下する傾向にあった。また、装置 1 のように振り子のように揺れていたが小さい揺れであり、筐体に損傷は無かった。

図 5.4

投下前の装置３装置 3 の投下実験は、パラシュートの精度確認のための対照実験と機体の耐久度テストを目的としていた。結果としては、自由落下した後に大きな音を立てて硬着陸したが、筐体にはほとんど損傷がなかった。投下後の装置 3 は図 5.5 に示す。
図 5.5 から、装置 3 の損傷は結合部分のための穴と穴の間に亀裂が入っただけである
ことがわかる。

Group Report of 2021 SISP

- 31 -

Group Number 15-B

Flying Autonomous Robot Project

図 5.5

投下後の装置３

体育館（13m）
本実験は「5.1 実験概要」で先述したように、11 月に体育館（高度 13.0m）で実施
した着陸時の衝撃が少ないパラシュートのライン長を確認する実験であった。本実験では、体育館の 2 階（高度 13.0m）から人力でリップストップポリエステル製パラシュー
トを装着したローバーを投射し、地面に落下させた。600mm、700mm、800mm の 3 つのライン長で検証を行った。その結果、3 つとも問題なく軟着陸をしていたが、700mmが最も安定していた。
以下から軌道の解析データについてそれぞれ述べる。

600mm の解析結果は以下の 3 つの図のようになった。無料ソフトウェアの Kinovea
を使用して、CanSat の落下軌道から垂直位置を割り出しグラフに表したのが図 5.6 である。図 5.6 の縦軸は垂直位置 px、横軸は経過時間 ms を表す。落下実験を実施した
体育館の高さは 13.0m であったが、縦軸の最大値は 650px (=0.198m) となった。また、横軸の最大値は 2500ms となった。図 5.6 より、機体は滑らかに落下していることから安定した姿勢で落下したと考えられる。

図 5.6

垂直位置に関する時系列データ（600mm）

CanSat の落下軌道から落下速度を割り出しグラフに表した。図 5.7 を以下に示す。
Group Report of 2021 SISP

- 32 -

Group Number 15-B

Flying Autonomous Robot Project

図 5.7

落下速度に関する時系列データ（600mm）

図 5.7 の縦軸は、落下速度 px/s、縦軸は経過時間 ms を表す。グラフから横軸がおよそ 1650ms から落下速度が減速していることからパラシュートが開いたと推測される。
減速しきる前に着陸してしまっていることが分かる。

図 5.8

ライン長 600mm の軌道

同様に 700mm の解析結果は以下の 3 つの図のようになった。垂直位置を割り出し
グラフに表したのが図 5.9 である。落下実験を実施した体育館の高さは 13.0m であったが、縦軸の最大値は 350px (=0.093m) となった。また、横軸の最大値は 2900ms となった。横軸がおよそ 1850ms から垂直位置が横ばいになっているので着陸したことが推測できる。図 5.9 より、機体は滑らかに落下していることから安定した姿勢で落下したと考えられる。

CanSat の落下軌道から落下速度を割り出しグラフに表した。図 5.10 を以下に示す。

Group Report of 2021 SISP

- 33 -

Group Number 15-B

Flying Autonomous Robot Project

図 5.9

垂直位置に関する時系列データ（700mm）

図 5.10

落下速度に関する時系列データ（700mm）

図 5.10 の縦軸は、落下速度 px/s、縦軸は経過時間 ms を表す。図 5.7 と同様に横軸がおよそ 1850ms から落下速度が横ばいになっているので着陸したことが推測できる。

1600ms から 1850ms 間で急激に落下速度が減速していることも分かる。また、横軸が2250ms から 2700ms 間で落下速度が大きくなったのは、着陸した機体が地面にバウンドしたからと推測できる。

図 5.11

ライン長 700mm の軌道

同様に 800mm の解析結果は以下の 3 つの図のようになった。垂直位置を割り出し
グラフに表したのが図 5.10 である。落下実験を実施した体育館の高さは 13.0m であったが、縦軸の最大値は 650px (=0.198m) となった。また、横軸の最大値は 3100ms となった。図 5.12 より、機体は滑らかに落下していることから安定した姿勢で落下したと考えられる。

Group Report of 2021 SISP

- 34 -

Group Number 15-B

Flying Autonomous Robot Project

図 5.12

垂直位置に関する時系列データ（800mm）

CanSat の落下軌道から落下速度を割り出しグラフに表した。図 5.13 を以下に示す。

図 5.13

落下速度に関する時系列データ（800mm）

図 5.13 の縦軸は、落下速度 px/s、縦軸は経過時間 ms を表す。グラフから横軸がおよそ 2150ms から落下速度が減速していることからパラシュートが開いたと推測される。しかし、ほとんど減速することなく着陸が終了している。

図 5.14

ライン長 800mm の軌道

これらの解析データから、600mm は減速しきる前に着陸、700mm は急激に減速しGroup Report of 2021 SISP

- 35 -

Group Number 15-B

Flying Autonomous Robot Projectてから着陸、800mm はほとんど減速することなく着陸していたことが分かった。
（※文責: 成田凪）

2. 地上走行実験• 機体とパラシュートの切り離し
本実験は機体を投下し、無事地面に着地した後、機体の中に搭載されているサーボが正常に作動してパラシュートを機体から切り離し可能かの動作確認を行う実験であった。しかし、工房におけるデモンストレーションの段階で、サーボを使用していないのにも関わらず切り離しが不可能に終わることが多々あり、その度に改善案を模索していたため、体育館での実験最終日まで実験が出来なかった。体育館での実験でも、サーボ自体の動作不良や、サーボが動作してもピンを引き抜けないこと、更にはサーボの動作
もピンの引き抜きも成功したが外殻が開かなかったりと数々の問題が起こった。そこ
で、サーボが作動するまでの時間を延長し、外殻を繋ぐ金具の位置をピンが抜ける方向に寄せることで解決を図った。結果として、投下した後無事に機体と外殻を切り離すことができ、本機構でパラシュート切り離しができることが確認できた。
（※文責: 坂東紗希）• 地上走行
本実験は「5.1 実験概要」より分けて行ったため、機体の投下および切り離しを問題なく完了させた想定で行われた。また、サンプル採取をするために「ゼロ距離接近」が必須条件となるため、機体を採取地点まで確実に走行させ、目標地点まで移動することが目標であった。今回、投下および切り離しの実験は成功したと言えるため、想定された条件は満たしていた。当初は、機体を地磁気の取得と走行を同時に行うことでスムー
ズに目標地点まで移動させることを想定していた。しかし、機体の姿勢が地形による影響を受け安定せず、走行中に地磁気を安定して取得することが困難である、そもそも機体が直進しないといった問題が発生した。そのため、方角と移動させる距離をその都度修正し、直進していく、目標地点に近づくにつれて直進する時間を比例させて狭めていくアルゴリズムに変更した。結果として、機体の角度と目標地点までの距離を細かく確認することができたため、安定して採取地点まで走行したのち目標地点までの走行ができた。
（※文責: 上松大貴）• サンプル採取
サンプル採取に関しては、天候などの影響により屋内で実験を行うことになった。屋内という制約上、非常に簡易的な実験になったが、機体が目的地まで向かい、採取棒を起動させてサンプル採取をするという一連の動作をさせることが確認できた。本来屋外の実験では GPS と地磁気センサを用いて 2 ヶ所以上のサンプル採取をする予定であったが、今回は地磁気センサのみを用いて 1 ヶ所の目的地においてあるサンプルを採取するという実験に留まった。
（※文責: 上松大貴）

Group Report of 2021 SISP

- 36 -

Group Number 15-B

Flying Autonomous Robot Project

5.3

解決手段と評価• 投下
笹流ダム（25.3m）
装置 1 の投下実験で見つかった課題は、投射したダムの方に近づいて降下してしまうことだ。考えられる要因の 1 つは、壁から遠くに投射できていなかったため壁の近くでパラシュートが展開してしまったからである。風向きの影響なども考えられるが、装置 1、装置

2、装置 1、装置 2 という順番で投下をしたにも関わらず、装置 1 だけ壁側によって降下したため風向きの影響ではない可能性が大きい。しかし、実験時に風向きや風量などの調査が不十分だったため、今後投下実験を行う際にはこれらの実験条件を明らかにすることが課題となった。他にも、振り子のように大きく振られながら降下することにより機体に大きな衝撃を与えるという課題もあった。考えられる要因は、図 5.15 のようにペットボトル内の水が左右に移動することにより重点が変化したからである。また、重点であるペットボトルから支点であるキャノピーとラインの結合部分までの距離が長かったことも要因の 1 つと考えられる。図 5.16 のように支点から重点までの距離が短い方が振りによって機体が移動する
距離が小さくなることがわかる。装置 2 にはスライダーの役割を果たす MDF が設置されているため、装置 1 よりも支点と重点の距離が短かった。

図 5.15

降下中における装置 1 の重点の変化

装置 2 の投下実験は装置 1 とは異なり、投射した進行方向に降下した上に、振れ方も小さく、安定して軟着陸が行えていた。考えられる要因は、装置 1 とは反対に壁から遠くに投射できていたため壁の遠くでパラシュートが展開していたことと、スライダーのような MDFを設置したことにより図 5.4 のように支点と重点の距離が小さかったことである。この際に見つかった課題は以下の 3 つであった。1 つ目の課題は、芝生に着陸した場合は走行が難しくなるため、芝生ではなく砂利道に安定して着陸できるようにすることであった。2 つ目の課題は、着陸時にタイヤが分離したり回路が壊れない工夫をすることだ。特に、回路への衝撃を緩和するために隙間に緩衝材を詰める、回路の上にホットボンドを付着させる、柔らかいタイヤを装着するといった解決策が考えられた。3 つ目の課題は、芝生に着陸しても駆動Group Report of 2021 SISP

- 37 -

Group Number 15-B

Flying Autonomous Robot Project

図 5.16支点と重点の距離と移動距離できる工夫をすることだったが、芝生と砂利道の間には岩の仕切りが設置されているため、これを解決するのはほとんど不可能に近かった。
装置 3 がほとんど破損しなかった要因は、M6 のボトルと 5.5mm の MDF を使用した 2段構造だと考えられる。しかし、この筐体は 400g もあるので軽量化が課題となり、M3 のボトルと 2.5mm の MDF を使用した 2 段構造に変更した。
これらの実験を踏まえ、機体の設計に軽微な変更を加えていった。

体育館（13m）
目視と解析の結果から、ライン長 700mm が最も安定した着陸が出来ていたことが分かる。しかし、解析データには数多くの問題があった。グラフの縦軸が m や m/s ではなく px
や px/s であったことや、 縦軸である垂直位置や落下速度の初期値が各グラフによって全くことなること、垂直位置にマイナスの値があること、体育館の高度が 13.0m であるのにグラフの最高高度が 1.0m にも満たない値であることなどが挙げられる。
これらの問題は、目的対象物が小さすぎて追跡不可能であったり、FPS が足りなくて不正確であることや、背景とパラシュートと同化していたことが要因である。縦軸の値や体育館の高度に関しては、y=0 の軸が実際の地面に設定されていないことや、撮影時の画角が地面と平行でないことが要因である。今後軌道解析を行う際には、これらの要因を解決する必要がある。
（※文責: 成田凪）• 機体とパラシュートの切り離し
工房でのデモンストレーションでは外殻がスムーズに展開されなかったこと、体育館での実験ではサーボによってピン自体が引き抜けない、ピンが抜けても分離しないことが課題であった。
外殻の展開が出来なかったことについては、全体を包む際に機体や間の緩衝材の量が予想より多く嵩張ってしまい、外から機体を押さえつける力より、内側から展開しようとする力が強力に働いてしまったことが原因の 1 つであった。加えて、その力が外殻を留めていた

Group Report of 2021 SISP

- 38 -

Group Number 15-B

Flying Autonomous Robot Project
金具に一点集中していたこと、金具を固定する 3D プリンターの素材と金具との摩擦が、展開する力を阻害していたことなども原因であった。そこで、展開を阻害する内側からの力を減少させることについては、本来外殻と内殻の間に二重にする予定であった気泡緩衝材を一枚減らし解決を図った。こちらは、ある程度機体の大きさから余裕を持たせたものを作成するべきであったと考える。金具に展開の力が集中しすぎていたことについては、先ほどの内側から展開する力を減少させた後も、明確な改善が確認できなかったことから、金具の形状を変化させ固定器具との接触面を減らし、力を分散させた。こちらは固定器具を接着した後であったため、金具に処置を施し解決を図るしか方法が無かった。固定器具を完全に接着する前に試行するべきであったと考える。外殻の予備も、予め多めに制作しておくべきであった。金具と固定器具の摩擦については、固定器具をやすりで削ることで展開時に金具を滑りやすくし、成功確率の高上を図った。
ピン自体が引き抜けない問題は、ピンの初期位置を抜ける限り限りにした上で、サーボとピンを繋ぐ紐の長さを短することで結果として解決した。妥当な解決手段であったが、あくまでも成功確率を高めただけで、根本的な解決に至らなかったと考える。力が金具への集中したことが、この問題にも影響を与えていたこともあり、前提条件として集中した力を完全に解決しないことには、確実なピンの引き抜きを達成することは難しいと考える。
また、ピンが抜けた後も分離しなかった問題の解決には、上記でも述べた、スムーズに展開ができない原因にもなった内側から展開しようとする力の他に、着地した後の機体の姿勢の調整が課題であった。内側からの力の解決方法は判明したものの、着地した後の姿勢は、金具が真下に位置しないよう繰り返し投下する方法しか解決手段がなかった。機体にはおもりがついておりある程度重心が固定されているが、着地した衝撃で機体が回転するため、投機的な結果となってしまった。
結果として実験は成功し、分離機構が正常に動作したことは評価できた。しかし、機体の向きなど好条件が揃わないと作動しないこともあり、さらなる改善が必要である。
（※文責: 坂東紗希）• 地上走行
地上走行に関しては、GPS モジュールや地磁気センサの誤差、タイヤの歪みなどサンプ
ル採取地点の目的地まで向かうのに乗り越えるべき課題が多く存在した。GPS モジュールの衛星測位誤差や地磁気センサの誤差、事前に実験候補地を訪れて誤差を計るなどをし、どれくらいの誤差を考えて実装しなければｂならないかの調査を入念にした。またどれだけタイヤを真っ直ぐにしたつもりでも、ある程度の距離を CanSat が走るとタイヤやモーターの軸の僅かな歪みや不整地といった要因で徐々に目的の方向から逸れて行くという問題に直面した。そこで機体が向く方角と移動距離を最適化するというアルゴリズムを考案することで、実験で生じる誤差をある程度最適化することに成功した。
今回は電源など様々な問題で実現できなかったが、改善案としてカメラを搭載し、ディー
プラーニングベースによる物体検出を使ったゼロ距離接近が考えられる。このアルゴリズム
は事前に目的地の目印になるようなものを検出できるようにさせておき、物体を囲うバウン
ディングボックスの面積が一定の値を超えたら「ゼロ距離接近した」と判定させるものである。こうすることで、ある程度目的地に接近できれば安定したゼロ距離接近が可能になると考えられる。

Group Report of 2021 SISP

- 39 -

Group Number 15-B

Flying Autonomous Robot Project（※文責: 上松大貴）• サンプル採取
サンプル採取は、B 班が最終目標と掲げていたタスクで重要なものである。天候不良などの関係で屋内の実験になってしまったが、どれだけ砂を採取できるか、そして採取の確実性などを高める必要があった。そこで採取棒をどのような機構にするか、そしてどのタイミン
グで採取させるかなど制御アルゴリズムの観点でもどうするか検討を行った。
結果として、ある程度目的地に正確に移動できる機体が完成したこともあり、サンプル採取自体の成功率はそれなりに高い結果になった。今後の課題として、地面に広がっている砂だけではなく、石などの大きなものや形状的に採取が難しいものを回収できるような採取機構を考案することが挙げられる。
（※文責: 上松大貴）

Group Report of 2021 SISP

- 40 -

Group Number 15-B

Flying Autonomous Robot Project

第 6 章 発表会
この章では、中間と最終成果の二回に分けて行われた発表会の概要と、発表後行ったアンケー
ト の結果について考察する。尚 2021 年度の発表会に ついては、新型コロナウイルス感染症（COVID-19）予防の観点からオンラインでの実施となった。
（※文責: 山崎琉清）

6.1

中間発表会

6.1.1

概要

中間発表会は、プロジェクトの目標や進捗状況などを複数の教師に発表し、評価してもらうための発表である。事前に作成していた Web サイトとポスターを評価者が確認し、Zoom を利用して簡単なグループ概要と成果物の発表を行ったのち、質疑応答という形の中間発表会を行った。そして評価を参考にし、より良い開発をするためにも行っている。
（※文責: 菊地勇斗）

6.1.2

日時と場所

中間成果発表会は 2021 年 7 月９日にオンライン上で開催された。
（※文責: 菊地勇斗）

6.1.3

Zoom での質疑応答

事前に作成を行った Web サイトやポスターだけでは、十分にグループ活動の内容が伝わらない可能性があったので、事前にプレゼンテーションの資料を作成してプレゼンテーションを行った。
そのあと、Web サイトやポスター、プレゼンテーションの内容を加味した上で、質疑応答を行い回答した。質疑応答ではそれぞれの分野に分かれ、各自が最も把握している内容での回答を行うことでスムーズな質疑応答を行うことを心がけた。
（※文責: 菊地勇斗）

6.1.4

成果物

ポスター
以下の図 6.1 が、プロジェクト全体で作成したミッションなどの詳細や、今後の目標などが分か
りやすくまとめられたポスターである。色合いや文字の配置などを意識し、より見やすくデザインした。さらに途中で、図や写真などの資料を使い具体的にイメージ出来るように意識したものでGroup Report of 2021 SISP

- 41 -

Group Number 15-B

Flying Autonomous Robot Project
ある。

図 6.1

中間ポスターWeb サイト
以下の URL が、プロジェクトについての内容を表示した Web サイトである。Web サイトでは、最初に本プロジェクトで行っている概要を簡単に説明したのち、学ぶことが出来るであろう学習内容について明示している。次に、それぞれのグループ毎のページに飛ぶことでグループが行っている内容を分かりやすく理解できるように配置した。グループ毎のページでは、グループで作られる機体の構想やミッションについて具体的に触れ、これからのプロジェクトでの活動内容を明瞭にしている。

https://fun-cansat2021.amebaownd.com/（※文責: 菊地勇斗）

Group Report of 2021 SISP

- 42 -

Group Number 15-B

Flying Autonomous Robot Project

6.1.5

結果と考察

今回の中間発表会での評価は、Google Forms を利用して発表技術と発表内容について 10 段階で評価されコメントを貰うものであった。
発表技術についての評価では、図 6.2 のような結果となり、平均 7.8 とおおむね良好だったと言える。コメントの内容としては、「動画や写真などを使った発表で分かりやすかった」などの肯定的な意見が多かった。しかし逆に、「発表時間が長く、質疑応答の時間が短い」などのコメントも多く時間設定を考え直す必要があるだろう。このことは、事前の意識の違いとして発表を行う場であるという意識が強かったため、最終発表会では事前資料を踏まえた簡単な説明と質疑応答を行う
べきであろう。また Web サイトの評価は良く、「目的が明確でボリュームがある」などの良い評価も多かった。これは初めに簡潔な説明と目標を並べ、その後しっかりとした説明を行ったことが良かった。
しかし欠点としては、「項目をクリックすると新規タブが作られるため、管理がしづらい」などがあった。これは、各個人で自らが担当の箇所を見ることが多かったことによるところが大きいだろう。最終発表会で作られる Web サイトでは、自らが初めてみる Web サイトとして見直す必要があるだろう。最後に、「Zoom の背景が工夫されている」という評価もあり、私たちが所属しているプロジェクトを強調し、説明がしやすく出来たのが良かった。
発表内容についての評価では、図 6.3 のような結果となり、平均 8.3 とおおむね良好であった。
コメントの内容としては、「目標が明確であり、専門用語も説明され分かりやすかった」などのコメントが多かった。この点は私たちも意識したところであり、実際に調べ初めて知ったことも多かったため、そのことについての説明が必要であるという意見の元説明を行った。その結果が良好であったため、最終発表会の発表でも所々に説明を入れて行きたいと思う。また、「スケジュールが具体的で、変更される可能性がある箇所などについても理解出来た」という意見がある。これは大会などが開催される影響から、スケジュールをしっかりと立てなくてはならなかったからだ。その点では、大会が終わった後も改善点を見つけ出し、計画的に作業出来る環境を整えることが重要であるだろう。
（※文責: 菊地勇斗）

図 6.2

Group Report of 2021 SISP

発表者技術についての評価- 43 -

Group Number 15-B

Flying Autonomous Robot Project

図 6.3

6.2

最終発表会

6.2.1

概要

発表内容についての評価

最終発表会は、プロジェクトの目標や進捗状況などを複数の教師に発表し、評価してもらうための発表である。事前に作成していた Web サイトとポスターを評価者が確認し、Zoom を利用して簡単なグループ概要と成果物の発表を行ったのち、質疑応答という形の最終発表会を行った。そして評価を参考にし、より良い開発をするためにも行っている。
（※文責: 菊地勇斗）

6.2.2

日時と場所

最終成果発表会は 2021 年 12 月 10 日にオンライン上で開催された。
（※文責: 菊地勇斗）

6.2.3

Zoom での質疑応答

事前に作成を行った Web サイトやポスターだけでは、十分にグループ活動の内容が伝わらない可能性があったので、事前にプレゼンテーションの資料を作成して動画での発表を行った。そのあと、Web サイトやポスター、動画の内容を加味した上で、質疑応答を行い回答した。質疑応答ではそれぞれの分野に分かれ、各自が最も把握している内容での回答を行うことでスムーズな質疑応
答を行うことを心がけた。
（※文責: 菊地勇斗）

Group Report of 2021 SISP

- 44 -

Group Number 15-B

Flying Autonomous Robot Project

6.2.4

成果物

ポスター
以下の図 6.4 が、プロジェクト全体で作成したミッションなどの詳細や、目標などが分かりやす
くまとめられたポスターである。色合いや文字の配置などを意識し、より見やすくデザインした。
さらに途中で、実際に作成した成果物の写真などの資料を使い、具体的にイメージ出来るように意識したものである。写真ごとに簡潔で分かりやすくなるよう文章を作成し、読みごたえを損なわずに見やすくするように心掛けた。

図 6.4

最終ポスターWeb サイト
以下の URL が、プロジェクトについての内容を表示した Web サイトである。Web サイトでは、最初に本プロジェクトで行っている概要を簡単に説明したのち、学ぶことが出来るであろう学習内容について明示している。次に、それぞれのグループ毎のページに飛ぶことでグループ

Group Report of 2021 SISP

- 45 -

Group Number 15-B

Flying Autonomous Robot Projectが行っている内容を分かりやすく理解できるように配置した。グループ毎のページでは、グループで作られた成果物についての解説を行い、実際に作る過程での工夫や意図を詳細に理解させるような工夫を行った。作成途中の機体や部品などを説明し、そのものの欠点と改善点を明示することで、次の改善した点を前回の欠点から修正ということを分かりやすく示すことが出来た。

https://fun-cansat2021.amebaownd.com/（※文責: 菊地勇斗）

6.2.5

結果と考察

今回の最終発表会での評価は GoogleForms を利用して発表技術と発表内容について 10 段階で評価されコメントを貰うものであった。
私たちが行った最終成果発表では、図 6.5 と図 6.6 の結果から比較的良い発表をすることが出来たと分かる。どちらの結果でも過半数の者が半分以上の評価を付けている。高評価だった点として「扱っている題材が面白い」、「Web サイトの出来が良い」などが挙げられる。扱っている題材に関しては B グループが自分達で取り組むべき内容を全て決めていたので非常に嬉しい点であった。

Web サイトに関しては、実験の段階で動画撮影など発表することを前提とした記録を行っていたので、出来が良いという評価に繋がったのではないかと考えられる。これらのように事前に入念に準備していた点が評価に大きく繋がっていることが確認できた。
また、寄せられたコメントを見ると発表時間が長く質問時間が足りないことや合成音声をスライ
ド読み上げで使ったことによる賛否などがあった。発表会は 15 分という時間制限の中で行われ、その中で発表と質疑応答を両方行うスタイルを B グループは採用した。進行として前半 10 分を発表、後半 5 分を質問という形にしたが、予想外に質問が多く寄せられたために質疑応答の時間が取れないということがあった。これは発表時間中に Zoom チャットで質問を受け付けて質疑応答をスムーズなものにする、もしくは発表時間を少し節約するなどの方法を検討する必要がある。また合成音声をスライド読み上げに使ってことに対して賛否が同じくらい寄せられたのは、非常に悩ましい結果になった。賛成派の意見としては「聞きやすい、斬新」などの意見が寄せられ、反対派の意見としては「聞きづらい、違和感がどうしてもある」という意見が寄せられた。近年合成音声による読み上げは普及してきてはいるが、まだまだ人間の肉声とはかけ離れている部分があるので中には違和感を持つ人もいるのではという結論に至った。今後合成音声での読み上げを使用する際は、その点も踏まえて慎重に検討したいと思う。
また成果発表本番で動画の音声が聞こえなくなるというトラブルがあった。これは本番を想定したリハーサルや練習が足りてないということである。そのため発表会本番を想定した練習が必要である。
以上のことを踏まえて今後の発表における課題とし、より良い発表に繋げられるようにしていきたいと考える。
（※文責: 瀧川崚登）

Group Report of 2021 SISP

- 46 -

Group Number 15-B

Flying Autonomous Robot ProjectGroup Report of 2021 SISP

図 6.5

発表者技術についての評価

図 6.6

発表内容についての評価- 47 -

Group Number 15-B

Flying Autonomous Robot Project

第7章

まとめ

この章では、まずプロジェクト全体の成果について簡単に示し、次に今後の展望について説明する。最後に、プロジェクトにおいて自分がどのような役割を担ったと考えるか、各メンバーが振り返り考察する。
（※文責: 山崎琉清）

7.1

プロジェクトの成果

プロジェクトの成果として、まず活動を通して得られた知識について説明する。活動を通して、設計及び作成する上で一般的に用いられるソフトウェア（Illustrator や ThinkerCAD）や道具（3D
プリンターや基盤プリンター）、材料（３ D プリンター用の樹脂や MDF といった合成板など）、電子部品（マイコンピュータやセンサーモジュール）、ハードウェアを動かすためのプログラム等の知識を手に入れることができた。
次に、活動を通して得られた成果物について説明する。前期においては、CanSat がどのようなものであるのか班メンバーで勉強し、輪読会などを行うことで理解を深めた。その後、どのようなミッションを達成する機体を作るのかを考え、設計が固まった夏休み以降に本格的な作成を開始した。作成する際には、飛行制御系、構造系、制御系と 3 つの班に別れて作業を行った。飛行制御
系はパラシュートと切り離し機構を、構造系は丈夫で軽い CanSat の機体を、制御系は一連の実験で動作させるプログラムを作成することができた。
次に実験結果について説明する。我々は「完全自律走行によるサンプル採取」を目指すために、投下から採取までの一連の実験を通しでやる予定であったが、天候不良などの影響で通しの実
験をやることが難しい状況になった。そこで一連の通しの実験を、「投下」、「切り離し」、「地上走行」、「サンプル採取」の 4 つに分けて別々に実験を行った。その結果、4 つの実験はどれも目的を達成することができた。
最後に、活動を通して得られた経験について説明する。1 つ目は、トラブルや問題解決を通して
メンバー間のコミュニケーションの重要性を再認識するとともに、その方法について模索することができた。2 つ目に、設計通りにはいかないハードウェア設計の難しさ、面白さを経験することができた。3 つ目に、感染症対策下でのハードウェア開発の難しさを経験することができた。4 つ目に、グループワークでの開発を通して、他のメンバーを尊重・信頼することの重要性を知ることができた。
（※文責: 上松大貴）

7.2

今後の展望

今後の展望として、まずパラシュートについては安定して垂直降下するように空力設計を見直す
ことと、今回実装した切り離し機構以外にも切り離しの方法を検討し、着地したあとスムーズに機体とパラシュートを分離させる機構を実装することが上げられる。次に機体の構造については、本Group Report of 2021 SISP

- 48 -

Group Number 15-B

Flying Autonomous Robot Project体構造を見直して衝撃で分解しないようにする事、サーボモータやセンサの動作条件を見直し、正しく動作する事が上げられる。次に機体を制御するアルゴリズムについてであるが、方向や位置推定にカルマンフィルタを用いるなど更なる最適化の方法を模索していくことが上げられる。プロ
ジェクトとしては、今回の機体をベースに前述のような改良をして、公式な CanSat 競技に参加したいと考えている。また、今回得られた経験や知識を各メンバーが他の場所で活かして行く事も、このプロジェクトにおける重要な今後の展望である。
（※文責: 上松大貴）

7.3

プロジェクトにおける自分の役割

7.3.1

成田凪

プロジェクト全体では、プロジェクトリーダーを担当した。主に、プロジェクト全体の進捗・ス
ケジュール管理、アジェンダの作成、ミーティングの司会進行、提出物の管理、担当教員との連絡や材料発注を行った。プロジェクトを進めるにあたって、スケジュールを常に逆算して考え全体の進捗を管理した。タスクに余裕を持った期限を設けることを心掛け、メンバーが期限を守っているか逐一確認を行った。本プロジェクトは各グループにより活動内容が大きく異なるので、各グループの活動の進め方は基本的には各グループリーダーに委託した。次に、コミュニケーションを達成するために、ミーティング中などにメンバーが発言をしやすいように心掛けた。発言が少ないメン
バーを名指しで発言を促したり、作業中や休憩中にメンバーが打ち解けやすいように雑談などを意
識的に交わした。
中間発表会や成果発表会では、発表で使用するスライド作成と発表中に流すプレゼンテーション
動画の作成を担当した。本プロジェクトにはデザインコースのメンバーが所属していなかったた
め、スライド作成時には伝わりやすいデザインについて 1 から学習することができた。特に以下のような 6 点の事項を心掛けた。それは、少ない文字数で表現する、文字よりも図表などで説明する、体言止めで表現する、色は 3 色まで、デザインに統一感を持たせる、図と文字は内容でグループ化をするという事項である。スライド作成を通し、自分達が行ってきたプロジェクトの全体像を整理することもできた。また、スライドは Web サイトから配布することも想定し、各ページを移動するだけで自動音声によりスライドの説明を読み上げるような仕様にするといった工夫もした。

B グループでは、飛行系のパラシュートと地上系のローバーを設計・製作する構造班を担当した。後期は講義がある時間以外には工房で作業をするように努めた。開発面以外では、部品の買い出しなどを行った。
（※文責: 成田凪）

7.3.2

坂東紗希

B グループの GPS・飛行制御を担当した。GPS の動作確認が済んだ後期後半は、構造班の応援にまわった。飛行制御では特にパラシュート分離機構に注力した。

GPS は、去年と同じく「みちびき」を選択したこともあり、引き続きその機能が十分に使用できるかを確認する作業を行った。初めて扱うモジュールであるため、同封されていた説明書を読むだけでなく、インターネット上にあげられている実際の使用方法などを調べ、動作に問題がないかGroup Report of 2021 SISP

- 49 -

Group Number 15-B

Flying Autonomous Robot Project精査した。また、GPS 測位キットマニュアルや、受信データの詳細・応用技術が掲載された本などを個人でも購入し、独学で GPS 自体の理解を深めつつ、機体に搭載する上で何が障害となるかを班の中で積極的に議論した。最も注意を払ったのは、GPS の誤差を縮めることである。上空に衛星がどの位置に有るかで計測精度が変わることを留意し、ダムや大学前など複数場所で日にちや時間を変え繰り返し計測することで、誤差が限りなく少なくなることに尽力した。
後期後半で重点を置いたパラシュート分離機構は、特に解決が難しい問題であった。作業時間の制限は勿論、機体も形が決まっていた段階であったため、その兼ね合いの中で確実に展開ができる
パラシュートを考えることは非常に手間を要した。去年に比べて COVID-19 の影響が幾分か落ち着いた状況であったこともあり、プロジェクト外でも工房で作業を行いアドバイスを受けたり、実際に大会に参加した研究室の大会報告書を精読し本機体に技術を応用したり、体育館等での投下実
験を通して試行錯誤を繰り返したことにより、必ず展開が成功するまでとはいかなかったが分離機構を完成させることができた。
制作以外の場面では、Slack での連絡に確認漏れが無いよう注意を払った。また、笹流ダムや大学へ班員を送迎し移動時間を短縮することでもプロジェクトに貢献できたと思う。
今回のプロジェクトは緻密な計画を立てられなかったと考える。計画通りに事が進むとは限らないが、今後はもう少し先を見越した作業を心掛けたい。
（※文責: 坂東紗希）

7.3.3

瀧川崚登

私の役割は、主に Arduino のプログラムの作成であった。また、マイコンでプログラムを組む
都合上、どうしても回路が絡んでくるため、そこも担当した。特に、回路は初心者であったため、苦労した点がいくつかある。また、制御のアルゴリズムについても考案した。それは実際にうまく動いてくれて、達成感を感じた。プログラムについて詳しく書くと、まず、大抵は想定外な動作をする。これは、私が回路について詳しくないからであるが、一番苦労したのは、やはりセンサーの扱いである。とくに 9 軸センサーの磁力センサーは仕様を理解するのに少々苦労した。結果として
は、磁力を 3 つのベクトルに分解するだけであったのだが、それを方位に直すのが意外と苦労した。パソコンのスピーカーに含まれる磁石などにも反応してしまう。そのため、パソコンから離れて実験する必要があったし、そもそもそれに気づくのにも時間を掛けてしまった。他には、電流が不足して Arduino がリセットしてしまったことである。これについては、エラーコードとかもなにもないので、そもそも電流が不足しているということに気づけず、ずっとプログラムがおかしくなっているのだと勘違いしてしまっていた。最終的になんとか気づくことが出来て、電池を交換するなどして、解決することができた。
（※文責: 瀧川崚登）

7.3.4

上松大貴

GPS や WEB サイトを主に担当した。GPS の動作確認が完了した後は、実験の補助や制御班の応援をした。

GPS については、初心者であったため、本やインターネットの資料を用いて独学で必要な知識を身に付けた。また、動作確認の際には「3.4 作業詳細 2. 制御班」にある通り、GNSS View とGroup Report of 2021 SISP

- 50 -

Group Number 15-B

Flying Autonomous Robot Project
GoogleMap を用いた。衛星の位置が日時によって変化したり、測定する場所によって遮蔽物の有無の影響もあり、誤差の範囲が大きくなったりと苦労を強いられた。

WEB サイトは、去年同様にホームページ作成できるサイトである Ameba Ownd を使用した。
テンプレートを用いたり、テキストや URL、画像等の設定が視覚的に操作できるため、誰にでも使用しやすかった。一方で、共同で作業していても誰がどこを編集しているかわからなかった点、更新後も自動で更新されなかったため、慎重にコミュニケーションをとらないと問題が起こりかねなかった点は使いづらく感じた。担当した内容としては成果発表会の際に、CanSat を知らない人にもわかるように説明を書いたり、B グループの実験や各班の活動詳細をまとめた。大幅な変更が必要になったときや自分の把握できていない点については理解者に協力を求め、コミュニケーショ
ンをとりながら進めることができた。
（※文責: 上松大貴）

7.3.5

菊地勇斗

B グループの地上構造物の設計と作成を中心に担当した。また時間に余裕がある場合には飛行構造物の作成や実験、材料の買い出しなども行った。
地上構造物としては、設計から機材を使った作成までの全般の作業を積極的に行った。設計では、事前のミッションに合うような機体設計や材質の確認などを中心に、積極的に意見交換を行った。その過程でホームセンターなどにも行き、実際に判断することでイメージを固めていくことが出来た。その結果、落下時などの衝撃を軽減するモノや機体の耐久度を上げる材料を購入することが出来た。作成の段階では、レーザーカッターや３ D プリンターを中心に作業を行った。レー
ザーカッターは、仮の認証書と管理者がいなくては使えないので、初めに仮の認証書を取るための講習を開始した。そして illustrator での図の作成方法を学びながら、機体本体の土台の切り出しや細かい部品の固定具などの切り出しを行った。また、モーターなどに掛かる負荷を軽減するために、機体の重量を減少させるべく厚みや材料を変えながら、多くの部品を切り出した。その過程
で、仮ではない認証書を取るテストにも合格し、休みなどの工房が空いていない時間にも作業を行えるような環境を整えることができた。３ D プリンターは、立体的な部品を作り出すために活用した。3D ソフトの Tinkercad や Fusion360 を使い、実際に取り付ける大きさに合わせて試作品を作り出した。Tinkercad では、初めての３ D ソフトということで構造班で議論をしながら部品の作成を行った。しかし簡単な図形を組み合わせ、数人で 1 つのデータを動かすことから時間が掛かってしまった。そこで Fusion360 を使い、illustrator のデータを読み込むことが出来る事から、複雑な３ D モデルを作り出すことが出来るようになり、時間の効率を上げることが出来た。そして、３ D プリンターは誤差が大きくなりやすいのか、大きさや向きにより形が正しくなくなることが多く見られた。そのことから、多くの試作品を試行錯誤しながら作成した。また、レーザーカッ
ターや３ D プリンターは実際に大学に行かなくては作業が出来ないモノだったため、時間がある
限り作業は行っていた。
飛行構造物としては、基本的に作成と実験を中心に行っていた。作成では、初めに設計図を参考にしながら、ゴミ袋等を切り出し簡易的なパラシュートを作成した。そして、おもりを付けて実際の軌道を確認したのち、布状の物を切り出しパラシュートを完成させた。他には、パラシュートと機体の切り離し機構の作成も行った。他大学の切り離し機構を参考にしながら、３Ｄプリンターで部品の作成を行った。留め具の位置やモーターの種類なども変更しながら、確実にパラシュートとGroup Report of 2021 SISP

- 51 -

Group Number 15-B

Flying Autonomous Robot Project
機体が切り離せるような機構を作成した。実験としてはパラシュートと紐の長さを変えながら、安定した軌道の物を選別していった。その過程で、投げ方や風の向きなども考えるようになり、より安定した軌道を描けるようになった。
（※文責: 菊地勇斗）

7.3.6

平尾渚羽

B グループの飛行物系と地上構造物系を主に担当した。
前期には、昨年度購入した i-CanSat を見ながら本を読んで CanSat の勉強会を行った。その際「アクチュエータの利用」について調べ発表を行ったが、その知識が後期でパラシュートの切り離し機構を作成する際に大いに役立った。飛行物系としては、機体を落下させる際にパラシュート
かパラフォイルのどちらを用いるのが適しているのかについて精査した。地上構造物系としては、

GPS の初期動作確認を担当した。同封されていた説明書を読むだけでなく、インターネット上にあげられている実際の使用方法などを調べ、動作に問題がないか確認した。また、様々な大学の実際に大会に参加した研究室の大会報告書を読み、機体やミッションなどについての理解を深めたことで、機体の考案やミッションの設定、課題の設定について積極的に意見することができた。疑問点については積極的に質問し、全員の理解が同程度となるように心掛けた。
長期休暇には、飛行物系として数々の論文などを調べた。論文などで得た知識から、様々なパラ
シュートの試作品を多く作成した。それぞれラインの長さを変えたりキャノピーの大きさや形を変えたりして実験を行った。そのデータは最終的なパラシュートには活かされなかったが、非常に良い経験となった。地上構造物系としては、採取機構の設計や、機体本体の設計に関わった。
後期では、飛行物系としてパラシュートの切り離し機構の考案、作成に取り掛かったが、かなりの時間を要した。様々な案を考えたが、それぞれ問題点が見つかり断念することになる案も多かった。しかし、その中で考え出したアイデアを組み合わせ、問題点を解決する機構を完成させることができた。パラシュートの投下実験を何度も行い、どのラインが適しているか精査した。
最終的に完成したパラシュートをダムから投下することはできなかったのは残念だったが、満足のいくものを作ることができた。地上構造物系としては、CanSat 機体の一部の部品の設計や作
成、組み立てなどを行った。飛行物と同じく、地上構造物も何度も試作を作っては新たな案をみん
なで考案して作成を行った。レーザーカッター講習を受け、レーザーカッターを使えるようになってからは、機体の部品を MDF から切り出す仕事も行った。切り出した部品を組み立てたり、部品の設計をイラストレーターを用いて行うこともあり、物を作る技術が身についたと思う。また、グループメンバーを車に乗せて、部品の下見や買い出しに出かけたこともあった。
プロジェクト活動を通して意識したことは、よく発言することだった。初めまだグループメン
バーが打ち解けていないころは、発言をすることで場の空気を和ませたり、話し合いの進行を進める手助けになれたと感じている。
（※文責: 平尾渚羽）

7.3.7

山崎琉清

B グループの構造班として機体本体の設計・製作を中心に活動した。また、飛行制御班と構造班が統合された後は飛行制御の作業にも積極的に参加し、パラシュートの製作・投下実験等を行った。

Group Report of 2021 SISP

- 52 -

Group Number 15-B

Flying Autonomous Robot Project
前期は主に去年使用していたセンサやマニピュレータ―の動作確認を行っていた。他にも、

CanSat 作成における基礎学習や他大学の過去の CanSat 資料を読み込み、自分達のミッションに利用できそうな機構がないかを調べ、その内容を他メンバーと共有した。夏季休暇中は 3D CAD
ソフト”Tinkercad”を用いて機体、サンプル採取機構の構造設計を他の担当者とともに話し合い、作成した。そして後期は夏季休暇中に考案した内容の続きとして、実際に機体を製作するにあたって必要な条件やアイデア出し・材料選定・部品の製作・組み立てなど機体の構造全般にかかわる活動を行った。後期は機体製作が主な活動となったため、大学の工房での活動を頻繁に行った。機体を製作するにあたって必要な知識として、3D CAD ソフト・Adobe Illustrator・レーザーカッ
ターの利用方法を学び、部品製作に活用した。プロジェクト活動時間外にも講義の無い時間では工房での活動を行った。3D プリンターの印刷作業等の比較的時間が必要な作業をプロジェクト時間
外に行うことで製作をスムーズに進めることが出来た。機体本体の製作と並行して、飛行制御のパラシュート作成にも力を入れた。パラシュート製作に関しては調査資料を基にポリ袋で作成した試作段階から作業に参加しており、試作パラシュートを用いた投下実験から本実験で使用するパラシュートのキャノピーの直径決め、製作・運用と最後まで関わった。笹流ダムでの投下実験時には、高所からの投下に加え、投下方法による落下軌道の差異を調べるための投下者撮影等を行った。また、場所を未来大学の体育館に変更して行われた投下実験においては、軌道解析に必要な投下された機体の軌道撮影も行った。プロジェクト全体を通して、グループ内でのミーティングや班でのアイデア出しの際には積極的に意見を延べ、議論を途切れさせること無く他の人の意見を引き出せるように動くことを心がけた。また、早急に会議が必要な際は自分から声を上げ、タスクの期
限に間に合わせ、他の担当者のタスクに支障が無いよう活動した。
発表会用のポスター作成も前期・後期ともに担当した。前期のポスターに関しては知識が乏しかったために他のメンバーからアドバイスを募り、そこで頂いたアイデアや参考資料等を反映させ、完成させた。特に配色にこだわり、シンプルなレイアウトを心がけ、プロジェクトの概要をわ
かりやすく伝える様心がけた。後期のポスターも前期のポスターを参考にし、配色等はかわらず使用した。しかし、ポスターに記入すべき内容が多く、文章量が多くなってしまったためポスター全
体が読みづらくなってしまった。報告書作成については、割り当てられた自分の担当の箇所をより詳細に書きだすことに注力した。また、概要については報告書を読んだ人が本グループの活動について簡潔に理解できるような文章を心がけた。発表会、報告書で使用されたミッション図、CanSat
本体概念図の製作についても担当し、図を見ることによってグループの活動への理解力が高まるよう心掛けた。グループ内で 2 度行った材料の買い出しも担当し、材料検討・売り場確認のための下
見や購入部品の入念な確認を行うことで極力購入漏れが無いよう努めた。
（※文責: 山崎琉清）

7.3.8

松田洸

B グループのグループリーダーとして全体の進捗の確認と連絡、実験場所である笹流ダムへの実験申請を行った。また制御班のメンバーとしては機体に実装するアルゴリズムの考案と実装を行った。
グループリーダーとしては、前期に B グループのミッションを決めた後、どのように進めればミッションを達成できるのかの計画作りとチームメンバーへの仕事の割り振りを行った。またダムの実験などの実験申請や、毎週水曜日に行われる全体ミーティングの班の報告なども代表して行っGroup Report of 2021 SISP

- 53 -

Group Number 15-B

Flying Autonomous Robot Projectた。制御班のメンバーとしては、B グループが掲げた「完全自律走行によるサンプル採取」を実現するために必要なアルゴリズムの考案と実装を行った。そのためにまず、衛星測位の精度や地磁気の状況など実験に必要な環境が得られるかどうかからの検証から行い、その結果を踏まえた上で制御するにあたって必要なことをリストアップし、一つ一つこなしていくようにした。その後、機体の方向合わせや移動の際に生じる誤差の最適化を制御班のメンバーととりかかった。
途中天候不順などのアクシデントもあり、通しの実験ができないなどのトラブルに直面したりしたが、実験計画を変えるなどしてなんとか最終発表会で発表できるだけの実験成果を得ることができた。
（※文責: 松田洸）

Group Report of 2021 SISP

- 54 -

Group Number 15-B

Flying Autonomous Robot Project

第 8 章 謝辞
2021 年度のプロジェクト学習において、新型コロナウイルス感染症 (COVID-19) の影響が続いている中、公立はこだて未来大学工房職員、函館市企業局上下水道部浄水課の担当者ほか、協力していただいた皆様に心から感謝の気持ちと御礼申し上げます。
（※文責: B グループメンバー一同）Group Report of 2021 SISP

- 55 -

Group Number 15-B

Flying Autonomous Robot Project

付録 A

作成したプログラム

今回、課題解決に取り組むにあたって作成したプログラムを添付する。
（※文責: 瀧川崚登）• CanSatTest2.ino
このプログラムでは、プログラムの主な制御を行っている。導入した外部ライブラリは以下の通りである。

– ArduinoSort.h
Arduino で数字などの sort をしてくれる関数を利用するために導入した。
– Wire.h9 軸センサーを利用するために、IC2 規格のモジュールを使用するために導入した。
– SPI.h
SPI で接続するライブラリを導入した。
– SparkFunLSM9DS1.h9 軸センサーを制御するためのライブラリ– TinyGPS.h
GPS の数値を ﬂoat 型に変換するためのライブラリ– SoftwareSerial.h
GPS と通信するためのライブラリ– その他自分で使うための関数を実装したヘッダファイルこれについては後述する。
また、Arduino では、setup 関数と、loop 関数があるが、このプログラムでは主に setup
関数で各モジュールの設定をしている。loop 関数では、本来の Arduino よりもかなり遅く、

1 秒に 10 回程度のループ回数にしてある。これは、デバッグをしやすくするためである。
また、9 軸センサーは精度が不安定であったため、10 回記録したものの中央値を採用している。そのため、機体は、1 秒で動作を決める。そして、最後の関数は緯度と経度を引数として目的地に向かう関数である。コードの中身については 3.3 作業詳細を参照。
（※文責: 瀧川崚登）

ソースコード A.1 CanSatTest2.ino#include <ArduinoSort.h>
2 #include <Wire.h>
3 #include <SPI.h>
4 #include <SparkFunLSM9DS1.h>
5 #include <TinyGPS++.h>
6 #include <SoftwareSerial.h>17Group Report of 2021 SISP

- 56 -

Group Number 15-B

Flying Autonomous Robot Project8

LSM9DS1 imu;

9

TinyGPSPlus gps;

10

SoftwareSerial gpsSerial(14, 15);

#include "Double.h"
12 #include "DirectionSensor.h"
13 #include "GPSSensor.h"
14 #include "Move.h"
15 #include "LatitudeLongitude.h"
16 #include "Sampling.h"
11

17
18
19

const Double TargetLat1 = 41.842310,TargetLong1 = 140.767472;

20
21

void setup() {22

Serial.begin(115200);

23

gpsSerial.begin(9600);

24

Wire.begin();25

if (imu.begin(LSM9DS1_AG,LSM9DS1_M,Wire) == false){

26
27

Serial.println("Failed to communicate with LSM9DS1.");28

while (1);

29

}

30

pinMode(PIN_IN1,OUTPUT);

31

pinMode(PIN_IN2,OUTPUT);

32

pinMode(PIN_IN21,OUTPUT);

33

pinMode(PIN_IN22,OUTPUT);

34

Serial.println("setupEnd");

35

}

36
37

int timeCount = 0;38

Double directionArray[10];39

void loop() {40

goToTarget(TargetLong1,TargetLat1);

41

timeCount++;

42

timeCount%=10;43

delay(100);

44

}

45
46

bool goToTarget(Double Long,Double Lat){

47

Double cansatDirection = getDirection()*180/DPI;

48

directionArray[timeCount] = cansatDirection;49

if(timeCount==9){50

updateGps();51

Double targetDistance = getDistanceFromCoordinate(getLong()/180.0*

52

Double targetDirection = getDirectionFromCoordinate(getLong()/180.0*

DPI,getLat()/180.0*DPI,Long/180.0*DPI,Lat/180.0*DPI);
DPI,getLat()/180.0*DPI,Long/180.0*DPI,Lat/180.0*DPI);
53

sortArray(directionArray,10);Group Report of 2021 SISP

- 57 -

Group Number 15-B

Flying Autonomous Robot Project54

Double cansatDirection = directionArray[10/2];

55

Double needDistance = targetDistance;

56

Double needDirection = targetDirection - cansatDirection;

57
58

while(needDirection<Double(-180.0))needDirection += 360.0;

59while(needDirection>Double(180.0))needDirection -= 360.0;

6061Serial.print("Turn to");Serial.println(needDirection.toString());

62

Serial.print("Distance ");Serial.println(needDistance.toString());

63

if(needDistance<Double(10.0)){64

sampling();65

while(1);66

return true;

67

}

68

Double absNeedDirection = needDirection>0?needDirection:Double(0)needDirection;if(absNeedDirection>5.0){

69

if(absNeedDirection>135.0){70

rotate(1,1500,200);71}else{
if(needDirection<0){
rotate(1,fp64_to_int32((Double(3000.0/180.0)*absNeedDirection).x),200);}else{
rotate(-1,fp64_to_int32((Double(3000.0/180.0)*absNeedDirection).x),200);}}}else{
goStraight(fp64_to_int32((needDistance*Double(1000.0*4000.0)).x),200);
}

72
73
74

75
76

77
78
79
80

81
82

}

83

return false;84}• DirectionSensor.h
このプログラムは方位を返すプログラムである。
（※文責: 瀧川崚登）
ソースコード A.2 DirectionSensor.h#define LSM9DS1_M 0x1C // Would be 0x1C if SDO_M is LOW
2 #define LSM9DS1_AG 0x6A // Would be 0x6A if SDO_AG is LOW
3 Double getDirection(){//rad?
4
if(imu.magAvailable()){
5
imu.readMag();
6}else{
7
Serial.println("readMagError");1

Group Report of 2021 SISP

- 58 -

Group Number 15-B

Flying Autonomous Robot Project
8
9

}

10

Double mx = -(imu.my-742-1120);

11

Double my = -(imu.mx+135+1115);

12

Double mz = mz;

13

Double heading;if (my == 0)

14heading = (mx < 0) ? PI : 0;

15

else

16
17

heading = atan2(mx, my);18

heading += 29.0*PI/180.0;

19while(heading < -PI)heading += 2*PI;

20

while(heading > PI) heading -= 2*PI;

21

return heading;

22

}

23
24

Double getRoll(){if(imu.accelAvailable()){

25

imu.readAccel();26}else{

27

Serial.println("readAccelError");

28
29

}

30

return atan2(imu.ay,imu.az);

31

}

32
33

Double getPitch(){return atan2(-imu.ax,sqrt((Double)imu.ay*imu.ay+(Double)imu.az*imu.az

34

));
35

}

• Double.h
このプログラムでは、緯度経度を計算する都合上どうしてもデフォルトの 32bit だと、誤差が大きくなるので、外部ライブラリを利用して 64bit を使用できるようにした。
（※文責: 瀧川崚登）
ソースコード A.3 Double.h#include <fp64lib.h>
2 class Double {3
public:Double() { x = 0ULL; }45
Double( double f ) { x = fp64_sd( f ); }6
Double( float f ) { x = fp64_sd( f ); }7
Double( int16_t n ) { x = fp64_int16_to_float64( n ); }8
Double( int32_t n ) { x = fp64_int32_to_float64( n ); }1

910

Double( uint16_t n ) { x = fp64_uint16_to_float64( n ); }11

Double( const Double& d ) { x = d.x; }12

Double( float64_t f) {x = f;}

Group Report of 2021 SISP

- 59 -

Group Number 15-B

Flying Autonomous Robot Project
13

const char* toString() {14

return fp64_to_string( x, 17, 15);

15

}

16

Double operator+=( const Double& y ) {17this->x = fp64_add( this->x, y.x );18

return( *this );

19
20

}
Double operator+( const Double& y ) {21

Double res;22

res.x = fp64_add( this->x, y.x );23

return( res );

24

}

25

Double operator-=( const Double& y ) {26

this->x = fp64_sub( this->x, y.x );27

return( *this );

28

}

29

Double operator-( const Double& y ) {30

Double res;31

res.x = fp64_sub( this->x, y.x );32

return( res );

33

}

34

Double operator*=( const Double& y ) {35

this->x = fp64_mul( this->x, y.x );36

return( *this );

37

}

38

Double operator*( const Double& y ) {39

Double res;40

res.x = fp64_mul( this->x, y.x );41

return( res );

42

}

43

Double operator/=( const Double& y ) {44this->x = fp64_div( this->x, y.x );45

return( *this );

46

}

47

Double operator/( const Double& y ) {48

Double res;49

res.x = fp64_div( this->x, y.x );50

return( res );

51

}

52

Double operator%=( const Double& y ) {53

this->x = fp64_fmod( this->x, y.x );54

return( *this );

55

}

56

Double operator%( const Double &y ) {57

Double res;58

res.x = fp64_fmod( this->x, y.x );59

return( res );60}

Group Report of 2021 SISP

- 60 -

Group Number 15-B

Flying Autonomous Robot Projectbool operator<(const Double &y){61

return fp64_compare(this->x,y.x)==-1;

62
63

}

64

bool operator>(const Double &y){return fp64_compare(this->x,y.x)==1;

65
66

}

67

bool operator==(const Double &y){return fp64_compare(this->x,y.x)==0;

68
69

}

70

float64_t x;

71

};

72

Double acos(Double x){
return Double(fp64_acos(x.x));

73
74

}

75
76

Double DPI = acos(Double(-1));

77

Double atan(Double x){
return Double(fp64_atan(x.x));

78
79

}

80

Double atan2(Double x,Double y){81bool xneg = false;82

Double res = Double(atan(x/y));83

if(y<Double(0)){
res += DPI;

84
85

}

86

if(res>DPI)res -= DPI*2.0;87

return res;

88

}

89
90

Double sqrt(Double x){
return Double(fp64_sqrt(x.x));

91
92

}

93
94

Double sin(Double x){
return Double(fp64_sin(x.x));

95
96

}

97
98

Double cos(Double x){
return Double(fp64_cos(x.x));

99
100

}

101
102

Double tan(Double x){
return Double(fp64_tan(x.x));

103
104

}

• GPSSensor.h
このプログラムは、緯度と経度を GPS から取得するプログラムである。
（※文責: 瀧川崚登）

Group Report of 2021 SISP

- 61 -

Group Number 15-B

Flying Autonomous Robot Project
ソースコード A.4 GPSSensor.h1void updateGps(){while(1){2
3if(gpsSerial.available()>0){

4

char c = gpsSerial.read();5

gps.encode(c);6

if(gps.location.isUpdated()){

7

Serial.print("LAT="); Serial.println(gps.location.lat(), 6);

8

Serial.print("LONG="); Serial.println(gps.location.lng(), 6);

9

Serial.print("ALT="); Serial.println(gps.altitude.meters());

10

break;

11}12}else{
continue;

13

}

14

}

15
16

}

17

Double getLat(){//緯度18
19

return gps.location.lat();

20

}

21
22

Double getLong(){//経度

23

return gps.location.lng();

24
25

}

26
27

Double getAlt(){

28

return gps.altitude.meters();

29
30

}

• LatitudeLongtude.h
このプログラムは、現在地と目的地の緯度と経度から、機体の向くべき角度と距離を求めるプログラムである。
（※文責: 瀧川崚登）
ソースコード A.5 LatitudeLongtude.h1

const Double earth_radius(6378137.0);23//経度緯度4
5
6

Double getDistanceFromCoordinate(Double sx,Double sy,Double tx,Double ty){
7

Double dx = tx-sx;

8

Double dy = ty-sy;Group Report of 2021 SISP

- 62 -

Group Number 15-B

Flying Autonomous Robot Project9

Double distance = earth_radius*acos(sin(sy)*sin(ty)+cos(sy)*cos(ty)*10

return distance;cos(dx));
11

}

12
13

Double getDirectionFromCoordinate(Double sx,Double sy,Double tx,Double ty){
14

Double dx = tx-sx;

15

Double dy = ty-sy;

16

Double direct = Double(PI/2.0)-atan2(cos(sy)*tan(ty)-sin(sy)*cos(dx),17return direct;

sin(dx));18}• Move.h
このプログラムは、機体を動かすためのモーターを制御するためのプログラムである。
（※文責: 瀧川崚登）
ソースコード A.6 Move.h#define PIN_IN1 7
2 #define PIN_IN2 8
3 #define PIN_VREF 9 // PWM
1

4#define PIN_IN21 12
6 #define PIN_IN22 11
7 #define PIN_VREF2 10 // PWM
8 void rotate(int direct,int rotete_time,int power){
9
analogWrite(PIN_VREF,power);
10
analogWrite(PIN_VREF2,power);511

if(direct == 1){1213

digitalWrite(PIN_IN1,HIGH);

14

digitalWrite(PIN_IN2,LOW);

15

digitalWrite(PIN_IN21,LOW);
digitalWrite(PIN_IN22,HIGH);

16}else{

17
18

digitalWrite(PIN_IN1,LOW);

19

digitalWrite(PIN_IN2,HIGH);

20

digitalWrite(PIN_IN21,HIGH);

21

digitalWrite(PIN_IN22,LOW);

22

}

23

delay(rotete_time);

24

digitalWrite(PIN_IN1,HIGH);

25

digitalWrite(PIN_IN2,HIGH);

26

digitalWrite(PIN_IN21,HIGH);

27

digitalWrite(PIN_IN22,HIGH);

28

}

29

Group Report of 2021 SISP

- 63 -

Group Number 15-B

Flying Autonomous Robot Project30

void goStraight(int go_time,int power){

31

analogWrite(PIN_VREF,power);

32

analogWrite(PIN_VREF2,power);

33

digitalWrite(PIN_IN1,HIGH);

34

digitalWrite(PIN_IN2,LOW);

35

digitalWrite(PIN_IN21,HIGH);
digitalWrite(PIN_IN22,LOW);

36
37

}

• Sampling.h
このプログラムは、採取するためのサーボモータを制御するためのプログラムである。
（※文責: 瀧川崚登）
ソースコード A.7 Sampling.h1#include <Servo.h>23Servo sv;

4

const int SV_PIN = 3;

5void saishu1(){6

for(int i = 0;i<100;i++){7

digitalWrite(SV_PIN, HIGH);

8

delayMicroseconds(2400);

9digitalWrite(SV_PIN, LOW);

10

delay(20);

11

}

12

for(int i = 0;i<100;i++){13

digitalWrite(SV_PIN, HIGH);

14

delayMicroseconds(1500);

15digitalWrite(SV_PIN, LOW);

16

delay(20);

17

}

18

}

Group Report of 2021 SISP

- 64 -

Group Number 15-B

参考文献
[1] CanSat 計画 ー日米大学による手作り小型衛星への挑戦ーhttps://www.jstage.jst.go.jp/article/kjsass/48/562/48_589/_pdf/-char/ja
2021 年 7 月 16 日アクセス[2] 新たな宇宙探査機を目指すローバの進化：ARLISS での挑戦
https://www.jstage.jst.go.jp/article/sicejl/52/6/52_515/_pdf
2021 年 7 月 16 日アクセス[3] ARLISS2011 Tokyo Denki University Can Sat project ARLISS2011 活動報告書
http://www.unisec.jp/history/arliss2011/report/tdu_rep.pdf
2021 年 7 月 16 日アクセス[4] 大学宇宙工学コンソーシアム編（2004）『CanSat―超小型模擬人工衛星』オーム社- 65 -