●例:すでに存在するソースコード「hogehoge.py」を動かす
●前提
~/.bashrcに
source /opt/ros/foxy/setup.bash
source ~/pi/install/setup.bash
●ソースのビルドと実行⇒「hogehoge.py」を動かす。
中身を見ると「super().init(“reciever”)」の行を見る。
この場合、node名はreciever
・パッケージ作成(ノード名は既に決まっている前提)
cd ~/colcon_ws/src/
ros2 pkg create –build-type ament_python –node-name reciever hogepkg
書式は
ros2 pkg create –build-type ament_python –node-name <ノード名> <パッケージ名>
パッケージ名はプログラム動作には関係ない単なる名前なので、とりまファイル名でもいいと思う。例ではhogepkg
・ソースファイルを置く
~/colcon_ws/src/mbed_rasppi_subscriber_test2_node/mbed_rasppi_subscriber_test2_node/
に、「mbed_rasppi_subscriber_test2_node.py」を格納する。
・setup.pyの変更
’reciever = mbed_rasppi_subscriber_test2_node.reciever:main’
と、自動的に書かれておりますが、先ほどコピーしたファイルを実行したいので、ファイル名(スクリプト名)を以下に変更
’reciever = mbed_rasppi_subscriber_test2_node.mbed_rasppi_subscriber_test2_node:main’
書式は
'<ノード名> = <パッケージ名>.<スクリプト名>:main’
・build
cd ~/colcon_ws/
colcon build
●実行
新たにコンソールを立ち上げて
ros2 run mbed_rasppi_subscriber_test2_node reciever
理由:新たにコンソールを立ち上げる理由は、前提で”.bashrc”の中に書いたスクリプトを実行させたいから。