1. 程式人生 > >ros建立urdf或xarco檔案時,模型座標點的理解

ros建立urdf或xarco檔案時,模型座標點的理解


使用ros少不了要建立機器人模型檔案,檔案格式是xml,能建立幾何模型,也能引用3d的模型檔案,說白了就是將模型組織在一塊兒,搭積木一樣堆個機器人出來。
所以對幾何模型座標的理解不能含糊。


座標系遵循右手法則食指x中指y拇指z。

連桿模型示例

<link name="shoulder_link">
      <visual>
        <geometry>
          <cylinder length="0.05" radius="0.025"/>
        </geometry>
        <origin xyz="0.0 0.0 0.025"/>
        <material name="white"/>
      </visual>
</link>

建立了一個圓柱幾何模型高度為0.05,半徑為0.025,單位是m,原點在其質心。

<origin xyz="0.0 0.0 0.025"/>一句進行模型xyz方向的偏移設定
即z方向往上偏移0.025

現在原點在幾何模型的底部。






再一個連桿
<link name="upper_arm_link">
      <visual>
        <geometry>
          <box size="0.1 0,01 0.01"/>
        </geometry>
        <origin rpy="0.0 1.5705 0.0" xyz="0.0 0.0 -0.05"/>
        <material name="white"/>
      </visual>
</link>
建立了一個x 10cm y 1cm z 1cm的長方條。橫放10cm長。


<origin rpy="0.0 1.5705 0.0" xyz="0.0 0.0 -0.05"/>
rpy 設定旋轉 沿著y軸轉1.5705弧度{90度},變豎放10cm高,
此時原點沒變,還在質點,

xyz 設定模型z方向向下5cm,
此時原點在豎長條頂部。


兩個連桿之間的關節

<joint name="upper_arm_joint" type="revolute">
      <parent link="shoulder_link"/>
      <child link="upper_arm_link"/>
      <origin xyz="0.0 0.0 0.05"/>
      <axis xyz="0 0 1"/>
      <limit effort="${arm_effort}"
             lower="${-45.0 * deg_to_rad}" upper="${45.0 * deg_to_rad}"
             velocity="${arm_velocity}"/>
      <dynamics friction="${arm_friction}" damping="${arm_damping}"/>

      <safety_controller k_position="20"
                         k_velocity="20"
                         soft_lower_limit="${-45.0 * deg_to_rad + arm_eps}"
                         soft_upper_limit="${ 45.0 * deg_to_rad - arm_eps}"/>
    </joint>
關節體現了幾何模型之間的位置和連結關係

<origin xyz="0.0 0.0 0.05"/>
是指關節位置相對於parent座標系進行的偏移量。


shoulder的座標系在模型底部,其高度為0.05,
由於偏移設定為沿著z方向往上0.05的位置,
所以這個關節在模型shoulder_link頂部的位置。

type=revolute設定為旋轉關節。

<axis xyz="0 0 1"/>表示以z軸為旋轉軸。


想象此時圓柱shoulder_link和細長條upper_arm_link應該頂部對齊。
長條可以像鑽頭一樣在一定範圍內+-45度旋轉。












相關推薦

ros建立urdfxarco檔案模型標點理解

使用ros少不了要建立機器人模型檔案,檔案格式是xml,能建立幾何模型,也能引用3d的模型檔案,說白了就是將模型組織在一塊兒,搭積木一樣堆個機器人出來。 所以對幾何模型座標的理解不能含糊。座標系遵循右手法則食指x中指y拇指z。 連桿模型示例 <link name=

ros建立msg和srv檔案配置CMakeLists.txt檔案問題

作為一個ROS菜鳥,在按照ros wiki上的教程一步一步的走的過程中,在自己配置msg和srv檔案時,遇到了編譯的問題,分析問題,發現是package下的CMakeLists.txt檔案配置出現問題。 以下是建立並編譯一個新的package後生成的CMakeLists.t

android 建立轉出檔案後在電腦端檢視檔案並沒有對應的變化

問題: 在手機連線電腦狀態時,手機應用建立或刪除檔案/資料夾時,電腦端檢視檔案/資料夾時,沒有看到相應的操作。即:當應用刪除檔案時,電腦端依舊可以看到檔案存在;或當應用建立後,電腦端查詢不到相應檔案。 原因: Android手機系統對於檔案的處理的模式,手機需

C語言open()和creat()函式建立檔案檔案許可權設定相關

open()和creat()建立檔案時,檔案許可權說明 首先了解一下 umask 命令,該命令用來設定限制新檔案許可權的掩碼。當新檔案被建立時,其最初的許可權由檔案建立掩碼決定。簡單地來說,umask和open()及creat()函式的許可權碼(mode_t mode引數)共同決定你

建立檔案提示找不見指定的路徑那是因為沒有建立目錄導致的

比如建立一個檔案: File file = new File(“C:/test.txt”);  file.createNewFile(); 這樣是正確的,不會出現任何錯去異常。 但是這樣就出現 “系統

Java SE程式打包成jar包exe程式讀取配置檔案的處理

該Java SE程式打包成JAR包或exe程式的時候,配置檔案不能放在裡面;因為會時不時的修改配置檔案裡面的內容,所以必須放在外邊,以備隨時更改! Main main = new Main();

keil 中建立檔案變數重複定義的解決

     c/c++語言中有很多地方要用到extern,但是如果沒有真正的瞭解它的意義,會給程式設計帶來很大的麻煩,為了使大家少走彎路,特祥細的說明一下。     對於比較小的程式,一般只有一個c檔案和一個頭檔案,全域性變數我們通常會直接定義在c檔案中,在程式之前加int i定義。如果要在標頭檔案中定義有以下

ubuntu 建立本地deb軟體包對Release檔案做gpg簽名

Ubuntu 16.04 (xenial) 在將本地deb軟體包建立repo時候,跟14.04以前的版本相比,強制要求gpg對Release檔案簽名,否則無法使用: Reading package lists... Done W: The repository 'http:

poi建立excel檔案生成單元格下拉選

最近在專案中使用poi建立excel檔案時,需要生成單元格下拉選。 下面是一個demo,註釋比較清楚,以此參考。 package poi; import java.io.FileOutputStream; import org.apache.poi.hssf.user

爬蟲資料儲存為csv檔案表格中間隔有空行問題

問題描述:將爬取的資料儲存的csv檔案,遇到幾個問題,原始碼如下: with open('F:\\Pythontest1\\douban.csv','w') as f: writer = csv.writer(f,dialect='excel') writer.writero

關於火狐瀏覽器下載檔案中文檔案亂碼問題的處理方案。

//設定要下載的檔案的媒體格式 response.setContentType(this.getServletContext().getMimeType(filename)); //處理中文檔案下載時火狐瀏覽器中文檔名亂碼的問題 //從請求頭中獲取User-Agent判斷當前使用的是否是火狐瀏覽器

不同瀏覽器下載檔案設定檔名

public String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException { final String agent =

在 Linux中 cp複製檔案出現略過的提示

想要進行的操作時把當前目錄下的data檔案複製到/Desktop/data/abbs資料夾中,但是沒有成功,只是提示 cp: 略過目錄 ./data [email protected]:~/Desktop$ cp ./data /Desktop/data/abbs

eclipse中編輯log4j 的xml配置檔案自動提示

方法1. 配置log4j.dtd檔案:   Windows -> Preferences -> XML -> XML Catalog         點選 Add..  新增一個XML Catalog Entry        在彈出的視窗如下配置:  

pos機雙屏異顯專案 --- 在密碼解鎖設定密碼副屏不顯示顯示張圖片

雙屏異顯專案 ,在密碼解鎖時,副屏也會同步顯示密碼,為了使用者的密碼安全,副屏解鎖時,副屏亮度調為0;(鎖屏介面getActivity()不能使用,暫時只能調節副屏亮度為0來解決) 另外,在設定中設定密碼時,副屏也會同步顯示設定的密碼,此時讓副屏顯示一張圖片。(這種方式比較簡單) 以

mybatis generator生成對映檔案執行多次導致xml檔案生成錯誤設定table schema也無效

在maven中集成了MBG以後,生成xml等對映檔案時,會生成多次。由於xml檔案是追加,導致xml檔案有多次生成的結果。 原因: 1):在資料庫伺服器上,不同的資料庫中表名相同的表多張。(有幾個同名的表,就會生成幾次) 2):mysql驅動升級到8.x,造成設定sch

IDEA建立maven的web專案main資料夾下沒有javaresources目錄等原始檔夾

我們在用IDEA建立maven webApp專案的時候,建立完成後發現main資料夾下並沒有java,resources等原始檔夾目錄。這時,我們需要手動新增這些原始檔夾: 建立後的專案目錄結構: 手動新增原始檔夾: 選擇File->Project S

Pyinstaller打包成exe檔案報錯:Cannot find existing PyQt5 plugin directories

如下圖所示:在用PyInstaller將.py檔案打包成exe檔案時出現下面的錯誤: 解決辦法: 根據Paths checked後面的路徑建立資料夾,把Anaconda下的qt資料夾裡的plugins資料夾下的所有檔案複製到新建的資料夾裡,我的電腦上對應的位置是:E:\Anac

javah 生成標頭檔案報錯找不到類android.graphics.Bitmap或者找不到 xxxx的類檔案

1.首先編譯執行一下專案,讓要生成標頭檔案的類,編譯成class檔案。 2. 命令列進入,“專案目錄”\app\build\intermediates\classes\debug  例如 F:\LibJpeg\app\build\intermediates\classes\

nginx傳輸大檔案504gateway 問題解決

在傳輸大檔案時,需要增加其響應超時時間,因為後臺服務還在進行資料處理,如果到了65s,nginx會把連線斷開,丟擲一個504超時異常顯示在前臺頁面。這個時候我們需要改變其響應超時時間達到我們需要的效果。檔案配置如下: nginx.conf http { #連線存活超時時間,預設為