創建一個空白ROS消息,并用機器人路徑的X和Y位置填充它。然后將更新后的ROS消息發布到ROS網絡。
簡單介紹一下Blank Message模塊的作用:Blank Message模塊用指定的消息或服務類型創建一個空白消息。Msg塊的輸出是一個空白的ROS消息(總線信號)。
設置Class參數來選擇ROS消息、服務請求和服務響應消息。這里我們使用的是ROS消息(總線信號)。可以使用總線分配塊來修改總線信號中的特定字段。總線信號被初始化為零值(接地)。
具體操作如下:
1.在庫瀏覽器中單擊ROS工具箱選項卡,或在MATLAB命令行中鍵入roslib,選擇ROS庫。
2.將Blank Message塊拖到模型中。雙擊該塊以打開block的信息。
3.單擊Message類型框旁邊的Select,并從結果彈出窗口中選擇geometry_msgs/Twist。
4.我們想要發布信息還需要Publish模塊,雙擊打開后按下圖所示,因為我們是要發布給/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塊的輸入端口。雙擊總線分配塊。您應該看到message信息,總線分配塊允許總線中的元素被分配新的值。
左邊的列表框顯示了輸入總線中的元素。使用選擇按鈕來選擇要分配的元素。使用向上、向下或移除按鈕重新排列選擇。這里選擇我們需要的X軸線速度和Z軸角速度,按下圖所示操作:
7.按下圖所示連接,這里我們將線速度設置為常數10和角速度設定為常數7。
8.同樣要把仿真時間改為inf
9.單擊Run開始模擬。Simulink為模型創建了一個專用的ROS節點,并創建了一個與Publish塊相對應的ROS發布者。在模擬運行時,在MATLAB命令窗口中輸入rosnode list。
這列出了ROS網絡中所有可用的節點,并包括一個名稱為/untitled_81473的節點(模型的名稱加上一個隨機數,使其具有唯一性)。在模擬運行時,在MATLAB命令窗口中輸入rostopic list。這列出了ROS網絡中可用的所有主題,其中包括/location。
-
matlab
+關注
關注
185文章
2981瀏覽量
231014 -
機器人
+關注
關注
211文章
28646瀏覽量
208429 -
ROS
+關注
關注
1文章
280瀏覽量
17100
發布評論請先 登錄
相關推薦
專家支招:使用MATLAB和Simulink算法創建FPGA原型
![專家支招:使用<b class='flag-5'>MATLAB</b>和Simulink算法<b class='flag-5'>創建</b>FPGA原型](https://file1.elecfans.com//web2/M00/A6/5C/wKgZomUMPSKAbodzAACQ-lIPuN4441.jpg)
關于改進matlab中存儲方法的一個帖子,有個問題請教一下
請問command message與status message的意思是什么
如何在Simulink中使用Matlab Function創建一個全局變量
在MATLAB中的編程和數值方法
如何運用MATLAB中的Binning Explorer來創建評分卡?
ROS中Message隊列介紹
![ROS<b class='flag-5'>中</b><b class='flag-5'>Message</b>隊列介紹](https://file1.elecfans.com/web2/M00/B0/27/wKgZomVUcjSAYLlGAABKnJwYYtM972.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)
評論