ROS2プログラミングのためのc++入門(逐次更新)
研究室の学生に効率よく教えるために、c++の基礎とROS2のプログラミングに関する動画を撮りました。最終的にはAutoware(オープンソース自動運転ソフトウェア)をちゃんと読んでイジって評価できるようになろうねという目標のもとすすめていきます。
学生なので細かい決まりなどが欠けている場合がありますのでご注意ください。なにかご指摘があればコメントに書いていただけると幸いです。
環境
第二章以降
ubuntu22
ROS2 humble
第0章 gitの設定・使い方
Youtube
gitを一通り学んでソースコードを管理できるようになりましょう。
(githubでのリポジトリの作成、localでのgit管理、リモートへのpush、branch、PR、merge)
SSH接続もやっておきましょう。
gitのSSH接続初期設定
第一章 CMakeだけでBuildする(ROS2に依存しないパッケージ作成)
ROSから勉強し始めると、ROS1ではcatkin_make, ROS2ではcolcon buildなどでビルドすることが多い。
この記事のタイトルは"ROS2のための"と書いてあるが、まずはROS関係なしにCMakeだけで最小の記述でパッケージをつくれるようにします。(ROSで書かなくてもいいことはできるだけROSで書きたくない人も多いため)
第一回 c++ の基礎 build
第二回 c++ classの基礎 前編
Youtube
クラスの基礎をゲーム感覚で学びます。
第三回 c++ classの基礎 中編
Youtube
もう少しバリエーションを豊かにします。
第四回 c++ classの基礎 後編
coming soon
クラスの継承やnamespaceなどをなんとか無理やり入れて解説します。
git
第二章 ROS2の基礎
私は主に点群処理をメインとしているので、PCL等を使った実装をメインに話していきます。
※すべてオープンなものを利用しています。
見本:ros2bag_to_pcd.git
第五回 ros2パッケージの作り方(ros2bagからpcdファイル保存)
Youtube
git
sample ros2 bag file
第六回 offlineでros2bagを読み込む方法
Youtube
git
sample ros2 bag file
第七回 シミュレーション環境(AWSIM)で取得したLiDAR点群を重ね合わせて、SLAMせずに点群地図を作ってみる
Youtube
git
sample ros2 bag file (地図作成用の真値入り)
TIER IVが公開している、自動運転向けシミュレーター
AWSIM document
AWSIM sample map
第八回 sub pubの基本 ros2 bagのtopic名やframe idを変えて出力する
coming soon
第三章 ツール
ros2bagの中身を編集できるツール
Localization評価のためのツール(python)
rosbagのROS1→ROS2への変換方法
Rviz2で点群を簡単に見る方法
ros1bag_to_pcd
memo
python3でrosbagを読み込む
GPUプログラミング