1. hoshianaaa

    Posted

    hoshianaaa
Changes in title
+rosrunを使わずros c++プログラムをバイナリから実行
Changes in tags
Changes in body
Source | HTML | Preview

はじめに

ros c++で作成したプログラムはrosrunを使用せずにバイナリファイルから実行することもでき、本記事ではそのやり方を記載します。

内容

例えば,以下の記事で作成したmy_helloパッケージのmy_helloというプログラムを実行してみます。

https://qiita.com/hoshianaaa/items/560954265ed826678d95

roscore
rosrun my_hello my_hello

そしてプロセス名を確認します。

$ ps -aux | grep my_hello
hoshina     7466  0.7  0.2 348852 19244 pts/3    Sl+  09:02   0:01 /home/hoshina/catkin_ws/devel/lib/my_hello/my_hello
hoshina     7584  0.0  0.0  17672   724 pts/1    S+   09:06   0:00 grep --color=auto my_hello

実際に動作しているプロセスは/home/hoshina/catkin_ws/devel/lib/my_hello/my_helloであることがわかります。

実際にバイナリファイルから実行してみます。

$ cd ~/catkin_ws/devel/lib/my_hello/
$ ./my_hello

[ INFO] [1627477760.933650008]: Hello world
[ INFO] [1627477761.033929098]: Hello world
[ INFO] [1627477761.133818627]: Hello world
...

正常に動作することがわかりました。

まとめ

ros c++プログラムは/home/{ユーザ名}/catkin_ws/devel/lib/{パッケージ名}/{実行ファイル名}のファイルから実行することができることが確認できました。

これを使用すると,例えばROSで作成したプログラムのバイナリだけ他のPCに共有することができ便利かもしれません。