[ROS-Unity] ROS와 Unity의 통신
Updated:
- 리눅스 기반 ROS와 윈도우 기반 Unity간 통신은 어떻게 이루어지나?
- ROS에서 다른 플랫폼과의 Topic Pub/Sub 구현
Requirements
- ROS : Web Socket 기반 rosbridge_suite 라이브러리
- Unity : rosbridge_client를 제공하는 ROS# 라이브러리
ROS
sudo apt-get install ros-<rosdistro>-rosbridge-server
ros bridge 설치roslaunch rosbridge_server rosbridge_websocket.launch
ros bridge 실행 (마스터 노드 구동 중)- WebSocket on port 9090 by default
rostopic echo /cmd_vel
해당 토픽(/cmd_vel)에 값을 echo
Unity
- Assets에서 ROS# 설치
- GameObject에 RosConnector 스크립트 컴포넌트 추가
- WebSocket 연결할 url 지정 (ex. ws://192.168.1.2:9090)
- GameObject에 Topic publishing할 스크립트 컴포넌트 추가
work flow
- ROS bridge로 server-client WebSocket connection
- 각각의 플랫폼에서 publisher/subscriber 등록
ROS - Unity connection using ros bridge based on websocket |
캐릭터의 linear velocity, angular velocity를 unity에서 publish하는 예제 |
P.S. roslibjs
웹 기반 ROS 라이브러리도 존재
조금 더 간단하게 접근할 수 있고, 이해하기 쉬웠음
Leave a comment