多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > ROS 學習系列 -- 使用urdf創建機器人模型在Rviz中3D觀察 之一 joint 使用

ROS 學習系列 -- 使用urdf創建機器人模型在Rviz中3D觀察 之一 joint 使用

來源:程序員人生   發布時間:2015-02-04 08:59:51 閱讀次數:6647次

我們接著上文  ROS 學習系列 -- 使用urdf創建機器人模型在Rviz中3D視察 之1 link使用繼續完成創建帶4個可以轉動輪子的雙層小車。

1 建立可以轉動的joint

<span style="font-size:18px;"><?xml version="1.0"?> <robot name="sp1s"> <link name="base_link"> <visual> <geometry> <box size="0.27 .15 .003"/> </geometry> <material name="white"> <color rgba="1 1 1 .5"/> </material> </visual> </link> <link name="front_left"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <joint name="base_to_front_left" type="<span style="color:#FF0000;"><strong>continuous</strong></span>"> <origin rpy="1.57075 0 0" xyz="0.06 0.064 -0.011"/> <parent link="base_link"/> <child link="front_left"/> <axis xyz="0 0 1"/> </joint> </robot></span>

1. 將joint的類型改成"continuous" 這樣front_left相對base_link就是1個轉動的裝置

2. 轉動的位置就是由 origin定義的,它同時定義了tyer_front_left的新原點,之前它的原點默許就是base_link的原點

     xyz 是相對相對parant base_link原點的偏移, 它把輪子移動到了左前方。其中:

     z = -0.011m = 6.8cm/2 - 4.5cm,保證輪子是在地上的

       y = 0.064m = 15cm/2 - 2.5cm / 2 (輪子厚度) + offset

     pry 是分別以 x y z 軸為中心轉動的角度(弧度制) 1.57075 就是90度。 圍繞x軸旋轉90度輪子就豎了起來。

3. axis重新定義轉動軸在原點的方向,它是1個矢量,只唆使方向,它們必須滿足 x * x + y * y + z * z = 1   原點Z軸已被旋轉90度變成水平方向,所以這里定義Z軸方向為轉動方向


   


2  重復添加4個輪子

其它3個輪子只有origin正負值的調劑

<span style="font-size:18px;"><?xml version="1.0"?> <robot name="sp1s"> <link name="base_link"> <visual> <geometry> <box size="0.27 .15 .003"/> </geometry> <material name="white"> <color rgba="1 1 1 .5"/> </material> </visual> </link> <link name="tyer_front_left"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <link name="tyer_front_right"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <link name="tyer_back_left"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <link name="tyer_back_right"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <joint name="base_to_front_left" type="continuous"> <origin rpy="1.57075 0 0" xyz="0.06 0.064 -0.011"/> <parent link="base_link"/> <child link="tyer_front_left"/> <axis xyz="0 0 1"/> </joint> <joint name="base_to_front_right" type="continuous"> <origin rpy="1.57075 0 0" xyz="0.06 -0.064 -0.011"/> <parent link="base_link"/> <child link="tyer_front_right"/> <axis xyz="0 0 1"/> </joint> <joint name="base_to_back_left" type="continuous"> <origin rpy="1.57075 0 0" xyz="-0.06 0.064 -0.011"/> <parent link="base_link"/> <child link="tyer_back_left"/> <axis xyz="0 0 1"/> </joint> <joint name="base_to_back_right" type="continuous"> <origin rpy="1.57075 0 0" xyz="-0.06 -0.064 -0.011"/> <parent link="base_link"/> <child link="tyer_back_right"/> <axis xyz="0 0 1"/> </joint> </robot> </span>


3  添加4個柱子

上下層的4個角上是高3cm的柱子. 在上面urdf的基礎上再添加下面的內容添加1個左前方的柱子。

<span style="font-size:18px;"> <link name="pillar_front_left"> <visual> <geometry> <cylinder length=".03" radius="0.0025"></cylinder> </geometry> <origin xyz="0 0 0.015"/> <material name="silver"> <color rgba=".86 .86 .86 1"/> </material> </visual> </link> <joint name="base_to_pillar_front_left" type="fixed"> <origin xyz="0.13 0.07 0.0015"/> <parent link="base_link"/> <child link="pillar_front_left"/> </joint></span>
1. 柱子不轉動,所以joint的類型為 fixed

2. joint里面定義改變了柱子的原點為 xyz="0.13 0.07 0.0015" 是相對base_link的

3. link里面也定義了原點為xyz="0 0 0.015", 這里只是顯示上的偏移,它相對joint里面定義的原點,但其實不改變joint里面定義的物理原點

4. 接下來重復加3個柱子,詳見最后1段的urdf定義


4 添加上層

上層和base_link1樣,它們之間通過fixed joint相連。在 Z 軸方向上偏移3cm。

<link name="top_link"> <visual> <geometry> <box size="0.27 .15 .003"/> </geometry> <material name="white"> <color rgba="1 1 1 .5"/> </material> </visual> </link> <joint name="base_to_top" type="fixed"> <origin xyz="0 0 0.03"/> <parent link="base_link"/> <child link="top_link"/> </joint>

5  完全的urdf

<?xml version="1.0"?> <robot name="sp1s"> <link name="base_link"> <visual> <geometry> <box size="0.27 .15 .003"/> </geometry> <material name="white"> <color rgba="1 1 1 .5"/> </material> </visual> </link> <link name="tyer_front_left"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <link name="tyer_front_right"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <link name="tyer_back_left"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <link name="tyer_back_right"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <joint name="base_to_front_left" type="continuous"> <origin rpy="1.57075 0 0" xyz="0.06 0.064 -0.011"/> <parent link="base_link"/> <child link="tyer_front_left"/> <axis xyz="0 0 1"/> </joint> <joint name="base_to_front_right" type="continuous"> <origin rpy="1.57075 0 0" xyz="0.06 -0.064 -0.011"/> <parent link="base_link"/> <child link="tyer_front_right"/> <axis xyz="0 0 1"/> </joint> <joint name="base_to_back_left" type="continuous"> <origin rpy="1.57075 0 0" xyz="-0.06 0.064 -0.011"/> <parent link="base_link"/> <child link="tyer_back_left"/> <axis xyz="0 0 1"/> </joint> <joint name="base_to_back_right" type="continuous"> <origin rpy="1.57075 0 0" xyz="-0.06 -0.064 -0.011"/> <parent link="base_link"/> <child link="tyer_back_right"/> <axis xyz="0 0 1"/> </joint> <link name="pillar_front_left"> <visual> <geometry> <cylinder length=".03" radius="0.0025"></cylinder> </geometry> <origin xyz="0 0 0.015"/> <material name="silver"> <color rgba=".86 .86 .86 1"/> </material> </visual> </link> <link name="pillar_front_right"> <visual> <geometry> <cylinder length=".03" radius="0.0025"></cylinder> </geometry> <origin xyz="0 0 0.015"/> <material name="silver"> <color rgba=".86 .86 .86 1"/> </material> </visual> </link> <link name="pillar_back_left"> <visual> <geometry> <cylinder length=".03" radius="0.0025"></cylinder> </geometry> <origin xyz="0 0 0.015"/> <material name="silver"> <color rgba=".86 .86 .86 1"/> </material> </visual> </link> <link name="pillar_back_right"> <visual> <geometry> <cylinder length=".03" radius="0.0025"></cylinder> </geometry> <origin xyz="0 0 0.015"/> <material name="silver"> <color rgba=".86 .86 .86 1"/> </material> </visual> </link> <joint name="base_to_pillar_front_left" type="fixed"> <origin xyz="0.13 0.07 0.0015"/> <parent link="base_link"/> <child link="pillar_front_left"/> </joint> <joint name="base_to_pillar_front_right" type="fixed"> <origin xyz="-0.13 0.07 0.0015"/> <parent link="base_link"/> <child link="pillar_front_right"/> </joint> <joint name="base_to_pillar_back_left" type="fixed"> <origin xyz="0.13 -0.07 0.0015"/> <parent link="base_link"/> <child link="pillar_back_left"/> </joint> <joint name="base_to_pillar_back_right" type="fixed"> <origin xyz="-0.13 -0.07 0.0015"/> <parent link="base_link"/> <child link="pillar_back_right"/> </joint> <link name="top_link"> <visual> <geometry> <box size="0.27 .15 .003"/> </geometry> <material name="white"> <color rgba="1 1 1 .5"/> </material> </visual> </link> <joint name="base_to_top" type="fixed"> <origin xyz="0 0 0.03"/> <parent link="base_link"/> <child link="top_link"/> </joint> </robot>







生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品任我爽爆在线播放66 | 精品九九九 | 国产美女视频一区二区二三区 | 久久精品这里是免费国产 | 宅男在线看片 | 精品一精品国产一级毛片 | 一区二区三区四区视频在线观看 | 免费看一区二区三区 | 最新国产成人综合在线观看 | www.在线观看.com| 国产高清在线视频一区二区三区 | 91丨九色丨首页 | ak福利午夜在线观看 | 欧美最猛性xxxxx图片 | 国产精品久久久久久久 | 日韩欧美亚洲在线 | 一区二区三区视频在线播放 | 日本欧美一区二区 | 亚欧美图片自偷自拍另类 | 亚洲小视频在线观看 | 免费h视频网站 | 欧洲区二区三区四区 | 亚洲a视频 | 波多洁野衣一二区三区| 中文字幕乱码一二三四区 | 欧美啪啪做 | 免费看www| 日本黄大乳片免费观看 | 秋霞午夜视频在线观看 | 永久免费在线观看视频 | 久久国产成人精品国产成人亚洲 | 日本不卡视频在线视频观看 | 国产欧美精品国产国产专区 | 情侣偷偷看的羞羞视频网站 | а中文在线天堂 | 国产成人性色视频 | 亚洲精品456播放 | 亚洲欧美精品天堂久久综合一区 | 男人和女人全黄一级毛片 | 中文字幕最新在线 | 国产精品久久毛片 |