自定義msg
將消息導入Unity的步驟如下所示:
1.Unity的菜單“Robotics→Generate ROS Messages…”選擇。
2.在“ROS message path”中選擇“catkin_ws/src”。
然后就可以看到path下的msg都會顯示在Unity下面

然后點擊“MyString.msg”中的“Build msg”。這樣“MyString.msg”將被轉換成c#腳本“MyStringMsg”,并在Project窗口中輸出“RosMessages”。

Topic話題
這一小節我們主要來說Topic的發布和訂閱,首先我們來看一下發布者的Unity編程。
1.在Hierarchy窗口的“+→Create Empty”中創建空GameObject,命名為“Publisher”。
2.在“Publisher”中追加新腳本“ChatterPublisher”,編輯如下
using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using MyStringMsg = RosMessageTypes.Hello.MyStringMsg;
public class ChatterPublisher : MonoBehaviour
{
private ROSConnection ros;
// 初始化時被調用
void Start()
{
// 向ROS連接注冊Topic話題
ros = ROSConnection.instance;
ros.RegisterPublisher< MyStringMsg >("chatter");
}
// 每幀更新
void FixedUpdate()
{
// 發送msg信息
MyStringMsg msg = new MyStringMsg("Hello Unity!");
ros.Send("chatter", msg);
}
}
而接收者和發布者類似,都在Hierarchy窗口的“+→Create Empty”中創建空GameObject,命名為“Subscriber”。
在“Subscriber”中添加新的腳本“ChatterSubscriber”,編輯如下。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using MyStringMsg = RosMessageTypes.Hello.MyStringMsg;
public class ChatterSubscriber : MonoBehaviour{
void Start(){
// 向ROS連接注冊Subscribe
ROSConnection.instance.Subscribe< MyStringMsg >("chatter", Callback);
}
void Callback(MyStringMsg msg){
Debug.Log(msg.data);
}
}
同時我們可以在ROS當中訂閱這些信息,運行
roscore
rosparam set ROS_IP 127.0.0.1
rosparam set ROS_TCP_PORT 10000
rosrun ros_tcp_endpoint default_server_endpoint.py
# roslauch ros_tcp_endpoint endpoint.launch tcp_ip:=127.0.0.1 tcp_port:=10000 # 將127.0.0.1
然后寫一個listener.py的訂閱器。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
編程
+關注
關注
90文章
3716瀏覽量
97178 -
ROS
+關注
關注
1文章
293瀏覽量
18722 -
Unity
+關注
關注
1文章
131瀏覽量
23295
發布評論請先 登錄
相關推薦
熱點推薦
如何將dxf導入Allegro
如何將dxf導入Allegro
Allegro可以導入AutoCAD產生的DXF文件(支持DXF R10-R14版本)。同時Allegro也可以將設計文
發表于 03-21 18:21
?1.2w次閱讀
如何將示例項目導入MCUXpresso IDE?
使用 RT1050 板,并有這個例子。我閱讀了 RT1020 板支持 mc_pmsm 與板 FRDM-MC-LVPMSM 組合的文檔。我正在尋找如何將示例項目導入 MCUXpresso IDE,有人可以幫助我嗎?
發表于 03-16 08:15
如何將ECC密鑰導入HSE FW?
我目前正在嘗試將 ECC 公鑰導入 HSE FW。
OpenSSL 已生成擴展名為“.pem”的私鑰和公鑰。
所以我的問題是,如何將這個 pem 文件轉換成可用于密鑰導入的文件。
發表于 05-04 06:13
如何將Unity著色器移植到通用渲染管道
介紹如何將為內置管道編寫的Unity著色器移植到URP。本指南還介紹了如何將自定義著色器移植到URP。這是因為這些著色器無法自動移植到URP。在指南的末尾,您將:?熟悉URP?了解如何將
發表于 08-02 13:39
如何將Arm Neon C#內部函數與Unity Burst編譯器一起使用
本指南解釋了如何將Arm Neon C#內部函數與Unity Burst編譯器一起使用,以提高Unity Android應用程序的性能。
在本指南結束時,您將了解到:
?單指令多數據(SIMD)指令
發表于 08-10 07:11
如何將Klayout Cell動態導入Lumerical Multiphysics
在本例中,演示了如何將KLayout Library Cell動態導入 Lumerical 以執行設計掃描和表征。該功能支持動態導入到Lumerical FDTD、MODE以及Multiphysics的所有工具,包括CHARGE
如何將消息導入Unity
評論