UnityとROSの通信

rosrunを実行したときに /usr/bin/env: ‘python’: No such file or directory とエラーが出たとき

pythonコマンドでpython3が起動できるように設定する必要がある


sudo ln -s /usr/bin/python3 /usr/bin/python

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

docker run -v %UserProfile%/ros1_ws:/home/ubuntu/catkin_ws:cached -p 6080:80 -p 10000:10000 --shm-size=1024m tiryoh/ros-desktop-vnc:noetic

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

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

ワークスペースビルドとセットアップ

参考↓

ROS1トピック通信

パッケージ作成

cd ~/catkin_ws/src
catkin_create_pkg my_topic rospy

コード作成

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

Pythonコードに実行権限付与

cd ~/catkin_ws/src/my_topic/src
chmod u+x *.py

ワークスペースビルド

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

実行

terminal1

roscore

terminal2

rosrun my_topic my_publisher_node.py

terminal3

rosrun my_topic my_subscriber_node.py

送信:ROS 受信:Unity

terminal1

roscore

terminal2

rosparam set ROS_IP 0.0.0.0
rosrun ros_tcp_endpoint default_server_endpoint.py

terminal3

rosrun my_topic my_publisher_node.py

送信:Unity 受信:ROS

terminal1

roscore

terminal2

rosparam set ROS_IP 0.0.0.0
rosrun ros_tcp_endpoint default_server_endpoint.py

terminal3

rosrun my_topic my_subscriber_node.py

ros1独自トピック通信

パッケージ作成

cd ~/catkin_ws/src
catkin_create_pkg my_custom_topic rospy std_msgs message_generation message_runtime

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

「~/catkin_ws/src/my_custom_topic/msg/MyMessage.msg」作成

int32 x
int32 y

CMAkeLists.txt編集

コード作成

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

Pythonコードに実行権限付与

cd ~/catkin_ws/src/my_custom_topic/src
chmod u+x *.py

ワークスペースビルド


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

実行

terminal1

roscore

terminal2

rosrun my_custom_topic my_publisher_node.py

terminal3

rosrun my_custom_topic my_subscriber_node.py

送信:ROS 受信:Unity

terminal1

roscore

terminal2

rosparam set ROS_IP 0.0.0.0
rosrun ros_tcp_endpoint default_server_endpoint.py

terminal3

rosrun my_custom_topic my_publisher_node.py

送信:Unity 受信:ROS

terminal1

roscore

terminal2

rosparam set ROS_IP 0.0.0.0
rosrun ros_tcp_endpoint default_server_endpoint.py

terminal3

rosrun my_custom_topic my_subscriber_node.py

ros1サービス通信

パッケージ作成

cd ~/catkin_ws/src
catkin_create_pkg my_service rospy std_msgs message_generation message_runtime

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

「~/catkin_ws/src/my_service/srv/MyService.srv」作成

int32 a
int32 b
---
int32 sum

CMAkeLists.txt編集

コード作成

クライアントコード(~/catkin_ws/src/my_service/src/my_client_node.py)作成
サーバーコード(~/catkin_ws/src/my_service/src/my_server_node.py)作成

Pythonコードに実行権限付与

cd ~/catkin_ws/src/my_service/src
chmod u+x *.py


ワークスペースビルド


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

実行

terminal1

roscore

terminal2

rosrun my_service my_server_node.py

terminal3

rosrun my_service my_client_node.py

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

terminal1

roscore

terminal2

rosparam set ROS_IP 0.0.0.0
rosrun ros_tcp_endpoint default_server_endpoint.py

terminal3

rosrun my_service my_client_node.py

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

terminal1

roscore

terminal2

rosparam set ROS_IP 0.0.0.0
rosrun ros_tcp_endpoint default_server_endpoint.py

terminal3

rosrun my_service my_server_node.py

コメント

コメントを残す

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