通过地磁进行智能系统导航控制的方法,通过地磁传感器获得智能系统的行驶状态,并对地磁导航角进行误差校正。
无人驾驶采用人工智能算法来完成转向任务,简而言之,无人驾驶汽车就是不断的学习和模仿人们的开车姿势从而达到自主开车的目的。人们在开车时,面对不同大小的弯道,人们总是可以凭借经验来转动方向盘从而通过弯道,而对于无人驾驶汽车来说,我们会定义一个成本函数,用于确定对于待达成的特定转向率的成本,成本函数可以包括一个或者多个个体成本函数,用于计算一个或者多个个体。
而无人驾驶汽车学习的目的,就是使得它的转向率尽可能地接近于人类的水平,也即使得这个成本函数尽可能的小。如上图所示,传感器系统依旧用于采集车辆的各种状态信息,控制系统则用于控制车辆状态。
针对于不同的路况,决策模块决定了如何通过这些不同的路况,决策模块可以根据诸如驾驶或者交通规则来做出此类决定,这些规则就存储在永久性存储装置中。有了这些硬件和软件的基础,无人驾驶车辆就可以完成转向任务了。
如上如所示是用于 *** 作自动驾驶车辆的转向的过程,通过软件以及硬件的组合来完成这个流程。
首先,处理逻辑确定用于自动驾驶车辆的若干转向率候选选项,这里用到了多个成本函数,以便于计算转向率对于自动驾驶车辆的不同影响。
其次,通过不同的成本函数来确定控制转向率的总成本,在候选转向率的选项中选择具有最低总成本的转向率作为自动驾驶车辆的转向率。
最后,通过目标转向率生成转向控制命令用于控制无人驾驶车辆的方向盘,这里需要软件和硬件的配合,才能完成一次车辆的正确转弯。
扩展资料
指被配置为处于自动驾驶模式下的车辆,这种车辆在极少或者没有驾驶员干预的情况下通过导航来行驶。尤其是在面对各种弯道时,更加要求车辆能够及时、迅速的拐弯,这就对于无人驾驶车辆的转弯系统提出了很大的要求。
其实早在17年的5月24日,百度就申请了一项名为“动态调整自动驾驶汽车的转向率的方法”的发明专利(申请号为:201780003089 .9),申请人为百度(美国)有限责任公司。
简单的写的话不会区别偏离黑线距离远近的,复杂点儿的话会分区编程,简单版如下:void turn_left()
{
P1.0 = 0 //左前轮
P1.1 = 1 //右前轮
P1.2 = 0 //左后轮
P1.3 = 1 //右后轮
}
... ...
unsigned char judge()
{
switch(P2 &0x??)
case 0x??:
{
break
}
... ...
return 某变量(用于选择拐弯方向程序)
}
转弯比较简单,就是一个轮转,另一个不转达到转弯目的,你也可以用速度高低来控制,自己DIY就行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)