創(chuàng)建一個(gè)空白ROS消息,并用機(jī)器人路徑的X和Y位置填充它。然后將更新后的ROS消息發(fā)布到ROS網(wǎng)絡(luò)。
簡(jiǎn)單介紹一下Blank Message模塊的作用:Blank Message模塊用指定的消息或服務(wù)類型創(chuàng)建一個(gè)空白消息。Msg塊的輸出是一個(gè)空白的ROS消息(總線信號(hào))。
設(shè)置Class參數(shù)來選擇ROS消息、服務(wù)請(qǐng)求和服務(wù)響應(yīng)消息。這里我們使用的是ROS消息(總線信號(hào))。可以使用總線分配塊來修改總線信號(hào)中的特定字段。總線信號(hào)被初始化為零值(接地)。
具體操作如下:
1.在庫瀏覽器中單擊ROS工具箱選項(xiàng)卡,或在MATLAB命令行中鍵入roslib,選擇ROS庫。
2.將Blank Message塊拖到模型中。雙擊該塊以打開block的信息。
3.單擊Message類型框旁邊的Select,并從結(jié)果彈出窗口中選擇geometry_msgs/Twist。
4.我們想要發(fā)布信息還需要Publish模塊,雙擊打開后按下圖所示,因?yàn)槲覀兪且l(fā)布給/turtle1/cmd_vel去控制小烏龜運(yùn)動(dòng),所以這里選擇/turtle1/cmd_vel話題。
5.上面的我們提到了Blank Message輸出是一個(gè)空白的ROS消息(總線信號(hào))我們可以使用總線分配塊(Bus Assignment)來修改總線信號(hào)中的特定字段。所以我們還需要一個(gè)Bus Assignment模塊,具體需要選擇Simulink 》 Signal Routing庫中拖出一個(gè)Bus Assignment模塊。
6.將空白消息塊Blank Message的輸出端口連接到總線分配塊Bus Assignment的總線輸入端口。然后將Bus Assignment塊的輸出端口連接到ROS Publish塊的輸入端口。雙擊總線分配塊。您應(yīng)該看到message信息,總線分配塊允許總線中的元素被分配新的值。
左邊的列表框顯示了輸入總線中的元素。使用選擇按鈕來選擇要分配的元素。使用向上、向下或移除按鈕重新排列選擇。這里選擇我們需要的X軸線速度和Z軸角速度,按下圖所示操作:
7.按下圖所示連接,這里我們將線速度設(shè)置為常數(shù)10和角速度設(shè)定為常數(shù)7。
8.同樣要把仿真時(shí)間改為inf
9.單擊Run開始模擬。Simulink為模型創(chuàng)建了一個(gè)專用的ROS節(jié)點(diǎn),并創(chuàng)建了一個(gè)與Publish塊相對(duì)應(yīng)的ROS發(fā)布者。在模擬運(yùn)行時(shí),在MATLAB命令窗口中輸入rosnode list。
這列出了ROS網(wǎng)絡(luò)中所有可用的節(jié)點(diǎn),并包括一個(gè)名稱為/untitled_81473的節(jié)點(diǎn)(模型的名稱加上一個(gè)隨機(jī)數(shù),使其具有唯一性)。在模擬運(yùn)行時(shí),在MATLAB命令窗口中輸入rostopic list。這列出了ROS網(wǎng)絡(luò)中可用的所有主題,其中包括/location。
-
matlab
+關(guān)注
關(guān)注
188文章
2995瀏覽量
233189 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
29463瀏覽量
211491 -
ROS
+關(guān)注
關(guān)注
1文章
284瀏覽量
17556
發(fā)布評(píng)論請(qǐng)先 登錄
專家支招:使用MATLAB和Simulink算法創(chuàng)建FPGA原型

關(guān)于改進(jìn)matlab中存儲(chǔ)方法的一個(gè)帖子,有個(gè)問題請(qǐng)教一下
請(qǐng)問command message與status message的意思是什么
如何在Simulink中使用Matlab Function創(chuàng)建一個(gè)全局變量
如何在Simulink中使用Matlab Function創(chuàng)建一個(gè)全局變量?
Matlab使用方法和程序設(shè)計(jì)

怎樣在MATLAB中創(chuàng)建函數(shù)

在MATLAB中的編程和數(shù)值方法
如何運(yùn)用MATLAB中的Binning Explorer來創(chuàng)建評(píng)分卡?
MATLAB如何實(shí)現(xiàn)PID?

ROS中Message隊(duì)列介紹

Simulink中如何創(chuàng)建一個(gè)Publisher

如何在Matlab中自定義Message

評(píng)論