1. 概要
同じものを、「Python」で作成してみます。
ワークスペースを「mypython」。
インタフェース・プログラムのパッケージをそれぞれ「my_interface」「my_service」とします。
2. インタフェース
インタフェースの作成は、「C」と「Python」で同じ要領になります。
mkdir -pv ~/mypython/src
cd ~/mypython/src
ros2 pkg create --build-type ament_cmake my_interface
cd ~/mypython/src/my_interface
mkdir srv
ソースは、同じものを作成しますので、前の方のページをご参照ください。
ビルドします。
cd ~/mypython
colcon build --packages-select my_interface
反映します。
. install/setup.bash
確認。
ros2 interface show my_interface/srv/MyInstruction
3. プログラム
パッケージを作成します。
cd ~/mypython/src
ros2 pkg create --build-type ament_python my_service --dependencies rclcpp my_interface
ソースを作成します。
内容は、伏せておきます。
クライアント側のソース。
vi ~/mypython/src/my_service/my_service/my_client.py
サーバ側のソース。
vi ~/mypython/src/my_service/my_service/my_server.py
「package.xml」「setup.py」の作成者やライセンス関係の記述を変えておいて。
「setup.py」の「entry_points」の箇所を下記へ変更します。
entry_points={
'console_scripts': [
'service = my_service.my_server:main',
'client = my_service.my_client:main',
],
},
ビルド。
cd ~/mypython
rosdep install -i --from-path src --rosdistro jazzy -y
rosdep update
colcon build --packages-select my_service
source install/setup.bash
実行。
ros2 run my_service server
ros2 run my_service client
4. Windows
「Windows」でも同じことをやってみます。
「x64 Native Tools Command Prompt for VS 2019」を管理者権限で開いて。
call C:\ros2_jazzy\local_setup.bat
ワークスペース作成。
mkdir C:\mypython\src
サービスのパッケージを作成。
cd C:\mypython\src
ros2 pkg create --build-type ament_cmake my_interface
cd C:\mypython\src\my_interface
mkdir srv
同じものを作成して。
cd C:\mypython
colcon build --merge-install --packages-select my_interface
反映。
call install/setup.bat
確認。
ros2 interface show my_interface/srv/MyInstruction
プログラムのパッケージを作成。
cd C:\mypython\src
ros2 pkg create --build-type ament_python my_service --dependencies rclcpp my_interface
「Ubuntu」のものと同じパッケージを作成。
ビルド。
cd C:\mypython
colcon build --merge-install --packages-select my_service
call install/setup.bat
確認は、今までと同様です。