tare 部署

(通过SLAM接口功能包可知,发布的里程计信息和点云地图信息在map坐标系下,在功能包sensor_scan_generation中发布了在sensor_at_scan坐标系下的点云地图信息,也发布了map作为参考坐标系sensor_at_scan的tf变换,里程计信息)。我们的系统支持通用差分驱动平台(差速底盘)(包括滑移转向机构),这是最常用的移动机器人运动学模型。全向和足式底盘也能被使用到我们的系统,但是他们的移动优势不能被充分利用,例如:他们作为一个差速底盘移动没有横向运动。我们的系统目前不支持类似汽车的底盘(Translator:类似汽车的底盘如阿克曼底盘,这类底盘的转向动作必须通过前后的移动才能实现。虽然不支持,但是似乎可以部署。把功能包local_planner中的local_planner.launch一个参数dirToVehicle设置为true。社区解释:一般dirToVehicle是true的时候,dirThr会设置的比较小,比如只考虑机器人朝前或者朝后10°的范围内的轨迹)

1.dirToVehicle这个参数是为一些类似汽车的机器人平台设置的,这些平台不能原地转向而只能一边向前或者向后运动一边转向。当这个参数设置成false的时候,就是应用在大多数可以差速驱动的机器人平台上,只考虑目标方向附近的轨迹,机器人可以任意无碰撞的转向需要的方向。而当这个参数设置成true的时候,就是应用在上述类似汽车的平台上,这时候只考虑机器人朝向dirThr之内的轨迹,因为机器人只能向前或者向后运动的时候转向,dirThr之外的轨迹机器人是没有能力实现的。一般dirToVehicle是true的时候,dirThr会设置的比较小,比如只考虑机器人朝前或者朝后10°的范围内的轨迹。如果用的是差速驱动的机器人,那就可以保持现在的默认设置。
2.angDiff是目标方向与待检测的轨迹方向的差值。
三种情况可以从上面第一点回答中找到对应情况,第一种是应用在差速机器人上,只考虑目标方向附近的轨迹,第二种及第三种是应用在阿克曼转向的机器人上,分别对应向前及向后运动的情况,只考虑向前及向后小范围内的轨迹。

tare 部署_第1张图片

图10展示了底层系统的框架图。开发环境起到中间层的作用,在那里它接收来自状态估计模块的输出,并将命令速度发送到底层的运动控制模块。它通过提供地形图并考虑航路点、导航边界和速度,与顶层的高级规划器(TARE planner 或 FAR planner)对接。这样的系统设置允许用户开发高级规划算法,而无需理解低级导航模块之间的接口。

keypose指的是slam在产生关键帧的时候机器人所在的位置。当loop closure发生的时候,所有的keypose会被一起调整。这里cell里面存的keypose本意是想存一个能观测到这个cell的机器人的位置,但后来可能没有用这个数据。

Cell status的转换条件大概是如果能sample到至少一个viewpoint,这个cell就是exploring。如果cell里面有viewpoint且它们都看不到足够的surface,这个cell就是会被加入almost covered的列队。等到它不在local planning horizon里面了就被标记成covered。为了处理一些边界条件我在后面加了一些工程tricks来让cell的status保持稳定。

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循环

你可能感兴趣的:(人工智能)