注意:
webots版本:2020b rev1
ros版本:melodic
webots官方参考资料:
模型如下图所示:
文件->新世界
,创建一个新的地图。
PROTO nodes(Webots Projects)->objects->backgrounds
,添加这两个节点到仿真环境中。
PROTO nodes(Webots Projects)->objects->floors
,添加RectangleArena(solid)
节点。
比如我们可以修改一下floorsize的大小,双击floorsize改成x=5m y=5m 可以看到地图变大了。
Robot->children
节点,创建Base_nodes->Shape
节点Robot->children->Shape
,下面会弹出一个DEF框,添加定义为body
Base_nodes->Appearance
,双击geometry 添加形状Base_nodes->Box
。appearance->material
添加金属属性,可以修改其节点下的diffusecolor
属性更改颜色。Robot
节点下给轮子增加碰撞属性boundingObject
及重力属性physics
Robot->children
下创建一个Base_nodes->HingeJoint
节点,DEF为left_wheel,该节点下会出现三个节点jointParameters、device和endPoint
HingeJoint->jointParameters
节点下创建子节点 HingeJointParameters
,该节点将定义旋转原点(anchor)以及旋转轴(axis)。查看–>可选显示–>show joint Axes
或者同时按下ctrl+F5
,可以显示出旋转轴,方便我们调整旋转轴及旋转原点。HingeJoint->device
节点下添加电机Rotatioal Motor
,Rotatioal Motor->name
命名为left_motor
HingeJoint->endPoint
节点下,增加Base_nodes->soild
节点,该节点主要是设置电机模型以及其他功能参数,之后在soild->children
节点下创建一个shape节点,在shape节点下设置轮子的形状为Cylinder
。translation
和rotation
,将轮子设置到合适的位置,轮子大小设置为(height=0.08 radius=0.12)
如图:
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
HingeJoint->endPoint
节点下给轮子增加碰撞属性boundingObject
及重力属性physics
axis
和anchor
,并且更改电机name为right_motor
如下图所示:
Robot->children
下创建一个Base_nodes->HingeJoint
节点。jointParameters
节点和endpoint
节点,唯一和上面不同的是,导轮不需要电机,他是被动的。sphere
,因为比较好操作。HingeJoint->endPoint
节点下给轮子增加碰撞属性boundingObject
及重力属性physics
axis
和anchor
如下图所示:
webots_map.wbt
总结本文也是基于笔者的学习和使用经验总结的,主观性较强,如果有哪些不对的地方或者不明白的地方,欢迎评论区留言交流~下一节通过ros控制小机器人吧。
✌Bye
reference:https://blog.csdn.net/weixin_44508381/article/details/105669173
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。