Webots 机器人仿真平台(五) 新建四轮小车模型

193
0
2020年10月26日 09时01分

新建机器人模型

  • 1 添加机器人本体
    • 1.1 添加Body
    • 1.2 添加机器人轮子
  • 2 添加距离传感器
  • 3 小结
  • 参考资料

下图为我们这篇博客创建的小车效果,接下来我们一步一步的实现在webots中搭建一个四轮小车模型。

 

1

 

1 添加机器人本体

1.1 添加Body

首先我们随便打开一个环境模型,这里我打开了一个 “e-puck_line.wbt” 世界模型,该模型中已经包含有一个 e-puck机器人模型,我们在此基础上新建一个四轮小车模型。
step 1:添加一个机器人模型变量

 

2

 

step 2 :在机器人变量模型中的 “children” 属性中添加一个 “shape”节点,并设置该shape节点的 appearance 属性和 geometry属性,其中geometry属性设置为box

 

3

 

4

 

5

 

这样就可以看到环境中多了一个立方体了。这里我们可以通过修改shape的外观参数(appearance)修改立方体的颜色。外几何参数(geometry)处设置长宽高分别为(X=0.1 Y=0.02 Z=0.5),

 

6

 

step 3 :把Shape节点宏定义为Body,并设置Robot的 boundingObject属性为刚刚定义的 Body ,最后设置 Robot 的Physics属性。

 

7

 

1.2 添加机器人轮子

step 4: 在机器人变量模型中的 “children” 属性中添加一个 “HingeJoint” 节点,并设置该HingeJoint节点的 jointParameters属性,然后设置device属性为 RotationalMotor),在endPoints属性中添加一个 “solid” 节点

 

8

 

step 5: 对刚刚新添加的 “solid” , 在“children” 属性中添加一个 “Shape” 节点设置外观和几何属性(几何属性为圆柱体 Cylinder)设置半径为0.03 高度为0.02 , 设置完以后将这个shape宏定义 “Wheel” 。

 

9

 

10

 

11

 

step6: 在HingeJoint->endPoint这个节点中的boundingObject属性设置为我们刚刚宏定义的Wheel形状,并设置physics属性,将物理属性宏定义为 physics_wheel

 

12

 

step7: 最后我们设置轮子的位移变换和旋转变换,第一个轮子的位移变换我们是设置为(translation x=0.06 y=0 z=0.08),旋转变换设置为(rotation x=0 y=0 z=1 angle= 1.57 rad)。将这个HingeJoint宏定义为 “WHEEL1” 这样我们就新建好了一个轮子了。(轮子的颜色可在step5中定义的shap中进行修改)

 

13

 

step8: 这样重复四次将其余四个轮子新建好就行,然后把四个轮子分别命名为。(可以直接选中 HingeJoint 然后利用 Ctrl+C 和 Ctrl+V)

 

14

 

这里我们还需要将左前,右前,左后,右后的 RotationalMotor 参数中的name(名称)分别设置为:wheel1 wheel2wheel3 wheel4,这个是我们为我们之后建立控制器做准备,因为我们在控制器中设置电机的速度我们需要通过这个名称来访问每一个电机,设置电机的速度。

 

15

 

step9: 最后一步,也是最重要的一步,我们要设置每个电机转动的轴,针对每一个轮子,如果不这只该参数,会出现的现象就是机器人的轮子“乱飞”。设置HingeJoint->jointParameters 中的 anchor 和 axis,其中axis表示绕轮子的哪一个轴转动,anchor 表示绕转动向量的位置。这 axis 四个轮子都一样,anchor 为每一个轮子的平移向量。

 

16

 

这样小车本体就新建好了,接下来我们在这个车体上增加两个距离传感器

 

2 添加距离传感器

在机器人变量模型中的 “children” 属性中添加一个 “DistanceSensor” 节点, , 在“children” 属性中添加一个 “Shape” 节点设置外观和几何属性(几何属性为圆柱体 Box)设置尺寸为0.01 , 设置完以后修改translation参数(translation x=0.03 y=0 z=0.1)。然后重复放置一个在右边位置。

 

17

 

18

 

最后修改右边的传感器的名称为 “ds_right” 左边的距离传感器名称为“ds_left” 这个也是用在控制中访问距离传感器时候用的。

 

19

 

20

 

这里需要注意一点,距离传感器的X方向(红色箭头的方向应该指向前方)

 

21

 

最终生成的模型文件可在此处下载

3 小结

这张图其实就是创建一个简易机器人的模块框图,我们上诉安装的节点基本是按照以下这个框图来进行设置和添加的。

22

 

参考资料

[1] https://www.cyberbotics.com/doc/reference/motion
[2] https://cyberbotics.com/doc/guide/tutorial-4-more-about-controllers?tab-language=c
[3] 模型文件下载: https://download.csdn.net/download/crp997576280/12346936

如果大家觉得文章对你有所帮助,麻烦大家帮忙点个赞。O(∩_∩)O

欢迎大家在评论区交流讨论(cenruping@vip.qq.com)

发表评论

后才能评论