1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ROS を用いたラジコン作成:要件定義編

Last updated at Posted at 2021-01-11

概要

この記事はRaspberyPi , Arduino , ROS を用いたラジコン作成の要件定義編です。
全体の概要や流れに関しては、本編をご覧ください。

ROS を用いたラジコン作成:本編 (全体まとめ)
ROS を用いたラジコン作成:要件定義編 ← 今ここ
ROS を用いたラジコン作成:ROS環境構築編
ROS を用いたラジコン作成:Arduino制御編
ROS を用いたラジコン作成:コントローラー制御編
ROS を用いたラジコン作成:ハードウェア設計編
ROS を用いたラジコン作成:ソフトウェア設計編
ROS を用いたラジコン作成:ソフトウェア制作編
ROS を用いたラジコン作成:ハードウェア制作編
S__24641539.jpg

今回やること

  • 何を実現したいのか考える
  • 自分自身や身の回りについて現状を把握する
  • 実現するために必要な機能を考える

要件定義

実現したいこと

今回の開発で最も実現したいことは、**『ROSを使って何かしらのハードウェアを作成したい!!』**です。

せっかくロボットに関する内容を学んでいるのなら、ロボット作っちゃおうぜ!!っていうのが将来の目標となりました。
しかし本編にも記載しているように、個人でROSの学習を行うには成果物がなかなか見られず、ちょっとモチベーションを維持し辛いことがあります。

そこで、今回のコンセプトとして表明しているのが**『できる限り安くROSで遊ぼう!!』**です。
まずは超簡単な内容でいいから、1つの成果物を制作してみることが重要だと考えました。

何を制作するのか

さて、それでは何を作りましょうか?
超簡単な内容とは言っても、人によって制作の難易度は異なります。

ROS初学者ですから、構想時点で**『できること』『できないこと』の区別も必要ですね。
できないことの中には、
『技術的にできない』のか、『ハードが足りないからできない』のか、『どんな要素があればできるようになる』**のか・・・
などなど、この辺も考える必要があります。

一旦、自身の学習状況や利用できそうなものをまとめてみました。

できること

  • ROSの基本的な操作 (パッケージや各プログラムの作成)
  • ROSの簡単なシミュレーション
  • ROSを用いたジョイスティックコントローラーの操作
  • Arduinoを用いた電子工作

できないこと

  • ROSの本とかに載ってる、高価なハードの制御
  • いっぱい

知っていること

  • ROSでArduinoを制御することができること
  • 複数のPC間でROSを用いた通信ができること
  • 画像処理関連のパッケージがあること
  • 自動運転や自己位置推定など、SLAM関連のパッケージがあること

使えそうなもの

  • RaspberryPi
  • ラスパイのカメラモジュール
  • WSL内のROS
  • Arduino
  • 電子工作関連のパーツ、道具
  • ジョイスティックコントローラー

ラジコンを制作する!!

上記の内容を一通り考えた結果、**『電子工作の延長線上としてROSを用いて制御を行う』**ことに落ち着きました。

今の私には十分な課題でしょう。
(電子工作すら初心者レベルですので・・・)

とりあえずモーターを回しておけば動きそうなラジコンカーを題材としました。

簡単すぎますかね?
いいんです。まずは土台を固めていきましょう!!
難しくしたいなら、この後に色んなオプションを付けていけばよいでしょう。

機能要件

上記の内容により、制作するものが決まりました。
では次に、その条件を満たすために**『必要な機能』を考えましょう。
また同時に、
『無くてもいいけどあったらいい機能』**も挙げていくと、本当に必要な機能が絞れて本質を見極めやすくなります。

必須項目

『ラジコンカー』を満たすための項目を考えてみます。
これさえあれば成り立つ!といった、最低限の内容を挙げてみます。

  • 車体、タイヤ、動力源がセット
  • 前後左右の移動が可能
  • 無線で操作可能

こんなもんでしょうか?
私にはこれくらいしか思いつきません。
逆に、これだけを満たせばラジコンカーとして成り立つワケです!!

任意項目

次に、『あったらいいな』という機能を挙げていきます。
こんなもん考えだすと無限に出てくるので、余力があれば実装できそうなものに留めておきます。

  • スピード調節機能
  • バック時のブザー
  • 自動ブレーキシステム
  • ハザードランプやウインカー

市販のラジコンにある機能といえばこれくらいでしょうか?
制作時に余力があれば実装したいですね。

不要項目

最後に、今回は不必要な項目について考えます。
任意項目と似てはいますが、**『何を捨てるのか決める』**ことは非常に重要です。

  • 見た目、外装

今回は見た目に関しては完全に捨てます。
機能や制御システムに関与してこない部分は無視していきます。

完成したもの

こちらはネタバレにはなるのですが、最終的に盛り込んだ機能について説明していきます。

実装した機能

  • 車体、タイヤ、動力源がセット
  • 前後左右の移動が可能
  • 有線での操作
  • ハザードランプやウインカー

必須項目の『無線操作』が入ってねぇじゃん!!
と思った方々、すみません… 技量不足により実装することができませんでした…

ROSを用いた複数PC間の通信を試してみたのですが、どうも上手くいかず断念しました。
Arduinoや無線モジュールを使用すれば無線操作は可能でしょうが、ROS学習という今回の趣旨と外れるために実装しておりません。

近日中にリベンジします!!

実装していない機能

  • 無線での操作
  • スピード調節機能
  • バック時のブザー
  • 自動ブレーキシステム

無線操作以外の項目は任意項目ですね。
実装自体は可能でしたが、ROSの学習ではなく電子工作のオマケにしかならないと判断し、今回は実装を断念しました。

それこそ余力があれば、上記の機能も盛り込んだものを制作していきます!!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?