四轮小车模型
本文将创建如下一个四轮小车模型
模型建立
(一)新建模型
- 创建新的项目后,增加地板作为大地
- 在本文建立的四轮底盘中,共有一个车体(body)+四个轮子,所以共五个实体节点
(1)建立车体
- 在场景树中创建Robot节点
- 在children下创建第一个Shape节点,命名为body,设置颜色纹理,并在geometry节点添加几何属性,这里我们选择Box,并且设置车体大小,我这里设置(x=0.5 y=0.1 z=0.3)m,将其在y上坐标设置高一些,方便后面加轮子。
现在我们得到这样一个物体:
(2)建立第一个轮子
- 在children下创建一个HingeJoints节点,命名为left_front_wheel,该节点下会出现三个节点-jointParameters device 以及endPoint
- 在jointParameters 节点下创建子节点 HingeJointParameters,该节点将定义旋转原点(anchor)以及旋转轴(axis)。
(点击查看–>可选显示–>show joint Axes ,可以显示出旋转轴,方便我们调整旋转轴及旋转原点)
axis是表示电机旋转轴的平行向量,anchor表示旋转轴相对于父节点的坐标偏移量 - 在device节点下添加电机或电机的位置传感器,并在子节点RotationalMotor下定义名称left_front_motor
- 在endPoint节点下,增加soild节点,该节点主要是设置电机模型以及其他功能参数,之后在soild节点下创建一个shape节点,在shape节点下设置电机的形状
- 通过调整translation和rotation,将轮子设置到合适的位置,如图:
- 通过调整,axis 以及 anchor,将电机旋转轴调整到正确位置,比如我这里电机的位置相对于车体(x=-0.15,y=-0.05,z=0.15),于是我将旋转轴相对于父节点的位置也调整至此,并且观察到我的轮子是绕z轴旋转,所以将axis设置为(0 0 1)
- 现在可以看到,轮子处有一个黑线,表示旋转轴
- 最后,在endPoint下给轮子增加物理属性及碰撞属性
(3)复制出其余三个轮子
1.选中创建好的HingeJoint节点,右击复制,再在Robot节点下粘贴出三个子节点,修改相应的translation以及rotation,并调整旋转轴。得到如下:
(二)运行仿真
至此,小车的模型就建立好了,运行之后,小车由于重力掉落到地面上
遇到的问题
在复制轮子的时候发现粘贴过的轮子的坐标,旋转轴等参数改变了,后来发现是因为开启了仿真,关闭仿真即可。