- 数字は書いた順です。
- ROS2自体の基礎を知った後に、ROS2をロボットに適用する時に必要な知識を順次開設していきます。
そのためにROS2自体よりも、それ周辺のツールの解説がメインになります。 - 室内用を自律で動くAGVの作成を目指して技術要素を説明していきます。
イントロダクション
ROS2-01 ROS1との主な相違
ROS1経験者向けにROS2での主な違いを説明します。
ROS2-02 環境のセットアップ
ROS2環境構築の方法を説明します。
ROS2基礎参考資料
ROS2それ自体の入門や解説は様々な良質な資料があるので紹介します。
-
Webサイト
-
5分でワカル!? ROSとはなにか
そもそもROSとは何なのかについて解説されています。 -
公式ドキュメント/チュートリアル
よくできている公式のチュートリアルです。ひとまずこれを順番にやっていけば基礎が分かるようになります。
-
5分でワカル!? ROSとはなにか
-
書籍
-
ROS2ではじめよう 次世代ロボットプログラミング
基礎的な事項はおおむね網羅されている資料です。コード例も多く記載されています。
-
ROS2ではじめよう 次世代ロボットプログラミング
開発環境編
ROS2-03 colconでの実行ファイルのビルド
colconでのビルドの記述を解説します。
ROS2-21 colcon testを実行する
コードチェッカーとgtestの実行方法を説明します。
ROS2基本機能編
ROS2-16 ROS2 Parameterを使う1
rclcppでのパラメーター操作の記述をします。
ROS2-17 ROS2 Parameterを使う2
実行時にパラメーターを指定する方法を解説します。
ROS2-18 actionを使う
actionの使い方を解説します。
ROS2-23 記法一覧表
各種記法の一覧表です。
Rvizプラグイン製作編
ROS2-04 Qtの基本機能
QtのGUIを表示するための基本的な記述を説明します。
ROS2-05 Qtをクラスで使う
Qtのクラス実装の記述を行います。
ROS2-06 タッチパネルWidgetを作る
QtのGUIでタッチパッドを作ります。
ROS2-19 RvizPlugin概要
Rviz2のpluginの概要の説明をします。
ROS2-07 Rviz2でタッチのPanelPluginsを作る
Rviz2で自作のpanel pluginを作ります。
ROS-20 Rviz2で文字をOverlayで表示するPluginを作成する
文字をOverlay表示するDisplayPluginの解説をします。
データベース編
ROS2-08 SQLite基礎
ローカルで動くデータベースであるSQLiteの使い方の基本を説明します。
ROS2-09 SQLiteをC++から使う
sqliteのC++APIでの発展的な使い方を説明します。
ROS2-10 更新を検知してsqliteDB情報をROSに送る
他のプロセスがDBを更新したことを検知して、情報を更新する方法を説明します。
ROS2-22 rostopicのログをrosbagに保存する
取得間隔の間引きをしながらrosbagに保存するpythonノードを紹介します。
Ignition Gazebo編
Ignition-01 worldファイルを起動する
Ignitionのインストールから、自作world/modelの使い方を説明します。
Ignition-02 GUIプラグインを作成する
IgnitionのGUIプラグインを作成します。
Ignition-03 SystemプラグインでModelを駆動する
モデルのjointをpluginを使って駆動します。
デバイス製作
ここではROS2で動かすAGVのハードウェアとドライバについて説明していきます。
Rover作成編(ハードウェア)
Ardupilot (on Pixhawk)を使って差動2輪機構での台車を作っていきます。
Rover-01 スペックの設計をする
ロボットのサイズを決めるために必要な事項を検討します。
Rover-02 EspressoFrameの紹介、主要部品の選定、必須パーツリスト
今回製作するAGVである「EspressoFrame」の紹介と、この先で必要な購入品の一覧を乗せます。
Rover-03 MissionPlannerでardupilotと接続・アップデートする
PixhawkにファームウェアであるArdupilotを書き込みます。
Rover-04 ArdupilotにXBeeで接続する
XBeeを使って無線でPC-Pixhawkを接続します。
Rover-05 ArdupilotでIMU、地磁気センサーの初期設定をする
IMU、地磁気センサーの設定をします。
Rover-06 Ardupirotでプロポの初期設定をする
プロポの接続をします。
Rover-07 Ardupirotで距離センサーの設定をする
外付けデバイス系の設定します。
Rover-08 Roboclawの設定をする
モーター周りの配線をして、Roboclawでモーターを駆動します。
Rover-09 Ardupirotで駆動系の設定をする
電装品の実装・電源の接続・モータードライバの設定の後に、MANUALモードでのモーター駆動をします。
Rover-10 ArduRoverでバンパースイッチ、外付けステータスLEDの設定をする
バンパースイッチと外付けステータスLEDの設定をします。
Rover-11 EspressoFrameの筐体(移動部)を組み立てる
筐体を組み立てて走行可能な状態にします。
Rover-12 EspressoFrameの筐体(タワー部)を組み立てる
機体上部のUI部を組み立てます。
Rover-13 Ardupirotで自己位置・速度制御の設定をする
自己位置の設定と、ACROモードで移動できるように設定します。
Rover-14 ロボット用のNUCの事前設定をする
メインコンピューターであるNUCをロボット用に自動起動するように設定します。
Rover作成編(ソフトウェア)
ROS2-11 FeetechServo(STS3215)を動かす
ROSからシリアル方式のサーボモーターを動かします。
ROS2-12 ydlidarX4を使う
YDLIDAR X4をROS2につなげて使用します。
ROS2-13 Ardupilotとmavrosで通信する
mavrosを使ってardupilotとROSを接続します。
ROS2-14 mavrosのpluginsを作成する
mavrosのpluginの記述方法を解説します。
ROS2-15 RealsenseD435を使う
RealsenseをROS2に接続して観測データを可視化します。