967
社区成员
你好,谢谢你的提问,非常的细节,下面是对应的回答:
1。dirToVehicle这个参数是为一些类似汽车的机器人平台设置的,这些平台不能原地转向而只能一边向前或者向后运动一边转向。当这个参数设置成false的时候,就是应用在大多数可以差速驱动的机器人平台上,只考虑目标方向附近的轨迹,机器人可以任意无碰撞的转向需要的方向。而当这个参数设置成true的时候,就是应用在上述类似汽车的平台上,这时候只考虑机器人朝向dirThr之内的轨迹,因为机器人只能向前或者向后运动的时候转向,dirThr之外的轨迹机器人是没有能力实现的。一般dirToVehicle是true的时候,dirThr会设置的比较小,比如只考虑机器人朝前或者朝后10°的范围内的轨迹。如果用的是差速驱动的机器人,那就可以保持现在的v默认设置。
2.pathscale是用来控制碰撞检测范围的,pathscale越小,碰撞检测范围就越小,pathscale是当前值,minpathscale是最小需要考虑的碰撞检测尺度,pathscalestep就是在当前的碰撞检测范围内找不到无碰撞路径的时候缩短pathscale的步长,defPathScale是最大的需要考虑的碰撞检测的范围尺度,这个值是初始化时就已经设置好的,是定值。如果最后没找到路径,就会一步一步的缩短pathscale,也就是缩短碰撞检测的范围,直到找到路径或者缩短到minpathscale。另外提醒一下,做碰撞检测的时候,如果某条路上任意一点有碰撞,那这一整条路都会认为是有碰撞的。
3.minObsAngCW和minObsAngCCW这两个参数是当车不是圆形的时候做碰撞检测使用的中间参数,相当于是从机器人中心到机器人最长的边缘的长度,由于是中间变量,launch文件不能调节,可以保持默认的状态
4.计算这三个角度的时候的坐标系都是机器人的vehicle坐标系,也就是机器人的旋转中心坐标系,x轴是向机器人前方,y轴向机器人的左方
5.确实是将360°划分成了36扇区,每10°一个扇区,我们不是考虑的连续的过程,而是按照扇区来筛选轨迹的,所以rotdir从0-36循环
希望上述回答能够帮助到你