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