1. 程式人生 > >五 Gazebo學習總結之建立一個小車

五 Gazebo學習總結之建立一個小車

SDF(Simulator Description format)是用於描述Gazebo模擬環境中所有元素的一種XML檔案格式,包括機器人。

1.建立模型目錄

mkdir -p ~/.gazebo/models/my_robot
2.建立模型配置檔案
gedit ~/.gazebo/models/my_robot/model.config
3.將以下語句複製到.config配置檔案中
<?xml version="1.0"?>
<model>
  <name>My Robot</name>
  <version>1.0</version>
  <sdf version='1.4'>model.sdf</sdf>

  <author>
   <name>My Name</name>
   <email>
[email protected]
</email> </author> <description> My awesome robot. </description> </model>

4.在 ~/.gazebo/models/my_robot/model.sdf 目錄下建立.sdf檔案

gedit ~/.gazebo/models/my_robot/model.sdf

5.複製以下語句到.sdf檔案中

<?xml version='1.0'?>
<sdf version='1.4'>
  <model name="my_robot">
  </model>
</sdf>

到此處,就有了模型的基本內容,model.config檔案描述了機器人一些額外的元資料,且包含了必要的標籤。

6.建立模型的結構

a.通過新增<static>true</static>元素到~/.gazebo/models/my_robot/model.sdf檔案中,使模型處於靜止狀態。

<?xml version='1.0'?>
<sdf version='1.4'>
  <model name="my_robot">
    <static>true</static>
   </model>
</sdf>

b.新增長方形底座。
<?xml version='1.0'?>
  <sdf version='1.4'>
    <model name="my_robot">
    <static>true</static>
      <link name='chassis'>
        <pose>0 0 .1 0 0 0</pose>

        <collision name='collision'>
          <geometry>
            <box>
              <size>.4 .2 .1</size>
            </box>
          </geometry>
        </collision>

        <visual name='visual'>
          <geometry>
            <box>
              <size>.4 .2 .1</size>
            </box>
          </geometry>
        </visual>
      </link>
   </model>
</sdf>

建立的是一個0.4*0.2*0.1米的盒子,由於盒子高為0.2,以盒子的中心點為座標系,故需要
<pose>0 0 .1 0 0 0</pose>,碰撞元素(collision)指定了所使用的碰撞檢測引擎的形狀,視覺元素(visual)指定了檢視引擎的形狀,大部分的例子中,collision和visual是相同的,最常見的使用不同collision和visual元素是為了搭配一個使用了複雜網格的視覺元素而簡化了碰撞元素,這有利於提高效能。

c.執行Gazebo,檢測圖形是否能輸出。

gazebo
結果如下:


d.新增一個萬向輪,萬向輪是一個沒有摩擦的球體。

 <collision name='caster_collision'>
        <pose>-0.15 0 -0.05 0 0 0</pose>
        <geometry>
          <sphere>
          <radius>.05</radius>
        </sphere>
      </geometry>

      <surface>
        <friction>
          <ode>
            <mu>0</mu>
            <mu2>0</mu2>
            <slip1>1.0</slip1>
            <slip2>1.0</slip2>
          </ode>
        </friction>
      </surface>
    </collision>

    <visual name='caster_visual'>
      <pose>-0.15 0 -0.05 0 0 0</pose>
      <geometry>
        <sphere>
          <radius>.05</radius>
        </sphere>
      </geometry>
    </visual>

儲存,點選Gazebo的GUI介面中的Insert選項,結果如下:


e.增加左右輪。

<link name="left_wheel">
    <pose>0.1 0.13 0.1 0 1.5707 1.5707</pose>
    <collision name="collision">
      <geometry>
        <cylinder>
          <radius>.1</radius>
          <length>.05</length>
        </cylinder>
      </geometry>
    </collision>
    <visual name="visual">
      <geometry>
        <cylinder>
          <radius>.1</radius>
          <length>.05</length>
        </cylinder>
      </geometry>
    </visual>
  </link>
<link name="right_wheel">
    <pose>0.1 -0.13 0.1 0 1.5707 1.5707</pose>
    <collision name="collision">
      <geometry>
        <cylinder>
          <radius>.1</radius>
          <length>.05</length>
        </cylinder>
      </geometry>
    </collision>
    <visual name="visual">
      <geometry>
        <cylinder>
          <radius>.1</radius>
          <length>.05</length>
        </cylinder>
      </geometry>
    </visual>
  </link>
結果如下:

設定<static>為false後,小車將能執行。

本文靠自己的理解,翻譯而來,錯誤之處望不吝指教!!!

相關推薦

Gazebo學習總結建立一個小車

SDF(Simulator Description format)是用於描述Gazebo模擬環境中所有元素的一種XML檔案格式,包括機器人。 1.建立模型目錄 mkdir -p ~/.gazebo/models/my_robot 2.建立模型配置檔案 gedit ~

Gazebo學習總結Gazebo的某些設定屬性和主題訂閱

1.對於Gazebo的圖形使用者介面(GUI)的使用與說明,由於比較簡單,請參考: 2.Gazebo的隨機數:Gazebo製造了一個隨機數生成器的使用,預設情況下,隨機種子被設定為正在執行的Gazebo程序的處理識別符(PID),隨機數種子能手動設定,該特徵的好處是獲取了

2018.3.29學習總結如何運行一個最簡單的Servlet程序

ati get png aid 父類 eclips 網上 自己 nco 1,我編寫了我的第一個Servlet程序。HelloServlet 繼承自HttpServlet。因此需要導入javax.servlet開頭的一系列包,那麽這些包來自哪裏呢?答案是Tomcat安裝目錄下

Redis學習總結()釋出訂閱

一、釋出訂閱 釋出訂閱是訊息傳遞的一種方式,即釋出者釋出訊息,訂閱者獲取訊息,中間傳輸的是一種訊息,所以應該有四個必須的要素:釋出者、訂閱(接受)者、通道、訊息。在Redis裡,由於redis分客戶端和服務端,redis服務端提供服務,所以釋出者(publishser)和訂

2014025675《嵌入式課程程序設計》第學習總結

oid 第五周 通過 都是 文件描述符 div 寫文件 log 一個 第5周總結 1.打開文件:fopen() fdopen() freopen() 它們可以不同的模式打開,但都返回一個指向FILE的指針,該指針指向對應的I/O流。此後,對文件的讀寫都是通過這個FILE指

2014025654《嵌入式系統程序設計》第學習總結

判斷 輸出 父進程 文件流 嵌入式系統 結束 可執行文件 size_t 進程組 1.fread 在文件被打開後,可對文件進行讀寫等操作,其中讀操作的函數為fread() 函數原型 size_t fread (voidptr,size_t size,size_t nmemb,

2014025627 《嵌入式程序設計》第學習總結

utl char 程序 width 學習總結 user 成功 數據段 判斷 教材學習內容總結 fork()函數: 一個進程,包括代碼、數據和分配給進程的資源。fork()函數通過系統調用創建一個與原來進程幾乎完全相同的進程,也就是兩個進程可以做完全相同的事,但如果初始參數或

2014025674(16) 《嵌入式系統程序設計》第學習總結

阻塞 成功 fread kernel 版本 use 緩沖區 con ons 一、標準I/O的編程 fread與fwrite 1.fread是一個函數,是計算機程序中從一個文件流中讀數據,最多讀取count個元素,每個元素size字節,如果調用成功返回實際讀取到的元

算法總結一個棧實現另一個棧的排序

new 算法總結 cnblogs peek 如果 全部 class integer 排序 用一個棧實現另一個棧的排序 一個棧中元素的類型為整型,現在想將該棧從頂到底按從大到小的順序排序。只允許申請一個棧。除此之外可以申請新的變量,但不能申請額外數據結構 思路: 將要

201621123021《JAVA程序設計》第學習總結

什麽是 處理 clas private 關鍵詞 main per 活性 over 201621123021《JAVA程序設計》第五周學習總結 1. 本周學習總結 1.1 寫出你認為本周學習中比較重要的知識點關鍵詞 接口、comparator接口、comparable接口、

2017-2018-1 20155336 《信息安全系統設計基礎》第學習總結

先進後出 來看 轉換 它的 window 意思 移位操作 新的 數組 2017-2018-1 20155336 《信息安全系統設計基礎》第五周學習總結 學習目標 理解逆向的概念 掌握X86匯編基礎,能夠閱讀(反)匯編代碼 了解ISA(指令集體系結構) 理解函數調用棧幀的

Lucene學習總結二:Lucene的總體架構

api 要點 iter 不同 blank 應用 文件 score image Lucene總的來說是: 一個高效的,可擴展的,全文檢索庫。 全部用Java實現,無須配置。 僅支持純文本文件的索引(Indexing)和搜索(Search)。 不負責由其他格式的文件抽取純文

20155325 2017-2018 1 《信息安全系統設計基礎》第十學習總結

測試 電路設計 可能 數組指針 ilog archive sheji 不足 返回值 每周作業鏈接匯總 第一周作業:第一章、第七章 第二周作業:9月27日課堂實踐 第三周作業:對Linux命令od -tc -tx1的C語言程序實現myod-優化版 第2章 第四周作業:

2017-2018-1 學號20155209 《信息安全系統設計基礎》第十學習總結

但是 實踐 虛擬存儲器 .cn 沒有 link 課堂 第九周 課程總結 2017-2018-1 學號20155209 《信息安全系統設計基礎》第十五周學習總結 20155209 《信息安全系統設計基礎》課程總結 每周作業鏈接匯總 第一周 簡要內容:完成實驗樓課程資料:實驗

馬哥教育M28第十三天到第十學習總結

cache hdp centos time 利用 mask nosuid 括號 通過 馬哥第十三天、 <font size=4>1.lftp安裝:直接在Linux上登錄遠程服務器下載ftp上的文件,查詢lftp使用方式 lftp 用戶名:密碼@ftp地址:傳送

機器學習總結第一章緒論

分享 概率 都是 ack 學習 包含 png 分類 post 機器學習總結之第一章緒論 http://www.cnblogs.com/kuotian/p/6141728.html 1.2基本術語 特征向量:即示例,反映事件或對象在某方面的性質。例如,西瓜的色澤,敲聲。

機器學習總結第二章模型評估與選擇

概率密度函數 列聯表 ext 5.1 ima 其中 bsp 泛化能力 分解 機器學習總結之第二章模型評估與選擇 2.1經驗誤差與過擬合 錯誤率 = a個樣本分類錯誤/m個樣本 精度 = 1 - 錯誤率 誤差:學習器實際預測輸出與樣本的真是輸出之間的差異。 訓練誤差:即

20165232 第學習總結

異常 創建 繼續 you 圖片 第一周 ole 出現異常 MQ 20165232第五周學習總結 教材內容總結 第七章 內部類:外嵌類的成員變量在內部類中仍然有效,內部類中的方法也可以調用外嵌類中的方法。內部類的類體中不可以聲明類變量和類方法。外嵌類的類體中可以用內部類聲明

20165225《Java程序設計》第學習總結

是否 exc last new http 異常 有關 absolut -m 20165225《Java程序設計》第五周學習總結 1.視頻與課本中的學習: - 第七章學習總結 內部類: 內部類的外嵌類的成員變量在內部類中仍然有效,內部類中的方法也可以調用外嵌類中的方法。

20165301 2017-2018-2 《Java程序設計》第學習總結

AD 信息 數組 com -c ner 第三周 有關 運行結果截圖 20165301 2017-2018-2 《Java程序設計》第五周學習總結 教材學習內容總結 第七章:內部類與異常類 內部類 在一個類中定義另一個類 非內部類不可以是static類 匿名類 一個子類去掉