DSPACE解决小车不按指定道路行驶问题
前言
在用 DSPACE 仿真平台中,对于小车行驶的车道,我们是用道路编号来进行选择。
例如,对于一个双车道,我们可以用 0 号表示左侧车道,1号表示右侧车道。我们在模拟小车运行时,输入对应车道编号,小车即会运行在指定左侧/右侧车道。
车道的编号是自己指定的,以 0 号为基准,可以设置0、1,也可以设置0、-1。
问题描述
我们在一个模拟现场时,出现了从车不按指定道路行驶的问题。
如下图所示,对自行车选择的是行驶 0 号道路,自行车走左侧车道。通过查看 Road 文件,我们可以判断 0 号就是左侧车道,此时自行车行驶正常。
但是当我们将自行车设置行驶 1 号车道,模拟时发现自行车仍然走的左侧车道。
在对主车和从车调整了究极多的参数之后,仍然没有找到问题发生的本质所在。也许是软件原因?也许是硬件原因?
正解
其实随着对软件使用次数的增多,我们会慢慢熟悉整个模拟的运行方式。对于上面问题的根本原因是,小车是根据当前行驶的方向来确定道路编号正负的,即左正右负
。
以此例子展开,上面图画中以主车视角来看,自行车是从右侧跑到左侧。因为我们之前检查过 0 号就是靠近主车的左侧车道,所以根据小车的运行方向来,结合左正右负原则,左侧车道是 0 号车道,右侧车道是 -1 号车道。因此当我们设置 1 号车道时,左边已经没有车道可以走了,自行车自然还是跟着 0 号车道走。
综上所述,这个问题的正确解法,就是为小车设置为 -1 车道,这样小车就能正确行驶在右侧车道上。
当然,如果对软件还不是那么不熟悉的时候,还不太能理解上面提到的关系,这里我们也额外提出两个方法来解决这个问题。
解决方法一
方法一就是,为当前道路设置方向。
根据系统运行的底层逻辑,小车只能在正确的道路方向上进行行驶,所以我们将其中的左侧道路设置为逆向(对于当前车辆而言),这既是符合交通规则的,又能让小车完美按照路线运行。
可以看到,我们选择的是 0 号道路,但是小车已经正常在右侧车道行驶了。在路口拐弯过后会跑下一个路口的 0 号车道。
如果要在下一个路口继续跑右侧的车道,那么我们继续设置道路的方向即可。
解决方法二
方法二,为小车设置偏移量。
实际上,每条车道的宽度默认是 3.5m(当然这个可以调)。如果我们需要为小车设置一个向右的偏移量,偏移的距离也是 3.5m,那么毫无疑问,小车也会在右侧道路上进行行驶。这种方法就不需要设置道路的行驶方向了。
可以看到,小车已经正常在右侧道路行驶。