ROS Navigation Tuning Guide(导航调试指南)

您所在的位置:网站首页 华硕电脑使用指南 ROS Navigation Tuning Guide(导航调试指南)

ROS Navigation Tuning Guide(导航调试指南)

2024-07-13 13:34:21| 来源: 网络整理| 查看: 265

ROS Navigation Tuning Guide 导航调试指南准备工作距离传感器里程计定位 速度与加速度的设置获得最大速度获得最大加速度设置最小值XY方向的速度 Global Planner接口参数 Local PlannerDWA Local PlannerDWA algorithmDWA Local Planner : Forward SimulationDWA Local Planner : Trajactory ScoringDWA Local Planner : Other Parameters Costmap 参数footprintinflationcostmap resolutionobstacle layer and voxel layer AMCLHeader in LaserScan messagesParameters for measurement and motion modelsTranslation of the laser scanner Recovery BehaviorsDynamic Reconfigure其他代价地图局部规划器 实调总结全局规划局部规划TrajectoryPlannerROSDWAPlannerROS move_base

导航调试指南

借用前辈郑开宇基本调试指南经验,谈一谈对于配置、调参、优化这些到底应该怎么做,经验之谈.

准备工作

三个组件检查:距离传感器,里程计和定位。

距离传感器

如果机器人没有从其距离传感器(例如激光器)获取信息,那么导航将不起作用。首先确保可以在rviz中查看传感器信息,它看起来相对正确(一般判断激光点是否跟障碍物对齐),并以预期的速度在刷新。 最后确认建图导航中是否为需要的传感器数据topic以及link是否正确。

里程计

里程计是一个很不确定的因素,大部分移动机器人是有编码器的,编码器本身会有少量误差,但是加上轮子摩擦空转、地面不平、机器人驱动结构(二轮差动、四轮差动、全向轮)等因素影响,会累计出很大的误差,尤其是原地旋转,通常情况下可以加入IMU等数据进行融合重新计算里程计数据,如果使用得当,里程计误差便可以控制在很好的范围。然而,又是然而,IMU的安装位置是机械的,如何标定IMU的准确相对位置是困难的,不过通常良好的机械安装会使计算后的里程在可控范围内,所以,使用EKF等融合数据时,一定要保证IMU位置与数据的准确,否则只会让里程计信息雪上加霜。

第一个测试检查角速度是否合理。打开rviz,将坐标系设置为“odom”,显示机器人提供的激光扫描,将该主题的衰减时间设置为高(类似20秒),并执行原地旋转。然后,我看看扫描出来的边线在随后的旋转中如何相互匹配。理想情况下,每次扫描将刚好落在相互的顶端,会重叠在一起,但是有些旋转漂移是预期的,所以我只是确保扫描之间误差,不会超过一度或两度以上。

第二个测试检查线速度是否合理。机器人放置在与距离墙壁几米远地方,然后以上面相同的方式设置rviz。接着我将驱动机器人向墙壁前进,从rviz中聚合的激光扫描看看扫描出来边线的厚度。理想情况下,墙体应该看起来像一个扫描,但我只是确保它的厚度不超过几厘米。如果显示扫描边线的分散在半米以上,但有些可能是错误的测距。

其他的测试角速和线速方法:

线速标定:http://www.ncnynl.com/archives/201701/1217.html 角速标定:http://www.ncnynl.com/archives/201701/1218.html 线速标定:http://www.ncnynl.com/archives/201707/1812.html 角速标定:http://www.ncnynl.com/archives/201707/1813.html

定位

假设里程计和激光扫描仪都能合理地执行,建图和调整AMCL通常并不会太糟糕。首先,运行gmapping或者hector啥的,操控机器人来生成地图。然后使用该地图与AMCL,并确保机器人保持定位。通常是需要设置一个大概的初始位置,稍微移动机器人,就可以看到激光与障碍物对齐了。

速度与加速度的设置

最大/最小速度和加速度是移动基座的两个基本参数,正确设置对优化本地规划器行为有很大帮助.在ROS中有平动和旋转的两种速度/加速度。

加速度与速度,对于规划的影响就很神奇,不同的加速度,速度,最大最小速度,最大加速度,前进速度与转弯速度的组合,各种组合就是会有不一样的效果,想要获得好的效果只能多次尝试不同组合,对于不同的机器人效果也不近相同,还有controller的频率也会影响最后的输出速度。

获得最大速度

通常可以参考移动底盘手册,找到最大速度.还可以订阅odom话题,控制机器人运动,直线运动和原地旋转运动分别可以一个恒定值,便是最大平动速度和旋转速度,为了安全一般我们设置低于最大值.

获得最大加速度

同样可以在手册中找到.若不能再次使用里程计参数,根据机器人到达最大速度的时间,最大速度,位置或角度,可以计算出最大加速度.

设置最小值

这里的最小值我们设置为较大的负值,因为需要机器人后退,以及在任意方向旋转.注意:DWA Local Planner采用机器人最小转速的绝对值.

XY方向的速度

X方向速度为平行于机器人直线运动的方向的速度,与平动速度相同.Y方向速度为垂直于机器人直线运动方向的速度.对于非完整机器人,如两轮差速机器人,需将Y轴方向速度设置为0.

Global Planner

move_base的运行依赖于global planner和local planner.这里有三个nav core::BaseGlobal Planner 的接口: carrot planner, navfn and global planner.

接口 carrot planner :最简单的一个.检查到如果给定的目标是障碍物,通过沿向量向后移动机器人和目标点。最终它将这个有效的目标作为一个计划传递给本地规划师或controller。因此,此计划器不执行任何全局操作路径规划。如果你需要你的机器人接近给定的目标,这是很有帮助的。即使目标无法实现。在复杂的室内环境中却不太实际。navfn and global planner :navfn使用dijkstra的算法找到一个全局路径,该路径在起点和终点。Global Planner是一种更灵活的替代产品。有更多的选择。这些选项包括(1)A*支持(2)切换二次近似(3)切换网格路径。 参数

global planner通常是我们喜欢使用的,下面讨论一些关键参数.并非所有参数在ROS网站,这时使用rqt的参数重新配置程序,可以看到所有参数 rosrun rqt_reconfigure rqt_reconfigure

将参数 allow_unknown(true) use_dijkstra(true) use_quadratic(true) use_grid_path(false)  old_navfn_behavior(false) 设置成默认.如果需要查看potential map,将visualize potential(false)设置成true可能会很有帮助map 除了这些参数外,还有三个未列出的参数实际上决定了计划全局路径的质量。成本因素、中性成本、致命成本。实际上,这些参数也出现在NAVFN中。源代码2有一段解释navfn如何计算成本值。在这里插入图片描述 在这里插入图片描述 navfn cost value的设置: cost = COST NEUTRAL + COST FACTOR * costmap cost value costmap cost values的输入值在0到252之间. 在成本中性值为50的情况下,成本系数需要大约为0.8,以确保输入值在输出范围(50到253)上均匀分布。如果成本因素更高,成本值将在障碍物周围有一个高原,然后规划者将(例如)把狭窄走廊的整个宽度视为同样不可取的,因此不会规划沿着中心的路径. 实验证明。将成本系数设置为过低或过高会降低路径的质量。这些路径有不经过每边障碍物的中间,曲率相对平缓。极端中性的成本值也有同样的效果。对于致死成本,即使可行路径明显,将其设置为低值也可能导致无法生成任何路径。图5-10显示了成本因素和中性成本对全球路径规划的影响。绿线是全球规划师制定的全球路径。经过几次实验,我们发现当cost factor=0.55,neutral cost=66,lethal cost=253时,全局路径是比较理想的。

Local Planner

Local planners依赖于nav core::BaseLocalPlanner interface的接口: dwa local planner eband local planner teb local planner 它们使用不同算法生成速度命令.我们通常选择DWA.

DWA Local Planner DWA algorithm

dwa_local_planner采用了Dynamic Window Approach(DWA)算法 算法基本思想:

在机器人控制空间(dx,dy,dta)中离散采样。对于每个采样速度,从机器人的当前状态执行正向移动模拟,以预测如果在一些(短)时间段内应用采样速度将会发生什么。从以下方面来评价正向移动模拟产生的每个轨迹:接近障碍物,接近目标,接近全局路径和速度。 放弃非法轨迹(与障碍物相撞的轨迹)。选择最高得分的轨迹,并将相关速度发送到移动基座。冲洗并重复

DWA的目标是产生一个(v,ω)对,它表示一个最适合机器人的局部状况。DWA通过搜索下一个时间间隔。这个空间的速度被限制在允许范围内,这意味着机器人必须能够在到达最近的障碍物之前停止。由这些容许速度决定的圆形轨道。而且,DWA只会考虑动态窗口中的速度,该窗口定义为在给定当前平移和旋转速度和加速度的情况下,在下一个时间间隔内可到达的一组速度对。DWA最大化了一个目标函数,这取决于: (1)抵达目标的进度(2)障碍物空间(3)前进速度产生最佳速度对。

算法摘要:第一步是在动态窗口中的速度空间中采样速度对(v x,v y,ω)。第二步基本上是消除速度(即消除不良轨道),这是不允许的。第三步是使用OBJEC评估速度对.输出轨迹得分的动态函数。第四步和第五步很容易理解,选择当前的最佳速度选项并重新计算。

这个DWA计划依赖于提供障碍信息的本地成本图信息。因此,调整局部成本图的参数对于优化DWA Local planner的行为。接下来,我们将在正向模拟中查看参数,轨迹评分,成本地图等等。

DWA Local Planner : Forward Simulation

前向仿真是DWA算法的第二步。在这一步中,local planner在机器人的控制空间中提取速度样本,并检查这些速度样本所代表的圆形轨迹,最终消除不良速度(轨迹与障碍物相交的速度)。每一个速度样本都被模拟,就好像它被应用到机器人上一个设定的时间间隔,由模拟时间(s)参数控制。我们可以把sim_time看作是机器人以采样速度移动所允许的时间。

实验结果表明,模拟时间越长,计算量越大。另外,当仿真时间变长时,local planner的路径也会变长,这是合理的。下面是一些关于如何调整此sim_time参数的建议。

如果将sim_time设置为一个非常低的值(=5.0)将导致不太灵活的长曲线。这个问题并不是不可避免的,因为计划员在每个时间间隔(由控制器频率(hz)控制)后都会主动重新规划,这为小的调整留出了空间。即使对于高性能计算机,4.0秒的值也应该足够。 在这里插入图片描述 除了sim_time之外,其他一些值得关注的参数.

速度样本和其他参数 vy_sample,vy_sample决定了在x,y方向要取多少平移速度样本。vy_sample控制旋转速度样本的数量。您希望采集的样本数量取决于您拥有多少计算能力。在大多数情况下,我们倾向于将vy_sample设置为高于平动速度样本,因为转弯通常比直行更复杂。如果将max_vel_y设置为0,则无需在y方向上进行速度采样,因为没有可用的采样。我们选取vy_sample=20,vy_sample=40。

模拟粒度 sim_granularity是在轨迹上的点之间采样的步长。它基本上意味着应该检查轨迹上的点的频率(测试它们是否与任何障碍物相交)。较低的值意味着较高的频率,这需要更多的计算能力。默认值0.025通常足以满足Turtlebot大小的移动基础。

DWA Local Planner : Trajactory Scoring

如上所属,DWA Local Planner 最大化目标函数来获得最佳路径.DWA最大化了一个目标函数,取决于: (1)抵达目标的进度(2)障碍物空间(3)前进速度产生最佳速度对。

目标函数的成本计算如下: cost = path distance bias ∗ (distance(m) to path from the endpoint of the trajectory) + goal distance bias ∗ (distance(m) to local goal from the endpoint of the trajectory) + occdist scale ∗ (maximum obstacle cost along the trajectory in obstacle cost (0-254))

目标是获得最低的成本。path_distance_bias是Local应保持接近Global planner的程度的权重。高值将使Local planner更喜欢全局路径上的轨迹。

goal_distance_bias是指机器人在任何路径下,都应尝试达到local goal的权重。实验表明,增加该参数可以减少机器人对全局路径的依赖。

occdist_scale是机器人应避免多少障碍物的权重。此参数的高值会导致不确定的机器人卡入到位。目前,对于Scitos G5,我们将path_distance_bias设置为32.0,goal_distance_bias设置为20.0,occdist_scale设置为0.02。它们在仿真方面工作得很好。

DWA Local Planner : Other Parameters

Goal distance tolerance

yaw_goal_tolerance(double, default: 0.05)控制器达到目标时的偏航/旋转公差(以弧度表示)xy_goal_tolerance(double, default: 0.10)实现目标时控制器在X&Y距离上的公差(以米为单位)latch_xy_goal_tolerance(bool, default: false)目标公差锁定,如果机器人到达目标xy位置,它将简单地原地旋转,即使在执行此操作时,它最终超出了目标公差。

Oscilation reset 如在通过门口等情况下,机器人可以来回摆动,因为它的本地规划者正在生成通向两个相反方向的路径。如果机器人持续抖动,导航堆栈将让机器人尝试其恢复行为。

oscillation_reset_dist(double, default: 0.05)在重置振荡标志之前,机器人必须移动多远(以米为单位)。 Costmap 参数

如上所述,成本图参数的调整对于本地规划者的成功至关重要(不仅对于DWA)。在ROS中,代价地图由静态地图层、障碍地图层和膨胀层组成。静态地图层直接解释提供给导航堆栈的给定静态SLAM地图。障碍物地图层包括二维障碍和三维障碍(三维像素层)。膨胀层是一个障碍物膨胀的地方,用来计算每个二维成本图单元的成本。

此外,还有一个global costmap和一个local costmap。global costmap是通过向导航点提供的地图上的障碍物膨胀而生成的。通过对机器人传感器实时检测到的障碍物进行膨胀,生成local costmap。

有许多重要的参数应该设置得尽可能好。

footprint

足迹是移动基地的轮廓。在ROS中,它由一个二维数组表示,其形式为[X 0,Y 0]、[X 1,Y 1]、[X 2,Y 2]、…],无需重复第一个坐标。该足迹将用于计算内接圆的半径和外接圆,以适合机器人的方式进行膨胀.通常为了安全,我们希望轮廓要比机器人真实的形状大. 在这里插入图片描述 要确定机器人的足迹,最简单的方法是参考机器人的图纸。此外,还可以手动拍摄其底部的俯视图。然后使用CAD软件(如SolidWorks)适当地缩放图像,并将鼠标移动到基础轮廓周围,读取其坐标。坐标的原点应该是机器人的中心。或者,你 可以在一张大纸上移动你的机器人,然后画出底座的轮廓。然后选择一些顶点并使用标尺计算出它们的坐标。

inflation

膨胀层由成本在0到255之间的单元组成。每个单元要么被占用,没有障碍,要么是未知的。图13说明了如何计算通货膨胀衰减曲线。

inflation radius和cost scaling factor是决定膨胀的参数。inflation radius控制着零成本点离障碍物的距离。cost scaling factor与单元成本成反比。设置得更高会使衰减曲线更陡.

Pronobis博士建议,最佳的Costmap衰减曲线是一条坡度相对较低的曲线,因此,最佳路径尽可能远离两侧的障碍物。其优点是机器人更喜欢在障碍物中间移动。如图8和图9所示,在相同的起点和目标下,当Costmap曲线陡峭时,机器人倾向于接近障碍物。在图14中,通货膨胀半径=0.55,成本比例系数=5.0;在图15中,通货膨胀半径=1.75,成本比例系数=2.58在这里插入图片描述 在衰减曲线图的基础上,对这两个参数进行设置,使膨胀半径几乎覆盖了腐蚀体,且成本值衰减适中,这意味着降低了cost scaling factor的值。

costmap resolution

本地代价地图和全局代价地图可以分别设置此参数。它们影响计算负载和路径规划。当低分辨率(>=0.05)时,在狭窄的通道中,障碍区域可能会重叠,因此local planner无法找到通过的路径。

对于全局代价地图分辨率,它足以保持与提供给导航堆栈的地图的分辨率相同。如果你有足够的计算能力,你应该看看激光扫描仪的分辨率,因为当使用gmapping创建地图,如果激光扫描仪的分辨率低于您所需的地图分辨率,将会有很多小的“未知点”,因为激光扫描仪无法覆盖该区域,如图16所示。 在这里插入图片描述 例如,Hokuyo URG-04LX-UG01激光扫描仪的公制分辨率为0.01mm。因此,扫描分辨率 TrajectoryPlannerROS

关于两个规划器,DWAPlanner相对来说是更加细致,参数更多,也更加敏感,所以也相对更加难调,TrajectoryPlanner我会在什么时候用呢,有项目急着交,DWA又跑不出好的效果,换上立马就能跑,但是很多细节还是不够理想,推荐还是使用DWA,接下来会对DWA的参数介绍,以及一些实际调试过程中总结的经验。

DWAPlannerROS

目前只针对差动结构的移动机器人进行总结,全向轮可类比经验,接下来有点干~

参数表: 熟记都有哪些参数可调。 acc_lim_x: 1.5 #x方向的加速度极限,单位为 meters/sec^2 (double, default: 2.5) acc_lim_y: 2.5 # (double, default: 2.5) acc_lim_th: 2.4 #角加速度极限,单位为 radians/sec^2 (double, default: 3.2) #The velocity when robot is moving in a straight line max_vel_trans: 0.35 #机器人最大平移速度的绝对值 (double, default: 0.55) min_vel_trans: 0.01 # (double, default: 0.1) max_vel_theta: 0.8 #最大角速度的绝对值,单位为 rad/s (double, default: 1.0) min_vel_theta: 0.15 # (double, default: 0.4) #Robot Configuration Parameters max_vel_x: 0.35 #机器人在x方向的速度极限,单位为 meters/sec^2 (double, default: 0.55) min_vel_x: -0.05 # (double, default: 0.0) max_vel_y: 0.1 # (double, default: 0.1) min_vel_y: -0.1 # (double, default: -0.1) #Goal Tolerance Parametes yaw_goal_tolerance: 0.03 #(double, default: 0.05) xy_goal_tolerance: 0.07 #(double, default: 0.10) latch_xy_goal_tolerance: true #如果锁定目标公差且机器人到达目标xy位置,机器人将简单地旋转到位,即使它在目标公差的范围内结束。 #(bool, default: false) #Forward Simulation Parameters sim_time: 1.7 #给定轨迹上的点之间的间隔尺寸,单位为 meters (double, default: 1.7) sim_granularity: 0.025 # (double, default: 0.025) vx_samples: 3 #样本数 (integer, default: 3) vy_samples: 10 #(integer, default: 10) vth_samples: 20 #角速度的样本数 (integer, default: 20) controller_frequency: 20.0 #调用该控制器的频率 (double, default: 20.0) #Trajectory Scoring Parameters path_distance_bias: 32.0 #控制器靠近给定路径的权重 (double, default: 32.0) goal_distance_bias: 24.0 # 控制器尝试达到其本地目标and控制着速度的权重。(double, default: 24.0) occdist_scale: 0.01 #控制器尝试避免障碍物的权重 (double, default: 0.01) forward_point_distance: 0.325 #从机器人中心点到另一个得分点的距离 (double, default: 0.325) stop_time_buffer: 0.2 #机器人在碰撞前必须停止的时间 (double, default: 0.2) scaling_speed: 0.25 #缩放机器人足迹的速度的绝对值,单位为m/s (double, default: 0.25) max_scaling_factor: 0.2 #缩放机器人足迹的最大因子 (double, default: 0.2) publish_cost_grid: false # (bool, default: false) #Oscillation Prevention Parameters oscillation_reset_dist: 0.05 #机器人必须运动多少米远后才能复位震荡标记 (double, default: 0.05) #Debugging publish_traj_pc : true #将规划的轨迹在RVIZ上进行可视化 publish_cost_grid_pc: true #将代价值进行可视化显示 (bool, default: false) #是否发布规划器在规划路径时的代价网格.如果设置为true,那么就会在~/cost_cloud话题上发布sensor_msgs/PointCloud2类型消息 估计应用场景中需要的相关速度值 最大速度: 首先把max_vel_trans、max_vel_x、max_vel_theta三个速度最大值减小,角速度通常在1.0左右,平移速度与x方向速度设置相同在0.5左右,根据不同的最大速度,将加速度最大值减小,合适的加速度还和机器人的驱动密切相关,加速能力,控制周期等,不过加速度控制在大概范围就好,初步调试中相对保守的速度值,可以有效避免飞车,碰撞,毕竟机器人还是很贵的。其次平移加速度与旋转加速度的比例也会影响导航避障的表现 最小速度: (1)首先min_vel_trans这个参数,它的默认速度是0.1,再通过实际表现会发现,一个较小的最小平移速度是必须的,具体它会影响低速行驶的状态,尤其是到达目标点时,最小速度过大会导致越过目标点,始终无法到达,建议可以尝试在0-0.1之间寻找合适的大小。 (2) min_vel_x,这个参数巧妙的地方在于,是否要有负值,也就是是否允许倒车,实际使用中过高的倒车速度是极其诡异的,并且通常机器人的激光传感器都不是360度,无法避开后边的障碍物,使用过得机器人唯有turtlebot3是设置了一定的负值的,那是不是设置为0就可以,当然。但是在我的调参过程中发现,机器人在180度左右的转向,且两侧障碍物状况类似时,会出现左右摆动无法选择方向的问题,一度无解,偶然情况下我设置了0.05的后退速度,发现每次转弯会先往后退一点,然后转向也变得很好了,或许这就是玄学吧~ (3)min_vel_theta,这个参数没有那么多道道,就是找一个相对较小的值就可以了,一般0.1、0.2都可以,默认0.4会导致最小速度过大过大,无法准确到达目标点。 对于全向轮底盘,还需要考虑y方向的速度、加速、采样等。目标误差 xy方向与角度允许的误差,这个就根据自己机器人大概的精度设置就可以,多试几次就可以 latch_xy_goal_tolerance:锁定目标,这个参数可以理解为如果机器人确定自己到达那个位置点(具体指,如base_footprint与目标点坐标在误差范围对齐了),但是方向还不对,如果设置为true,这时候就可以原地旋转到达目标角度,及时产生位置上的误差就不再移动。我一般是都设置为true,具体看机器人实际表现吧。向前仿真 这部分是非常重要的一部分 sim_time:仿真时间,local planner会按频率向前预测,具体计算时间跟机器人上位机性能有关系,不同时间会发现预测的距离也不同了,时间越长预测距离越远,但是对障碍物的躲避变得不灵活,默认1.7,在实验中我设置到了2.0,表现还不错 三个方向采样数量:对于不同性能的上位机,能够高速计算的点数量有区别,在大多数机器人实验中,x方向默认3表现良好,增大后主要表现为速度变化更加频繁细腻,但是整体速度相对会降低,所以我更倾向相比小一些的x值;同样对于差动轮底盘,有无y方向采样值表现并不明显;旋转采样通常设置默认表现良好 controller_frequency:控制器频率,关于这个参数,我在不同机器人上使用了不同的参数,较高大概就是10-20,低的时候5,有些机器人使用高频率会导致机器人限制在非常低的移动速度,如果运算性能不够还会导致卡顿现象,具体可能与机器人驱动控制频率等也有关系,目前还未找到具体原因,后续更新记录轨迹打分 这部分只调整三个参数cost = path_distance_bias * (distance to path from the endpoint of the trajectory in meters) + goal_distance_bias * (distance to local goal from the endpoint of the trajectory in meters) + occdist_scale * (maximum obstacle cost along the trajectory in obstacle cost (0-254) path_distance_bias:控制器尝试到达给定轨迹的权重 goal_distance_bias: 控制器尝试到达本地目标点的权重,同时控制速度 occdist_scale:控制器尝试避开障碍物的权重 多数情况下可以保持默认,观察规划出的路径,若机器人出现移动轨迹与规划轨迹、理想轨迹差别较大,同时出现避障困难等情况,可以适当调整,避障权重过大会导致路径规困难,容易出现卡顿,陷入较窄区域等问题 move_base recovery_behaviors: true # 是否允许恢复行为,恢复行为为原地旋转 shutdown_costmaps: false # 当move_base进入inactive状态时候,决定是否停用节点的costmap (bool, default: false) controller_frequency: 20.0 # 以Hz为单位的速率运行控制循环并向基座发送速度命令 (double, default: 20.0) planner_patience: 5.0 # 在空间清理操作执行前,路径规划器等待多长时间(秒)用来找出一个有效规划 (double, default: 5.0) controller_patience: 20.0 # 在空间清理操作执行前,控制器会等待多长时间(秒)用来找出一个有效控制 (double, default: 15.0) conservative_reset_dist: 3.0 # 当在地图中清理出空间时候,距离机器人几米远的障碍将会从costmap清除 (double, default: 3.0) planner_frequency: 5.0 # 全局路径规划器loop速率 (double, default: 0.0) oscillation_timeout: 10.0 # 执行修复操作之前,允许的震荡时间是几秒 (double, default: 0.0) oscillation_distance: 0.2 # 机器人需要移动多少距离才算作没有震荡 (double, default: 0.5)

recovery_behaviors:通常根据机器人形状,以及使用的场景是否宽阔来考虑是否允许原地旋转的恢复行为,有时候不规则机器人靠近墙做恢复行为是比较危险的,容易发生碰撞,相比圆形机器人不会有这个问题 controller_frequency:与之前的控制频率是同一个,不在同一层级,这个更高,设置这个即可 planner_frequency:全局路径规划器更新频率,当机器在避障表现较好时,设置一个小频率,可以锦上添花,如果本身local问题很大,再一直更新global路径,会出现离原先最优路径越来越远,直到陷入局部障碍物陷阱 conservative_reset_dist:实验中发现局部地图经常会有移动障碍物遗留,并且不会去除,只有在移动后才能清除,部分只能在恢复行为后清除,所以有一个插件是专门用来做local障碍物清除的 剩余参数用于无法行动之后的恢复行为,震荡表示机器人在很短的距离反复运动,可以设置距离、时间来判断是否为震荡以及多久后执行恢复操作 关于空间清理我还得再研究研究~



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭