去除未知环境的路径规划设置:

参考:https://blog.csdn.net/qq_32618327/article/details/95969238

对地图的障碍物图层的理解:

参考:https://blog.csdn.net/m0_37672916/article/details/76604978?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1-76604978.nonecase&utm_term=ros%20%E5%8A%A8%E6%80%81%E9%9A%9C%E7%A2%8D%E7%89%A9%E9%81%BF%E9%9A%9C&spm=1000.2123.3001.4430

Husky机器人的操作说明:

参考:https://blog.csdn.net/ZhangRelay/article/details/59489246

《精通ROS机器人编程》:

参考代码:https://github.com/PacktPublishing/Mastering-ROS-for-Robotics-Programming-Second-Edition

详解navigation:

参考https://blog.csdn.net/qq_35358125/article/details/108508651

古月居老师:

https://www.guyuehome.com/

张瑞雷老师:

https://blog.csdn.net/ZhangRelay/article/list/2

dwa相关参数:


/move_base/DWAPlannerROS/acc_lim_theta  #最高旋转加速度  当机器人为四轮差速时,提高可改善避障转向不足问题,在机器人底层也可限制机器人最小的转向速度,提高转向能力

参量

可以设置大量的ROS参数以自定义dwa_local_planner :: DWAPlannerROS包装器的行为。这些参数分为几类:机器人配置,目标公差,正向仿真,轨迹计分,防振和整体计划。这些参数中的大多数也可以使用dynamic_reconfigure进行更改,以便于在运行的系统中调整本地计划程序。

配置参数

〜<名称> / acc_lim_x(double,默认值:2.5)

  • 机器人的x加速度极限,以米/秒^ 2为单位

〜<名称> / acc_lim_y(double,默认值:2.5)

  • 机器人的y加速度极限(米/秒^ 2)

〜<名称> / acc_lim_th(double,默认值:3.2)

  • 机器人的旋转加速度极限(弧度/秒^ 2)

〜<名称> / max_vel_trans(double,默认值:0.55)

  • 机器人最大平移速度的绝对值,单位m / s

〜<名称> / min_vel_trans(double,默认值:0.1)

  • 机器人最小平移速度的绝对值,单位m / s

〜<名称> / max_vel_x(double,默认值:0.55)

  • 机器人的最大x速度,以m / s为单位。

〜<名称> / min_vel_x(double,默认值:0.0)

  • 机器人的最小x速度,以m / s为单位,向后运动为负。

〜<名称> / max_vel_y(double,默认值:0.1)

  • 机器人的最大y速度,以m / s为单位

〜<名称> / min_vel_y(double,默认值:-0.1)

  • 机器人的最小y速度,以m / s为单位

〜<名称> / max_rot_vel(double,默认值:1.0)

  • 机器人最大旋转速度的绝对值,以弧度/秒为单位   #可改善转向不足

〜<名称> / min_rot_vel(double,默认值:0.4)

  • 机器人最小旋转速度的绝对值,以弧度/秒为单位  #可改善转向不足

目标容忍参数

〜<名称> / yaw_goal_tolerance(double,默认值:0.05)

  • 达到目标时控制器在偏航/旋转中的弧度公差

〜<名称> / xy_goal_tolerance(double,默认值:0.10)

  • 达到目标时,控制器在x和y距离内的米公差

〜<名称> / latch_xy_goal_tolerance(bool,默认:false)

  • 如果锁定了目标公差,则即使机器人到达目标xy位置,它也会简单地旋转到位,即使机器人在这样做时最终超出了目标公差。

正向仿真参数

〜<名称> / sim_time(double,默认值:1.7)

  • 前移轨迹的时间(以秒为单位)  #仿真机器人未来多久的轨迹

〜<名称> / sim_granularity(double,默认值:0.025)

  • 在给定轨迹上的点之间采取的步长(以米为单位)

〜<名称> / vx_samples(整数,默认值:3)

  • 探索x速度空间时要使用的样本数

〜<名称> / vy_samples(整数,默认值:10)

  • 探索y速度空间时要使用的样本数

〜<名称> / vth_samples(整数,默认值:20)

  • 探索theta速度空间时要使用的样本数

〜<名称> / controller_frequency(double,默认值:20.0)

  • 该控制器将被称为Hz的频率。如果未在控制器的名称空间中设置,则使用searchParam从父名称空间读取参数。与move_base一起使用时,这意味着您只需要设置其“ controller_frequency”参数即可,并且可以安全地保留此参数。

轨迹计分参数

用于对每个轨迹进行评分的成本函数采用以下形式:

cost=
  path_distance_bias *(到轨迹终点的距离,以米为单位)
  + Goal_distance_bias *(从轨迹终点到本地目标的距离,以米为单位)
  + occdist_scale *(沿着轨迹的最大障碍物成本,障碍物成本(0-254))

〜<名称> / path_distance_bias(double,默认值:32.0)

  • 控制器应保持多少距离的权重    #这个参数可以使机器人跟加贴近全局路径行走

〜<名称> / goal_distance_bias(double,默认值:24.0)

  • 控制器应尝试达到其本地目标的权重也控制速度   

〜<名称> / occdist_scale(double,默认值:0.01)

  • 控制器应尝试避免障碍的权重    #要想远离障碍物及时避障,需要提高这个参数

〜<名称> / forward_point_distance(double,默认值:0.325)

  • 距离机器人中心点到另一个得分点的距离,以米为单位

〜<名称> / stop_time_buffer(double,默认值:0.2)

  • 为了使轨迹在几秒钟内有效,机器人在碰撞之前必须停止的时间  #这个参数有可能也是远离障碍物

〜<名称> / scaling_speed(double,默认值:0.25)

  • 开始缩放机器人足迹的速度的绝对值,以m / s为单位

〜<名称> / max_scaling_factor(double,默认值:0.2)

  • 缩放机器人足迹的最大因素

〜<名称> / publish_cost_grid(bool,默认值:false)

  • 是否发布计划者在计划时将使用的成本表。设置为true时,〜<name> / cost_cloud主题上将提供sensor_msgs / PointCloud2。每个点云都代表成本网格,并在考虑到得分参数的情况下为每个单独的得分功能组件以及每个单元的总成本提供了一个字段。

 

防震参数

〜<名称> / oscillation_reset_dist(double,默认值:0.05)

  • 重置振动标志之前,机器人必须行进多米

 

全局计划参数

〜<名称> / prune_plan(bool,默认:true)

  • 定义在机器人沿路径移动时是否要吃掉计划。如果设置为true,则一旦机器人从其上方经过1米,这些点就会从计划的末尾掉落。

参考:https://blog.csdn.net/qq_29313679/article/details/106237063

           http://wiki.ros.org/dwa_local_planner

 

#机器人在躲避立柱式的障碍物时,容易被卡住,建议将立柱之间连起来,形成墙这样不易被卡住。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐