ROS入門基礎-ROS基礎

ROS入門基礎-分爲三部分來寫博客吧,第一步是ROS系統介紹,第二部分是ROS基礎,第三部分是ROS編程實例;,本博客爲ROS基礎

目錄

1.常用的命令行

2.通信機制

3.關鍵組件


1.常用的命令行

常用Linux命令行

1.cd

   cd /etc     //進入/etc目錄                          cd ..          //進入上一級
2.ls

   ls #顯示文件
3.mkdir

   mkdir newfolder #創建文件夾
4.touch

   touch a.txt //創建文件
5.rm
   rm a.txt //刪除文件                                  rm –r 文件夾 //刪除文件及裏面的內容
6.cp

   cp 文件a所在路徑 文件要copy 的位置      cp –r 文件a路徑 文件b路徑       //a文件copyb文件夾下

7.mv

   mv a.txt c #移動a.txt c文件夾                 mv b c #移動a文件夾 到c文件夾
8.pwd

pwd //顯示所處的文件位置
8.echo
   echo “Hello world”> hello.txt#創建有內容的文本文件
9.vim

  Ref: 1.https://zhuanlan.zhihu.com/p/95800252 2.https://blog.csdn.net/weixin_37657720/article/details/80645991

10.其它命令:如解壓與壓縮命令行,僅查看文本cat

常用ROS命令行

 

 1.catkin_create_pkg

    現在使用catkin_create_pkg命令來創建一個名爲beginner_tutorials的新程序包,這個程序包依賴於   std_msgs    roscpprospy
  
catkin_create_pkg beginner_tutorials roscpp rospy std_msgs

2.rospack find package_name

3.rosnode
       rosnode list
     
rosnode info node_name

4.rostopic
       rostopic list
     
rostopic info topic_name

      rostoipic echo topic _name

5.rosservice
       rosservice list
     
rosservice info service_name

6.使用roscd,切換到功能包

      roscd  功能包名

7.rosls 顯示包中的文件

      rosls  功能包名

8.安裝功能包

    sudo apt-get install ros- kinetic-功能包名(可以使用table鍵自動補全)

2.通信機制

1.ROS通信的基本要素:
節點、節點管理器、參數服務器、消息、主題、服務
2.ROS通信的分類:
1. 基於主題的異步數據通信
2. 基於服務的同步通信
3. 基於參數服務器的數據傳遞

2. 1基於主題的異步數據通信:

 

 

基本概念:

 

Nodes      :節點,一個節點即爲一個可執行文件,它可以通過ROS與其它節點進行通信。

Messages:消息,消息是一種ROS數據類型,用於訂閱或發佈到一個話題。採用.msg文件         定義

Topics      :話題,節點可以發佈消息到話題,也可以訂閱話題以接收消息。

                1.節點之間用來傳輸數據的重要總線;

                2.使用發佈/訂閱模型,數據由發佈者傳到訂閱者,同一話題的訂閱者或發佈者可以不唯一

Master     :節點管理器, ROS名稱服務(比如幫助節點找到彼此)

2. 2 基於服務的同步數據通信

 

服務:

1.使用客戶端/服務器,客戶端發送請求數據,服務器完成處理後返回應答數據

2.使用編程語言無關的.Srv文件定義的請求和應答數據結構。

2. 3 基於參數服務器的數據傳遞

參數服務器

1.通過網絡訪問的共享,多變量的字典

2.節點使用節點服務器可以來存儲運行時的參數

3.適合存儲靜態的配置參數,不適合存儲動態配置的數據

3.關鍵組件

 1.launch

   1.launch文件:通過XML標籤語言多節點的配置和啓動

   2.<launch>launch文件根元素採用<launch>標籤定義

   3.<node>:

     <node pkg="package-name" name="exe-name"

    type="node-name"/>

   pkg   :功能包名稱

   name:運行時的可執行名稱

   type  :節點運行時的名稱

 其他:output,ns,args,required,respawn

   4.<pararm>

   設置ROS系統運行中的參數,存放在參數服務器

 <param name="var" value="val" />

    name:參數名

 value:參數值

    <rosparam>:加載參數文件多個參數

 <rosparam name="param.yaml" command="load"  ns="params"/>

  5.<args>:內部參數

   <arg name="arg-name" default="arg-value">

    name:參數名

 default:參數值

 調用:<param name="var" value="$(arg arg-name)" />

6.<remap>:重新改變話題的命名

<remap from="/turtlebot/cmd_vel" to  ="/cmd_vel" />

from :命名 to: 映射之後的命名

7.<include>:包含其他launch文件

<include file="$(arg dirname)/other.launch" />

launch文件實例

  1 <launch>

   2

   3   <group ns="turtlesim1">

   4     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>

   5   </group>

   6

   7   <group ns="turtlesim2">

   8     <node pkg="turtlesim" name="sim"   type="turtlesim_node"/>

   9   </group>

  10

  11   <node pkg="turtlesim" name="mimic" type="mimic">

  12     <remap from="input" to="turtlesim1/turtle1"/>

  13     <remap from="output" to="turtlesim2/turtle1"/>

  14   </node>

  1</launch>

  Ref:http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch

2.Rviz可視化平臺:數據可視化

Rviz:是一款三維可視化工具,很好兼容基於ROS軟件

框架的機器人平臺。

1.Rviz顯示實物

2.圖形化方式,顯示機器人傳感器的信息,機器人運動狀態和周圍的環境

3.Gazebo三維物理仿真平臺

azebo是一款功能強大的三維物理仿真平臺

1.具有強大的物理

2.高質量的圖形渲染

3.方便的編程和圖像接口

參考:
1.http://wiki.ros.org/
2.http://wiki.ros.org/ROS/
3.http://wiki.ros.org/ROS/Tutorials(重要)
4.https://www.ncnynl.com/archives/201609/838.html
5.http://www.guyuehome.com/ (古月居)
6.https://www.ncnynl.com/archives/201609/838.html
 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章