UnityとROS2の通信

unity通信用 Windowsホームフォルダのros2_wsにマウント ros2

docker run -v %UserProfile%/ros2_ws:/home/ubuntu/colcon_ws:cached -p 6080:80 -p 10000:10000 --shm-size=1024m tiryoh/ros2-desktop-vnc:galactic


rosとunityの通信用のパッケージインストール

cd ~/colcon_ws/src
git clone -b ROS2v0.7.0 https://github.com/Unity-Technologies/ROS-TCP-Endpoint

ワークスペースビルド

cd ~/colcon_ws/
colcon build


ワークスペースセットアップコマンドを「~/.bashrc」に追記

「~/.bashrc」はターミナル起動時に自動で実行される。

vim ~/.bashrc

.bashrcの最終行に以下を追加

source ~/colcon_ws/install/setup.bash

ワークスペースセットアップ

source ~/.bashrc

ros2トピック通信


パッケージ作成

cd ~/colcon_ws/src
ros2 pkg create --build-type ament_python my_topic --dependencies rclpy

setup.pyを編集

コード作成

送信コード(~/colcon_ws/src/my_topic/my_topic/my_publisher_node.py)作成
受信コード(~/colcon_ws/src/my_topic/my_topic/my_subscriber_node.py)作成

ワークスペースビルド

ワークスペースセットアップ

実行

terminal1

ros2 run my_topic my_publisher_node

terminal2

ros2 run my_topic my_subscriber_node

送信:ROS2 受信:Unity

terminal1

ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=0.0.0.0

terminal2

ros2 run my_topic my_publisher_node

送信:Unity 受信:ROS2

terminal1

ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=0.0.0.0

terminal2

ros2 run my_topic my_subscriber_node


ros2独自トピック通信

C言語パッケージ作成

cd ~/colcon_ws/src
ros2 pkg create --build-type ament_cmake my_custom_topic_msg

メッセージ定義ファイル作成

「~/colcon_ws/src/my_custom_topic_msg/msg/MyMessage.msg」作成

int32 x
int32 y


package.xml編集

CMakeList.txt編集

パッケージ作成

cd ~/colcon_ws/src
ros2 pkg create --build-type ament_python my_custom_topic --dependencies rclpy

setup.pyを編集

コード作成

送信コード(~/colcon_ws/src/my_custom_topic/my_custom_topic/my_publisher_node.py)作成
受信コード(~/colcon_ws/src/my_custom_topic/my_custom_topic/my_subscriber_node.py)作成

ワークスペースビルド

ワークスペースセットアップ

実行

terminal1

ros2 run my_custom_topic my_publisher_node

terminal2

ros2 run my_custom_topic my_subscriber_node

送信:ROS2 受信:Unity

terminal1

ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=0.0.0.0

terminal2

ros2 run my_custom_topic my_publisher_node

送信:Unity 受信:ROS2

terminal1

ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=0.0.0.0

terminal2

ros2 run my_custom_topic my_subscriber_node

ros2サービス通信


C言語パッケージ作成

cd ~/colcon_ws/src
ros2 pkg create --build-type ament_cmake my_service_srv

メッセージ定義ファイル作成

「~/colcon_ws/src/my_service_srv/srv/MyService.srv」作成

int32 x
int32 y
---
int32 sum

package.xml編集

CMakeList.txt編集

パッケージ作成

cd ~/colcon_ws/src
ros2 pkg create --build-type ament_python my_service --dependencies rclpy

setup.pyを編集

コード作成

送信コード(~/colcon_ws/src/my_service/my_service/my_client_node.py)作成
受信コード(~/colcon_ws/src/my_service/my_service/my_server_node.py)作成

ワークスペースビルド

ワークスペースセットアップ

実行

terminal1

ros2 run my_service my_server_node

terminal2

ros2 run my_service my_client_node

クライアント:ROS2 サーバー:Unity

terminal1

ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=0.0.0.0

terminal2

ros2 run my_service my_client_node

クライアント:Unity サーバー:ROS2

terminal1

ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=0.0.0.0

terminal2

ros2 run my_service my_server_node

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です