• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

ROS联合webots实战案例(二)在webots中搭建小机器人

人工智能 锡城筱凯 1432次浏览 0个评论

webots中搭建双轮差速机器人

  注意:  

  • 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识

  webots版本:2020b rev1 ros版本:melodic   webots官方参考资料:  

  模型如下图所示:  
ROS联合webots实战案例(二)在webots中搭建小机器人  

1.新世界

 

  1. 打开webots后,选择文件->新世界,创建一个新的地图。 ROS联合webots实战案例(二)在webots中搭建小机器人

  2.点一下场景树中的worldinfo,激活
ROS联合webots实战案例(二)在webots中搭建小机器人按钮。   3.点击
ROS联合webots实战案例(二)在webots中搭建小机器人按钮用于添加节点或对象,会有如下窗口,并且找到PROTO nodes(Webots Projects)->objects->backgrounds,添加这两个节点到仿真环境中。  
ROS联合webots实战案例(二)在webots中搭建小机器人  

  1. 添加完场景后添加floor,找到PROTO nodes(Webots Projects)->objects->floors,添加RectangleArena(solid)节点。

 
ROS联合webots实战案例(二)在webots中搭建小机器人  

  1. 我们可以看到左边的场景树中有很多属性,这些属性都是可以修改的。

  比如我们可以修改一下floorsize的大小,双击floorsize改成x=5m y=5m 可以看到地图变大了。  
ROS联合webots实战案例(二)在webots中搭建小机器人  

2.模型建立

 

2.1 body

 

  1. 在场景树中添加Robot节点
  2. 双击Robot->children节点,创建Base_nodes->Shape节点
  3. 在场景树中单击Robot->children->Shape,下面会弹出一个DEF框,添加定义为body

 
ROS联合webots实战案例(二)在webots中搭建小机器人  

  1. 双击appearance 添加颜色纹理Base_nodes->Appearance,双击geometry 添加形状Base_nodes->Box
  2. 双击appearance->material添加金属属性,可以修改其节点下的diffusecolor属性更改颜色。
  3. 并在geometry节点添加几何属性,设置车体大小,我这里设置(x=0.5 y=0.15 z=0.5)m,将其在y上坐标设置高一些,方便后面加轮子。
  4. 现在我们得到这样一个物体:

 
ROS联合webots实战案例(二)在webots中搭建小机器人  

  1. Robot节点下给轮子增加碰撞属性boundingObject及重力属性physics

    • 碰撞属性boundingObject:因为上面DEF了body,直接use body即可

 
ROS联合webots实战案例(二)在webots中搭建小机器人  

    • 重力属性physics:只要创建一个physics子节点即可

 

2.2 动轮

 

  1. Robot->children下创建一个Base_nodes->HingeJoint节点,DEF为left_wheel,该节点下会出现三个节点jointParameters、device和endPoint
  2. HingeJoint->jointParameters 节点下创建子节点 HingeJointParameters,该节点将定义旋转原点(anchor)以及旋转轴(axis)。
    • axis是表示电机旋转轴的平行向量
    • anchor表示旋转轴相对于父节点的坐标偏移量
  3. 点击查看–>可选显示–>show joint Axes或者同时按下ctrl+F5,可以显示出旋转轴,方便我们调整旋转轴及旋转原点。
  4. HingeJoint->device节点下添加电机Rotatioal Motor,Rotatioal Motor->name命名为left_motor
  5. HingeJoint->endPoint节点下,增加Base_nodes->soild节点,该节点主要是设置电机模型以及其他功能参数,之后在soild->children节点下创建一个shape节点,在shape节点下设置轮子的形状为Cylinder
  6. 通过调整translationrotation,将轮子设置到合适的位置,轮子大小设置为(height=0.08 radius=0.12)如图:

 
ROS联合webots实战案例(二)在webots中搭建小机器人  

  1. 接下来通过调整axisanchor,将电机旋转轴调整到正确位置,比如我这里电机的位置相对于车体(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中搭建小机器人  

  1. 最后,在HingeJoint->endPoint节点下给轮子增加碰撞属性boundingObject及重力属性physics
    • 碰撞属性boundingObject:设置和轮子大小一致即可
    • 重力属性physics:只要创建一个physics子节点即可
  2. 接下来复制出另一个轮子,按照上面的方法调整axisanchor,并且更改电机name为right_motor如下图所示:

 
ROS联合webots实战案例(二)在webots中搭建小机器人  

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中搭建小机器人  

  1. HingeJoint->endPoint节点下给轮子增加碰撞属性boundingObject及重力属性physics
    • 碰撞属性boundingObject:设置和导轮大小一致即可
    • 重力属性physics:只要创建一个physics子节点即可
  2. 接下来复制出另一个导轮置另一边,按照上面的方法调整axisanchor如下图所示:

 
ROS联合webots实战案例(二)在webots中搭建小机器人

2.4 运行测试

  按下运行按钮可以看到机器人平稳的降落到了地面上。  
ROS联合webots实战案例(二)在webots中搭建小机器人

2.5 保存地图

  在创建完机器人后一定要记得保存地图啊!!!! 搭建地图很浪费时间的!! 在这里我们保存为webots_map.wbt  

总结

本文也是基于笔者的学习和使用经验总结的,主观性较强,如果有哪些不对的地方或者不明白的地方,欢迎评论区留言交流~ 下一节通过ros控制小机器人吧。 Bye reference:https://blog.csdn.net/weixin_44508381/article/details/105669173


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明ROS联合webots实战案例(二)在webots中搭建小机器人
喜欢 (0)

您必须 登录 才能发表评论!

加载中……