LoginSignup
0
1

ROS-TCP-Connector 使用方法

Last updated at Posted at 2023-08-18

Installation

(Unity側)
ROS-TCP-ConnectorのREADME.mdに沿ってパッケージをインストール

(ROS側)

ワークスペース内にROS-TCP-Endpointをインストール

git clone git@github.com:Unity-Technologies/ROS-TCP-Endpoint.git

実行

(Unity側)

引用元:

  1. Unity上部メニューからROS Setingsというウィンドウを開きネットワークを設定

  2. スクリプトを作製(※ファイル名とクラス名は同じにすること)

Screenshot from 2023-08-18 17-28-46.png

2.1 Subscriber

Sub_test.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using StringMsg = RosMessageTypes.Std.StringMsg;

public class Sub_test : MonoBehaviour{

    void Start(){
        ROSConnection.instance.Subscribe<StringMsg>("test1", Callback);
    }

    void Callback(StringMsg msg){
        Debug.Log(msg.data);
    }

}

テスト用コマンド

rostopic pub /test1 std_msgs/String test!!

2.2 Publisher

Pub_test.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using Int32Msg = RosMessageTypes.Std.Int32Msg;

public class Pub_test : MonoBehaviour{

    ROSConnection ros;
    // Start is called before the first frame update
    void Start(){
        ros = ROSConnection.instance;
        ros.RegisterPublisher<Int32Msg>("test2");
    }

    // Update is called once per frame
    void Update(){
        Int32Msg msg_data = new Int32Msg(12345);
        ros.Send("test2", msg_data);
    }

}

テスト用コマンド

rostopic echo /test2

(ROS側)

rosrun ros_tcp_endpoint default_server_endpoint.py

トラブルシューティング

ROSコネクションが表示されない

Screenshot from 2023-08-18 17-23-38.png

原因

  • ROS Clicentがunity上に存在しない

チェック項目

  • world内にROS clientを生成するためのScriptが配置されているか
  • scriptに間違えがないか

参考

  • unity ros 通信に必要なパッケージ
    ROS-TCP-Endpoint

  • Qiita: ROS-TCP-ConnectorでPubSub通信

  • ROS入門 (18) - ROS-Unity間のサービスによる通信

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1