テンプレート配布
ROSのCMakeLists.txtやpackage.xmlを白紙から書くのは初心者には難しいので、テンプレートを作成・公開しました。
これを使えば煩雑な設定を飛ばしてPCLの関数が自在にROSノード内で使えます。
Point Cloud Library (点群処理)をメインの用途に置いてC++のコード例も付けていますが、基本的には皆様が必要なライブラリをCMakeLists.txtやpackage.xmlの該当箇所に追記するだけで転用できます。
線分検出のデモ付きです。
使い方
まず、自分のcatkin_wsのsrcディレクトリにコードをダウンロードします。
$ cd your_catkin_ws/src
$ git clone git@github.com:TsuruMasato/edge_detector_ros.git
次にビルドです。Releaseオプションは飛ばしても大丈夫ですが、付けると実行速度が上がります。
$ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
$ catkin build
最後に、環境変数を読み込み直しましょう。
$ source devel/setup.bash`
デモの実行
パターンA : AzureKinectの入力点群をリアルタイムで処理するデモ
-
AzureKinectのROSドライバノードが必須です。
以前記事を書きましたので、これに従いドライバをインストールしてから次にお進み下さい。
-
ドライバ入手後、以下のlaunchでAzureKinectとこの点群処理ノードが同時に起動します。
$ roslaunch edge_detector_ros edge_detector_with_AzureKinect.launch
デモコードの内容は線分のリアルタイム検出です。
赤い線が最も長い線を示しています。
精度の向上はいくらでも可能ですが、それを書くとコードが複雑化し過ぎて初心者に優しくないので、今回はあくまで単純なデモに留めました。
時間が日曜18時だと…?妙だな...
パターンB : ROSノード単体の起動
$ rosrun edge_detector_ros edge_detector_node
上記のコマンドでノード自体は起動できます。
ただし、入力となる点群ストリームが必須です。RealSenseやLiDARなど、sensor_msgs::PointCloud2型であれば接続できます。
launchファイルを参考に、トピック名のremapを適切に行って下さい。
(おまけ) ROSのインストール方法
名城大学 理工学部メカトロニクス工学科 大原研究室様のホームページが非常に分かりやすいため、丸ごと情報を転載しております。私もOSを入れ替える時に参考にしています。
(ROSのインストール方法は沢山記事があるので、各自検索しても大丈夫です)
1. aptリストへのROSの登録
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2. 公開鍵の取得
$ sudo apt install curl
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
3. apt経由でのインストール (ダウンロードに数分かかります)
$ sudo apt update
$ sudo apt install ros-noetic-desktop-full
4. 環境変数の設定
cd
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
これで最低限はセットアップ完了しました。
5. ROS用の特別なツールの導入
ROSにはrosdepという賢いコマンドがあり、開発の途中で必要になる依存ライブラリをコマンド一行で全部入手できたりします。
この際、一応入れておきましょう。
$ sudo apt install python3-rosinstall python3-catkin-tools python3-rosdep
$ sudo rosdep init
$ rosdep update
6. catkin workspaceの作成・開発の準備
$ cd
$ mkdir -p catkin_my_ws/src
$ cd ~/catkin_my_ws
$ catkin build
これで多少カラフルなビルドのメッセージが流れれば成功です。
新しいソフトをコンパイルした後は、必ず 以下のコマンドで環境変数を読み込み直す必要があります。
$ cd catkin_my_ws
$ source devel/setup.bash