1. 程式人生 > >Robotics System Toolbox ROS入門

Robotics System Toolbox ROS入門

Matlab的機器人工具箱提供了ROS模擬器,我們可以在上面設定ROS並獲取ROS的相關資訊。

初始化ROS網路節點

使用rosinit初始化ROS。預設情況下在Matlab中建立ROS主機並且啟動連線到主機的全域性節點。

>> rosinit
Initializing ROS master on http://DESKTOP-AKNUDCB:11311/.
Initializing global node /matlab_global_node_68516 with NodeURI http://DESKTOP-AKNUDCB:18475/

我們可以使用rosnode list來檢視所有的節點。

>> rosnode list
/matlab_global_node_68516

使用exampleHelperROSCreateSampleNetwork在ROS網路中新增三個節點。

>> exampleHelperROSCreateSampleNetwork
>> rosnode list
/matlab_global_node_68516
/node_1
/node_2
/node_3

ROS話題

檢視當前的話題
rosout是一個預設的日誌話題。

>> rostopic list
/pose  
/rosout
/scan

使用rostopic info來獲取關於一個專門話題的資訊。
下面的意思是/node_1釋出/pose話題,/node_2訂閱/pose話題。

>> rostopic info /pose
Type: geometry_msgs/Twist
 
Publishers:
* /node_1 (http://DESKTOP-AKNUDCB:18541/)
 
Subscribers:
* /node_2 (http://DESKTOP-AKNUDCB:18552/)

檢視關於/node_1的話題

>> rosnode info /node_1
Node: [/node_1]
URI: [http://DESKTOP-AKNUDCB:18541/]
 
Publications (2 Active Topics): 
 * /pose
 * /rosout
 
Subscriptions (1 Active Topics): 
 * /scan
 
Services (0 Active): 

服務services

>> rosservice list
/add
/reply
>> rosservice info /add
Node: /node_3
URI: rosrpc://DESKTOP-AKNUDCB:18577/
Type: roscpp_tutorials/TwoInts
Args: A B

訊息Messages

釋出節點和訂閱節點使用ros messages來交換資訊,每條ROS訊息都有一個關聯的訊息型別,用於定義該訊息中的資料型別和佈局。

>> rostopic type /pose
geometry_msgs/Twist

>> rosmsg show geometry_msgs/Twist
% This expresses velocity in free space broken into its Linear and Angular parts.
Vector3  Linear
Vector3  Angular
>> rosmsg show geometry_msgs/Vector3
% This represents a vector in free space. 

double X
double Y
double Z

關閉ROS Network

從ROS網路中刪除示例節點

>>exampleHelperROSShutDownSampleNetwork

在MATLAB中關閉ROS網路

>> rosshutdown
Shutting down global node /matlab_global_node_68516 with NodeURI http://DESKTOP-AKNUDCB:18475/
Shutting down ROS master on http://DESKTOP-AKNUDCB:11311/.