創(chuàng)建一個(gè)空白ROS消息,并用機(jī)器人路徑的X和Y位置填充它。然后將更新后的ROS消息發(fā)布到ROS網(wǎng)絡(luò)。
簡單介紹一下Blank Message模塊的作用:Blank Message模塊用指定的消息或服務(wù)類型創(chuàng)建一個(gè)空白消息。Msg塊的輸出是一個(gè)空白的ROS消息(總線信號(hào))。
設(shè)置Class參數(shù)來選擇ROS消息、服務(wù)請求和服務(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塊相對應(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)注
186文章
2981瀏覽量
231117 -
機(jī)器人
+關(guān)注
關(guān)注
211文章
28714瀏覽量
208722 -
ROS
+關(guān)注
關(guān)注
1文章
281瀏覽量
17127
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
專家支招:使用MATLAB和Simulink算法創(chuàng)建FPGA原型
![專家支招:使用<b class='flag-5'>MATLAB</b>和Simulink算法<b class='flag-5'>創(chuàng)建</b>FPGA原型](https://file1.elecfans.com//web2/M00/A6/5C/wKgZomUMPSKAbodzAACQ-lIPuN4441.jpg)
關(guān)于改進(jìn)matlab中存儲(chǔ)方法的一個(gè)帖子,有個(gè)問題請教一下
請問command message與status message的意思是什么
如何在Simulink中使用Matlab Function創(chuàng)建一個(gè)全局變量
如何在Simulink中使用Matlab Function創(chuàng)建一個(gè)全局變量?
Matlab使用方法和程序設(shè)計(jì)
![<b class='flag-5'>Matlab</b>使用<b class='flag-5'>方法</b>和程序設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A4/6B/wKgZomUMNCCAOvpcAAAF3xMkQD8926.jpg)
怎樣在MATLAB中創(chuàng)建函數(shù)
![怎樣在<b class='flag-5'>MATLAB</b><b class='flag-5'>中</b><b class='flag-5'>創(chuàng)建</b>函數(shù)](https://file.elecfans.com/web1/M00/A7/A8/pIYBAF2FtyOAfoWHAABcEuHXOgo660.jpg)
在MATLAB中的編程和數(shù)值方法
如何運(yùn)用MATLAB中的Binning Explorer來創(chuàng)建評(píng)分卡?
MATLAB如何實(shí)現(xiàn)PID?
![<b class='flag-5'>MATLAB</b>如何實(shí)現(xiàn)PID?](https://file.elecfans.com/web2/M00/09/16/pYYBAGD0FvWAeWpFAAAb1Fux1oA753.jpg)
ROS中Message隊(duì)列介紹
![ROS<b class='flag-5'>中</b><b class='flag-5'>Message</b>隊(duì)列介紹](https://file1.elecfans.com/web2/M00/B0/27/wKgZomVUcjSAYLlGAABKnJwYYtM972.jpg)
Simulink中如何創(chuàng)建一個(gè)Publisher
![Simulink<b class='flag-5'>中</b>如何<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>Publisher](https://file1.elecfans.com/web2/M00/AE/64/wKgaomVUju-Adk4yAAE2n8BU1p0510.jpg)
如何在Matlab中自定義Message
![如何在<b class='flag-5'>Matlab</b><b class='flag-5'>中</b>自定義<b class='flag-5'>Message</b>](https://file1.elecfans.com/web2/M00/B0/34/wKgZomVUl6aAe2X6AAAqgAJ3M0k822.jpg)
評(píng)論