天天看點

ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人

在webots中搭建雙輪差速機器人

注意:

  • 再學習本系列教程時,應該已經安裝過ROS了并且需要有一些ROS的基本知識

webots版本:2020b rev1

ros版本:melodic

webots官方參考資料:

  • https://cyberbotics.com/doc/guide

模型如下圖所示:

ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人

1.jpg

1.新世界

  1. 打開webots後,選擇

    檔案->新世界

    ,建立一個新的地圖。
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    2.jpg
  2. 點一下場景樹中的worldinfo,激活
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人

    3.jpg

    按鈕。

  3. 點選
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人

    3.jpg

    按鈕用于添加節點或對象,會有如下視窗,并且找到

    PROTO nodes(Webots Projects)->objects->backgrounds

    ,添加這兩個節點到仿真環境中。
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    4.jpg
  4. 添加完場景後添加floor,找到

    PROTO nodes(Webots Projects)->objects->floors

    ,添加

    RectangleArena(solid)

    節點。
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    5.jpg
  5. 我們可以看到左邊的場景樹中有很多屬性,這些屬性都是可以修改的。

比如我們可以修改一下floorsize的大小,輕按兩下floorsize改成x=5m y=5m 可以看到地圖變大了。

ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人

6.jpg

2.模型建立

2.1 body

  1. 在場景樹中添加Robot節點
  2. 輕按兩下

    Robot->children

    節點,建立

    Base_nodes->Shape

    節點
  3. 在場景樹中單擊

    Robot->children->Shape

    ,下面會彈出一個DEF框,添加定義為body
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    7.jpg
  4. 輕按兩下appearance 添加顔色紋理

    Base_nodes->Appearance

    ,輕按兩下geometry 添加形狀

    Base_nodes->Box

  5. 輕按兩下

    appearance->material

    添加金屬屬性,可以修改其節點下的

    diffusecolor

    屬性更改顔色。
  6. 并在geometry節點添加幾何屬性,設定車體大小,我這裡設定(x=0.5 y=0.15 z=0.5)m,将其在y上坐标設定高一些,友善後面加輪子。
  7. 現在我們得到這樣一個物體:
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    8.jpg
  8. Robot

    節點下給輪子增加碰撞屬性

    boundingObject

    及重力屬性

    physics

  9. 碰撞屬性boundingObject:因為上面DEF了body,直接use body即可
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    14.jpg
  10. 重力屬性physics:隻要建立一個physics子節點即可2.2 動輪
  11. Robot->children

    下建立一個

    Base_nodes->HingeJoint

    節點,DEF為left_wheel,該節點下會出現三個節點

    jointParameters、device和endPoint

  12. HingeJoint->jointParameters

    節點下建立子節點

    HingeJointParameters

    ,該節點将定義旋轉原點(anchor)以及旋轉軸(axis)。
    • axis是表示電機旋轉軸的平行向量
    • anchor表示旋轉軸相對于父節點的坐标偏移量
  13. 點選

    檢視–>可選顯示–>show joint Axes

    或者同時按下

    ctrl+F5

    ,可以顯示出旋轉軸,友善我們調整旋轉軸及旋轉原點。
  14. HingeJoint->device

    節點下添加電機

    Rotatioal Motor

    ,

    Rotatioal Motor->name

    命名為

    left_motor

  15. HingeJoint->endPoint

    節點下,增加

    Base_nodes->soild

    節點,該節點主要是設定電機模型以及其他功能參數,之後在

    soild->children

    節點下建立一個shape節點,在shape節點下設定輪子的形狀為

    Cylinder

  16. 通過調整

    translation

    rotation

    ,将輪子設定到合适的位置,輪子大小設定為

    (height=0.08 radius=0.12)

    如圖:
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    9.jpg
  17. 接下來通過調整

    axis

    anchor

    ,将電機旋轉軸調整到正确位置,比如我這裡電機的位置相對于車體

    (x=0.31,y=0,z=0)

    ,于是我将旋轉軸相對于父節點(body)的位置通過

    anchor

    調整至此,并且修改

    axis

    的各個值觀察到我的輪子是繞

    x

    軸旋轉,是以将

    axis

    設定為

    (1 0 0)

    。可以看到,輪子處有一個黑線,表示旋轉軸在這裡,黑線表示的就是電機旋轉軸的位置和方向。筆者在這裡設定的

    (axis=2 0 0)m

    (anchor=0.31 0 0)m

    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    10.jpg
  18. 最後,在

    HingeJoint->endPoint

    節點下給輪子增加碰撞屬性

    boundingObject

    及重力屬性

    physics

    • 碰撞屬性boundingObject:設定和輪子大小一緻即可
    • 重力屬性physics:隻要建立一個physics子節點即可
  19. 接下來複制出另一個輪子,按照上面的方法調整

    axis

    anchor

    ,并且更改電機name為

    right_motor

    如下圖所示:
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
    11.jpg

2.3 導輪

  1. Robot->children

    下建立一個

    Base_nodes->HingeJoint

    節點。
  2. 向上面的教程一樣建立

    jointParameters

    節點和

    endpoint

    節點,唯一和上面不同的是,導輪不需要電機,他是被動的。
  3. 對于導輪,筆者使用的是圓球

    sphere

    ,因為比較好操作。
  4. 位置如圖所示:
    • axis設定為(0 1 0)
    • anchor設定為(0 -0.09 0.23)
      ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人
      12.jpg
  5. HingeJoint->endPoint

    節點下給輪子增加碰撞屬性

    boundingObject

    及重力屬性

    physics

    • 碰撞屬性boundingObject:設定和導輪大小一緻即可
    • 重力屬性physics:隻要建立一個physics子節點即可
  6. 接下來複制出另一個導輪置另一邊,按照上面的方法調整

    axis

    anchor

    如下圖所示:
    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人

    13.jpg

    2.4 運作測試按下運作按鈕可以看到機器人平穩的降落到了地面上。

    ROS聯合webots實戰案例(二)在webots中搭建小機器人在webots中搭建雙輪差速機器人

    1.gif

    2.5 儲存地圖在建立完機器人後一定要記得儲存地圖啊!!!!

    搭建地圖很浪費時間的!!

    在這裡我們儲存為

    webots_map.wbt

    總結本文也是基于筆者的學習和使用經驗總結的,主觀性較強,如果有哪些不對的地方或者不明白的地方,歡迎評論區留言交流~

下一節通過ros控制小機器人吧。

✌Bye

reference:https://blog.csdn.net/weixin_44508381/article/details/105669173