ROS(ROS2)- サービス - Python で


クラウディア 


1. 概要
2. インタフェース
3. プログラム
4. Windows

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
 確認は、今までと同様です。

AbemaTV 無料体験
JETBOY