ROS講座00 目次

数字は書いた順です。
kinetic->melodic->noetic移行中です。
記事中のコードは参考までに、github上のコードも参照してください。
(食い違いがあったらコメントで教えてください)

# イントロダクション

[01 概要](https://qiita.com/srs/items/d7c7202236d2abe562c8)
ROSのメリット、デメリット、ユースケースについて説明します。

[02 インストール](https://qiita.com/srs/items/e0e0a9dc3f94c2d3348e)
UbuntuのインストールからROSのインストールまで説明します。

[11 gitリポジトリ](https://qiita.com/srs/items/25a56a6abda41dcf396e)
この講座の中のサンプルプログラムが入っているgitリポジトリです。

# 入門

## 基礎編
[03 Pub & Sub 通信](https://qiita.com/srs/items/26ca826802d07a9e3d4e)
C++でROSノードを作成し、ビルドし、実行します。 

[04 roslaunch](https://qiita.com/srs/items/d7b0be3392a3a224b02f)
roslaunchを使用して簡単にROSノードを実行します。

[19 roslaunch2](https://qiita.com/srs/items/e7882078b8cf11dc51fb)
roslaunchのrename、remap、arg、paramについて解説します。

[05 ros tool](https://qiita.com/srs/items/e6fb075ff57fa7ff8812)
ROSのデバッグのためのROSのツールを解説します。

[06 ROS Logger](https://qiita.com/srs/items/47e5fd8fe994431d92b7)
ROSのprintfシステムであるloggerを解説します。

[07 joyプログラム](https://qiita.com/srs/items/9114bb3c27a148e0b855)
joyスティックを用いてturtle_simの「亀」を動かすプログラムを作成します。

[08 pub & sub 遅延測定](https://qiita.com/srs/items/36511930b6ffae9bc87a)
Pub & Sub通信の遅延を測定します。

[41 ros timerで処理を行う](https://qiita.com/srs/items/a159fd8e86bb41a2f0ba)
一定間隔で処理を行うのにメインループでなくtimerを使う方法を解説します。

[09 ROSmsg(とarray型の使い方)](https://qiita.com/srs/items/080f1ca2ec2b2c480d41)
ROSメッセージの使い方について説明します。

[10 カスタムROSメッセージ](https://qiita.com/srs/items/7ac023c549e585caeed0)
自作のROS型の定義の仕方、使い方について解説します。

[58 ROSのツール概要](https://qiita.com/srs/items/3188fc6d1a932a37ad3c)
ROSの各ツールの役割の概要を説明します。

## 可視化編(Rvizモデル表示)
[12 Rviz概要](https://qiita.com/srs/items/dd94f9ec9b68040049ba)
ROSの可視化ソフトであるRvizで何ができるのかを解説します。

[13 URDFを記述する1](https://qiita.com/srs/items/35bbaadd6c4be1e39bb9)
ROSのロボット記述ファイルであるURDFを記述してRvizで表示します。

[14 URDFを記述する2](https://qiita.com/srs/items/77f378230bf856a3625c)
URDFで様々な形のlinkや稼働するjointの記述の仕方を解説します。

[68 xacroを使う1](https://qiita.com/srs/items/43528d00ee789171367f)
urdfをプログラマブルに記述するxacroの基本的な書式を説明します。

[73 xacroを使う2](https://qiita.com/srs/items/9ac7f2f6e47732bb7535)
xacroのマクロなどの使い方を説明します。

[34 stlファイルをrvizで表示する](https://qiita.com/srs/items/d247c998929a8be9da21)
単純な図形だけでなくstlファイルを使って複雑な形状を表示する方法を説明します。

[15 tf-1:概要](https://qiita.com/srs/items/6044686a2a734f7c4c50)
tfの概要について解説します。

[17 tf-2:broadcast、listen](https://qiita.com/srs/items/bff3cc40be352973a8aa)
ROSノードからtfをbroadcast、listenする方法を説明します。

[16 joint_stateをpublishする](https://qiita.com/srs/items/3eb58fd32eee4d84a530)
ROSノードからjoint_stateをpublishsる方法方法を解説します。

[18 Rviz上で移動ロボットを作る](https://qiita.com/srs/items/067df0ffb95923be609a)
全方向移動の移動ロボットをRviz上でシミュレーションします。

## python編
[31 python基礎](https://qiita.com/srs/items/a0ce380687d9cc896404)
基礎的なpythonでのrosノードの記述を解説します。

[55 pythonでrosbagを解析・可視化する](https://qiita.com/srs/items/4d19a749891728c8520a)
rosbagをmatplotlibを使ってグラフに描画します。

[113 smachでタスクを実行する](https://qiita.com/srs/items/3f5acc64a2faac48b63d)
smachの状態遷移を使いながらtaskを実行します。

# Gazeboシミュレーション

## シミュレーション基礎編
[37 gazebo worldを作成する](https://qiita.com/srs/items/9b23ad12bea9e3ec0480)
worldを設定してgazeboを起動する方法を説明します。

[38 gazebo modelを作成する](https://qiita.com/srs/items/ac242e46177c2b797a7b)
gazebo用のmodelを作成する方法を説明します。

[35 車輪ロボットをシミュレーションする](https://qiita.com/srs/items/8fd145aeab1ef07ca239)
Gazeboシミュレーションで車輪ロボットを出現され、プラグインを使って動かします。

[33 車輪ロボットをrvizで表示](https://qiita.com/srs/items/c1065543228e95be1a0f)
車輪ロボットをRvizで表示します。

[133 車輪ロボットの位置をRvizに取り出して表示](https://qiita.com/srs/items/a1e4efc472023a052819)
Gazebo上の位置をRvizに取り出して表示します。

[87 gazeboワールドを明るくする](https://qiita.com/srs/items/49e71932c1ef469b3049)
Gazeboの明るさの設定を行います。

[90 gazeboモデルでメッシュを使う、テクスチャを使う](https://qiita.com/srs/items/8b0c00b1c409efd995cc)
gazeboモデルでメッシュ(stlファイル)とテクスチャを使う方法を説明します。

## urdf連携編

[26 urdfモデルをGazeboに出現させる](https://qiita.com/srs/items/f1a7c8abe577eaf3d0b9)
urdfで記述したモデルをGazeboシミュレーションで出現させる方法を説明します。

[27 ros_controlでjointを動かす](https://qiita.com/srs/items/8868a8bef3752c3464a2)
ros_controlを使ってjointを動かします。

[39 車輪ロボットをros_controlで動かす](https://qiita.com/srs/items/9a1d3bc6f3d381c4d40b)
車輪ロボットをros_controlを使って動かします。

[40 車輪ロボット位置を取得・ros_control経由で関節角度を取得](https://qiita.com/srs/items/5848c6b05e5f8a0827f9)
Gazebo上のモデルの位置をtfに取り込みRvizで表示します。

## シミュレーション発展編

[134 Gazeboで周囲に物を置く](https://qiita.com/srs/items/a1b02eacc050d290a244)
ModelDatabaseのGazeboモデルを使ったり、一定の範囲に複数配置する方法を説明します。

[42 GazeboでLidar、Rangeセンサーのシミュレーションをする](https://qiita.com/srs/items/18291a49cbb278525b47)
GazeboでlidarやRangeセンサーのシミュレーションをします。

[45 GazeboでIMUのシミュレーションをする](https://qiita.com/srs/items/97c5d791a76d170ebaa0)
GazeboでIMUのシミュレーションをします。

[67 Gazeboでカメラのシミュレーションをする](https://qiita.com/srs/items/7d78f9ad21a0e61f5bff)
カラーカメラ・深度カメラのシミュレーションをします。

[106 GazeboのModelPluginを作る](https://qiita.com/srs/items/169822609e6a21d2e336)
自作のGazebo Modelプラグイン書き方、SDFファイルでの使い方を説明します。

## オムニホイールシミュレーション編

[49 オムニホイールのシミュレーション1（オムニホイールのモデリング）](https://qiita.com/srs/items/6191b81d564fd934aa6a)
全方向移動台車のシミュレーションのためにまずはオムニホイールのモデリングをします。

[50 オムニホイールのシミュレーション2（全方向台車のモデリング）](https://qiita.com/srs/items/ba0b5588f943bcc7b7f4)
全方向移動台車をgazebo上に出現させます。

[51 オムニホイールのシミュレーション3（コントローラーを作る）](https://qiita.com/srs/items/45d9b67853820fba8a5c)
全方向移動台車を速度指示で動かします。

[89 オムニホイールのシミュレーション4（サスペンションを作る）](https://qiita.com/srs/items/fb8f42c7d9a99b754fc3)
シミュレーションを安定化させるためにサスペンションを追加します。

[88 オムニホイールの簡易シミュレーション](https://qiita.com/srs/items/b6632f5f8579bca5a3a3)
物体を速度指示通りに動かすplanar_moveプラグインを使います。

# 上級

## 発展編
[43 rosparamを使う1](https://qiita.com/srs/items/b7a7abe313ad65b748f4)
起動時パラメーターとして使われるrosparamの使い方を説明します。

[78 rosparamを使う2](https://qiita.com/srs/items/4a658522a7f5dea5b83f)
辞書型、リスト型のrosparamをROSノードで読みます。

[28 Dynamic Reconfigureを使う](https://qiita.com/srs/items/3adcc5898955a6aa1631)
動的にパラメーターの変更ができるツールであるDynamic Reconfigureを使ってみます。

[29 rosbagを使う](https://qiita.com/srs/items/f6e2c36996e34bcc4d73)
rosの記録・再生ツールであるrosbagを使います。

[48 ROSの時間システム](https://qiita.com/srs/items/4c1f8111ce82e32e6117)
ROSの2つの時間（ROS timeとWall time）を解説します。

[95 actionlibを使う](https://qiita.com/srs/items/a39dcd24aaeb03216026)
actionlibを使って通信をします。

[76 ROSノードの分類とmessage_filter](https://qiita.com/srs/items/5c2f600737abb71bb126)
入出力の方法によってROSノードを3つに分類して書き方を説明します。

[30 3次元の角度の表記と相互変換](https://qiita.com/srs/items/93d7cc671d206a07deae)
3次元の姿勢の表し方とその変換の仕方、ROSで位置姿勢を表す型について解説します。

## 情報表示編（rviz, etc）
[24 RvisにVisualizationMarkerを表示する](https://qiita.com/srs/items/3d16bf8cc60a364bd783)
3Dウィンドウの中に直方体や矢印などのmarkerを表示する方法を解説します。

[23 jskプラグインでrviz上に情報を表示する](https://qiita.com/srs/items/96d1facf8ddfb56d97a4)
Rviz上でTopicの表示をかっこよく表示するためのjskのプラグインを紹介します。

[25 Diagnosticを使う](https://qiita.com/srs/items/46c8593dad23497902a8)
ROSのエラー管理ツールであるdiagnosticsをRvizの画面上に表示します。

[32 rqt_plotでリアルタイムでグラフ表示する](https://qiita.com/srs/items/700513bed0199790502d)
リアルタイムにグラフを表示する方法を説明します。

## プラグイン編
[59 ROSにおけるpluginの書き方](https://qiita.com/srs/items/c258bd38588dac1223d0)
pluginlibを用いたプラグインの書き方、使い方を解説します。

[74 twistを送るrviz panel pluginを作る](https://qiita.com/srs/items/da3b65ca365644783068)
twistをpublishするrvizのpanel pluginを製作します。

[102 Pointを送信するrviz tool pluginを作る](https://qiita.com/srs/items/adddd3dbd0da2d52d68b)
toolタイプのrviz pluginを制作します。

[111 Pointを受信するrviz display pluginを作る](https://qiita.com/srs/items/9977b8493e1a83cf764f)
displayタイプのrviz pluginを制作します。

[118 overlayで表示するのrviz display plugindを作る](https://qiita.com/srs/items/343f859d7b741ccd5711)
Rvizの画面上にOverlayで表示するpluginを製作します。

[84 Nodeletを使う](https://qiita.com/srs/items/2718feee04643b2c8afa)
rosメッセージの通信を高速に実行するための方式であるnodeletについて記述します。

## ネットワーク編
[20 複数のPCでROS接続1](https://qiita.com/srs/items/7d4aeb5e44138f97c770)
複数のPCを使ってROSを起動する方法を説明します。

[21 複数のPCでROS接続2](https://qiita.com/srs/items/309a16ae331da563c2e3)
複数のPC上でのROSノードを、roslaunchを使って一気に起動する方法を説明します。

[22 リモートでロボットの電源を切る](https://qiita.com/srs/items/a41c370268f1a19bf268)
ネットワーク越しにロボットのPCの電源を切る方法を説明します。

[36 非インターネット環境でNTPをする](https://qiita.com/srs/items/a273681713d802062407)
インターネットの無いクローズドな環境で、複数のマシンで時刻合わせをする方法を解説します。

[110 ROSでntpをする](https://qiita.com/srs/items/ce0a0424e86936fc7170)
ROSのトピック経由で時刻設定をする方法を説明します。

[75 gazevo serverを別マシンに分ける](https://qiita.com/srs/items/a4a1b5e1d0f1cb3d10f9)
処理の重いgzserverだけを別マシンで実行する方法を説明します。

## 開発環境編
[54 VMWare上でROSを使う](https://qiita.com/srs/items/25efd45641c274bb8415)
VMwareを使うとwindowsマシンの上にubuntu環境を作り、そこでROSを起動できます。

[64 ROSパッケージのディレクトリ構成](https://qiita.com/srs/items/7a8d7708d1c2d6d2ba78)
ROSのディレクトリ構成を見ます。

[97 CMakeList.txtとpackage.xmlの書き方](https://qiita.com/srs/items/30c81c3f26f1987b0afa)
ビルド・依存情報を記述するCMakelist.txtとpackage.xmlの書き方についてまとめます。

[98 CIでビルドチェックをする](https://qiita.com/srs/items/86e115e59662738275f4)
git pushするたびに自動でビルドチェックを行うように設定します。

[99 エラーと対策](https://qiita.com/srs/items/de7bf71b96dc26b1f53b)
ROSでよく見かけるエラーの原因についてリストアップします。

[127 rosdepを使う](https://qiita.com/srs/items/5fa16ad2efc066ae8de8)
rosdepを使ってシステムの依存関係を解決します。

# 個別要素

## カメラ編
[56 Webカメラの画像を表示する](https://qiita.com/srs/items/eb6972284e5bceb5b623)
Webカメラの画像をROSトピックとしてpublishして、それを表示します。

[57 カメラ画像を圧縮して送信](https://qiita.com/srs/items/dc72dc81c1ae46856ac5)
ネットワーク越しに転送するために画像を圧縮、展開する方法を説明します。

[66 カメラのキャリブレーションを行う](https://qiita.com/srs/items/416aa78f2c679ddb7c52)
カメラの歪みを測定して修正するキャリブレーションを行います。

[119 カメラ画像の色を補正する](https://qiita.com/srs/items/d7336b44a5fb7fd182db)
カメラ画像の色を校正するためのツールを作ります。

[120 WebCameraのパラメーターを指定して起動する](https://qiita.com/srs/items/69210692d7f3f56ccfc8)
libuvc_cameraというpkgを使って詳細な設定をしてカメラを起動します。

[83 camera_infoをセットするノード](https://qiita.com/srs/items/a4ddde5e5b560137fb06)
camera_infoをrosparam経由でセットするノードを製作します。

[77 画像処理用の環境構築を行う](https://qiita.com/srs/items/463bac79564c6bec97f3)
画像処理を行うためのシミュレーション環境を製作して、簡単な画像処理を行います。

[79 画像処理でコーラ缶を検知する](https://qiita.com/srs/items/99d1ff2207772859763c)
画像処理で赤いコーラ缶を検出します。

[80 compressedイメージをOpenCVで読む](https://qiita.com/srs/items/3c3c22f1cbd41f90c5aa)
compressed型の画像を直接読み込むpythonノードを書きます。

[85 カメラ上に投影するimage_geometryを使う](https://qiita.com/srs/items/46d8ffcd33ca5db1c22a)
3D位置とカメラ上の位置を変換します。

[132 CameraInfoを理解する](https://qiita.com/srs/items/e3412e5b25477b46f3bd)
ROSにてカメラ画像の特性を示すCameraInfoの値について解説します。

## LIDAR編
[93 laser_filterを使う](https://qiita.com/srs/items/a05d0fddbc528f8de149)
scanデータを領域でフィルタリングします。

[82 obstacle_detectorを使う](https://qiita.com/srs/items/d3b9425cedf57ab269ff)
lidarの/scanから障害物を検出するROSパッケージを使用します。

[130 laserでマーカーを認識する](https://qiita.com/srs/items/c87230d44a7491356f81)
scanデータから特徴点抽出、テンプレートとのマッチングをしてマーカー認識します。

[65 YDLIDARを使う](https://qiita.com/srs/items/6c2f9c7bb1321e939fae)
安価な360度LIDARであるYDLIDARを使います。

## アーム編
[100 Moveitでサンプルを動かす](https://qiita.com/srs/items/384cceae508bd8ca7875)
crane_plug_armでmoveitのサンプルを動かしてみます。

[103 armロボットのsim環境を作る](https://qiita.com/srs/items/42828b2d556dae146b20)
ロボットアームのシミュレーションをするための環境を構築します。

[104 moveitでオリジナルのアームを使う](https://qiita.com/srs/items/5501a5d5059e4596f8f0)
moveitをオリジナルのアームに適用して、指令をプログラムから送る方法を説明します。

[109 逆運動学を解く](https://qiita.com/srs/items/45117df32d9030331f9d)
4軸のアームを例に逆運動学を解析的に解きます。

## Navigation編
[60 Navgation用のシミュレーション環境](https://qiita.com/srs/items/deda433f868a13ba217a)
navigation stackを使うためのシミュレーションのロボット・環境の構築をします。

[61 位置情報の統合](https://qiita.com/srs/items/7e8454d4d616983e5cb8)
ロボットの位置を複数のセンサーを統合して得る処理を行います。

[91 Laserでmap位置を推定する](https://qiita.com/srs/items/b07a22425548c41bfd04)
LIDARを使った位置推定を導入します。

[92 move_baseで移動する](https://qiita.com/srs/items/8e65f04976abb837d207)
move_baseを使って指示した場所にロボットを移動させます。

[115 costmapの設定を書く](https://qiita.com/srs/items/fba2c83b96d17b2680e6)
costmapのパラメーターの設定方法について詳細を解説します。

[116 navigationを実装する](https://qiita.com/srs/items/48ba24c781a8c2fdb0ea)
move_baseと同様の機能を持つノードを実装します。

[112 不明領域を探索する](https://qiita.com/srs/items/72055f1c24323761a79a)
不明領域を抽出してmove_baseに指令するexplore_liteを使います。

[126 最適化計算をする](https://qiita.com/srs/items/41444ddaf01b0677fe9e)
CppAdとipoptを使って最適化計算をします。

[128 BehaviorTreeを使う](https://qiita.com/srs/items/bd90ea26ee45c3331c10)
behavior treeを使ってロボットの行動を記述・制御します。 

## ハードウェア編
[44 シリアル通信とROSをつなぐ](https://qiita.com/srs/items/efaa8dc0a6d580c7c423)
シリアルポートをROSで使う方法、シリアルが切れても再接続する方法を説明します。

[46 ROSでarduinoを使う](https://qiita.com/srs/items/53b1d0a9d574d9ca7752)
ROSで使うためにCLIで使う方法、rosserialで通信する方法を説明します。

[81 IMU(GY-955)を使う](https://qiita.com/srs/items/51a25b398ac2829698e6)
IMUを接続して姿勢データを取り出します。

[96 カスタムmbedでrosserial+platformioを使う](https://qiita.com/srs/items/dcb003d8eb5289b9907a)
lpc1768のカスタムボードを作る、platformioでコンパイルする、lpc21ispで書き込む、rosserialを使うの4項目を説明します。

[105 toioをROSで操作する](https://qiita.com/srs/items/d7182f66f0d18ae0bdb1)
toioをROSに接続して動かします。

[131 ArdupilotとROS経由で接続する](https://qiita.com/srs/items/09d217c8b9f9e21d2f1d)
Rover製作編でつくたRoverをROSとつなぎます。

# UI

## Qt編
[69 Qtを使う1（ビルドの設定）](https://qiita.com/srs/items/fbb7c44111e560250873)
GUIの作成ツールであるQtをcatkin_makeする設定を説明します。

[70 Qtを使う2（Layout、SIGANAL・SLOT）](https://qiita.com/srs/items/4c0e0bfd92c341f7da7b)
QtのLayoutとSIGNAL・SLOTの使い方を説明します。

[71 Qtを使う3(classの作成)](https://qiita.com/srs/items/97b06f7b44a9d24718a2)
Qtのクラスを製作します。

[94 Qtでpub・subする](https://qiita.com/srs/items/93ab82b96637f405e657)
QtとROSを組み合わせてPub、Subするノードを作成します。

[72 Qtでタッチパッドを作る](https://qiita.com/srs/items/e336e2b4035a4f9587ab)
Qtでタッチパッドとして使えるWidgetを作ります。

[101 ogreで3D描画をする](https://qiita.com/srs/items/9175c43472abe06bda37)
ogreライブライを使って3Dビューの中でオブジェクトを描画します。

[117 QtQuick(qml)を使う](https://qiita.com/srs/items/33195ff2a8db1edee779)
QtQuickを使ってGUIを生成し、それでROSの通信をします。

## Web編
[52 webサーバーを立てる](https://qiita.com/srs/items/f01f1a6732f49163a772)
Webアプリを使うためにWebサーバーをROSで立てます。

[53 ブラウザでpub subする](https://qiita.com/srs/items/d3ec9962f7814d7b16f5)
rosbridgeを経由してjavascriptでpubsubします。

[62 Webカメラの画像をブラウザから見る](https://qiita.com/srs/items/7f86c56d0005184dcbc0)
web経由でカメラ画像を見ます。

[63 webでtwistを送る](https://qiita.com/srs/items/d8d13c5553fc6905cedc)
javascriptを使ってマウス操作でtwistを送ります。

[47 GamePadをブラウザで使う](https://qiita.com/srs/items/ab2261cfd20ba661ef3a)
GamePadをWeb経由でROSと接続します。

[107 rosblidgeのclientを作る](https://qiita.com/srs/items/b95add62815a2a1d268a)
rosbridge_serverにpythonから接続します。

[108 ROSでDatabase(mongo)を使う](https://qiita.com/srs/items/314885a5103dfb2a303a)
rosでmongodbを使う方法を説明します。

[114 DataBaseで画像を扱いブラウザからアクセスする](https://qiita.com/srs/items/b6fa0febdbb1cfa29bf9)
base64へのエンコードを用いてblowserでmongodbに保存した画像を表示します。

## アプリ編
[121 rosbridge経由でpub/subをする](https://qiita.com/srs/items/1fcbd720e2489a0ce7cf)
rostopicをjson形式に変換して、rosbridgeを経由してroscppを使わずにpub-subをを行います。

[122 mjpeg_streamを受信する](https://qiita.com/srs/items/ec631b6d985bc73f368f)
c++のプログラムでカメラ画像のストリーミングを受信します。

## Unity編

[129 Unityプロジェクトをgit管理する](https://qiita.com/srs/items/c86567af32da89583074)
まずはUnityプロジェクトをgitで扱ってみます。

[123 UnityでROSと通信する](https://qiita.com/srs/items/177e605ae8949b9ed3b7)
ROS#を使ってUnityとROSをつなげます。

[124 Unityアプリを整える・androidで使う](https://qiita.com/srs/items/e92f726c84de9b7ca6e6)
Androidでロボットを操作するアプリを作ります。

[125 Unity-ROS#でカスタムmsgを使う](https://qiita.com/srs/items/885346bcdccf8cf19127)
独自に定義したROS型をROS#で使用する方法を説明します。

# 番外編（メカトロニクス講座）
ROSに関係はありませんが、ロボット製作にかかわるものを置いておきます。

## ソフトウェア
[01 gitコマンド](https://qiita.com/srs/items/96c3ede0d8cc61d8d178)
シチュエーション別にgitコマンドを書きます。

[02 Arduino megaのPWMについて](https://qiita.com/srs/items/68981b6e695e6f4468ff)
arduino megaで多数のPWMを使うときの注意を書きます。

[03 c++でudp通信をする方法](https://qiita.com/srs/items/c9286b5cff99e741b993)
c++でudp通信をする方法を書きます。

[04 USBシリアル変換のデバイス名を対応させる](https://qiita.com/srs/items/85b58caff58128a4b486)
USBシリアル変換で各々のデバイスをudevで認識する方法を説明します。

## モーター制御
[05 モーターの技術](https://qiita.com/srs/items/adbc1a88bec36b000bb6)
モーター制御に使われる技術や部品を紹介します。

[06 モーター関連部品の選定](https://qiita.com/srs/items/b1ecf7f5d3bb53255c4f)
モーター関連の部品をピックアップします。

[07 モーターを速度制御する](https://qiita.com/srs/items/3e69e392c9aefa1b4693)
Arduinoを使ってモーターの速度制御をしてみます。

# Rover製作
室内移動ロボットの実機を作っていきます。

[01 スペックの設計をする](https://qiita.com/srs/items/866a6ac77068dd7065c5)
ロボットのサイズを決めるために必要な事項を検討します。

[02 必要なものをそろえる](https://qiita.com/srs/items/f8c71e2f56d890244004)
この先で必要な購入品の一覧を乗せます。

[03 MissionPlannerでardupilotと接続・アップデートする](https://qiita.com/srs/items/c278c3d9f56b213ba202)
pixhawkにardupilotを書き込みます。

[04 XBeeで接続する](https://qiita.com/srs/items/3db6a3532d06931f2334)
XBeeを使って無線でPC-Pixhawkを接続します。

[05 センサー・プロポの初期設定をする](https://qiita.com/srs/items/eb50af277a29a129a5f9)
センサーのキャリブレーションやプロポの接続をします。

[09 外付けデバイスの設定をする](https://qiita.com/srs/items/79efc5f2c0d1eefa1929)
外付けデバイス系の設定します。

[06 モーターの接続・設定をする](https://qiita.com/srs/items/2ab8f7f6e8371c6cfba4)
電源・モーター周りの接続・設定をします。

[07 筐体を組み立てる](https://qiita.com/srs/items/aeb85ebb6528e89a14ef)
筐体を組み立てて走行可能な状態にします。

[08 自己位置の設定・速度制御の設定をする](https://qiita.com/srs/items/b036a7ba18173ad97db4)
速度制御を行うACROモードで移動できるように設定します。