1. hoshianaaa

    No comment

    hoshianaaa
Changes in body
Source | HTML | Preview
@@ -1,45 +1,79 @@
### はじめに
ros c++で作成したプログラムはrosrunを使用せずにバイナリファイルから実行することもでき、本記事ではそのやり方を記載します。
### 内容
例えば,以下の記事で作成した```my_hello```パッケージの```my_hello```というプログラムを実行してみます。
https://qiita.com/hoshianaaa/items/560954265ed826678d95
```bash
roscore
rosrun my_hello my_hello
```
そしてプロセス名を確認します。
```bash
$ 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```であることがわかります。
実際にバイナリファイルから実行してみます。
```bash
$ 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に共有することができ便利かもしれません。
+
+### おまけ
+ちなみに```roscore```プログラムの実行プロセスはどのようになっているかというと次の様になります。
+
+```bash
+$ ps -aux | grep roscore
+hoshina 6077 0.3 0.5 295360 43912 pts/0 Sl+ 08:41 0:07 /usr/bin/python3 /opt/ros/noetic/bin/roscore
+hoshina 7706 0.0 0.0 17672 656 pts/1 S+ 09:18 0:00 grep --color=auto roscore
+```
+roscoreの実行ファイルは```/opt/ros/noetic/bin```内にることがわかりました。
+
+そしてこのフォルダ内を見てみるとROSのコマンドの実行ファイルが色々と用意されていることが分かりました。
+
+```bash
+$ ls /opt/ros/noetic/bin/
+catkin_find rosmake rqt_console
+catkin_init_workspace rosmaster rqt_dep
+catkin_make rosmsg rqt_graph
+catkin_make_isolated rosmsg-proto rqt_image_view
+catkin_test_results rosnode rqt_logger_level
+catkin_topological_order rospack rqt_plot
+rosbag rosparam rqt_shell
+rosboost-cfg rosrun run_selftest
+rosclean rosservice rviz
+rosconsole rossrv selftest_example
+roscore rosstack selftest_rostest
+roscreate-pkg rostest stage
+rosgraph rostopic tf_remap
+roslaunch rosunit view_frames
+roslaunch-complete roswtf xacro
+roslaunch-deps rqt
+roslaunch-logs rqt_bag
+
+```