dwa_local_planner是一个最终将移动速度命令传给机器人的功能包,会设置其参数。

本文详细介绍了turtlebot3_navigation模块中dwa_local_planner_params.yaml文件的参数设置,包括机器人的速度限制、目标误差容忍度、轨迹评分参数以及防止震荡的设定,这些参数直接影响机器人的导航行为和避障能力。通过对这些参数的理解和调整,可以优化机器人的动态行为和路径规划效果。
摘要由CSDN通过智能技术生成

turtlebot3_navigation/param/dwa_local_planner_params.yaml
DWAPlannerROS:

机器人参数设定

max_vel_x: 0.18 # x轴最大速度(meter/sec)
min_vel_x:-0.18 # x轴最小速度(meter/sec)
max_vel_y: 0.0 # 仅适用于全向机器人,因此省略
min_vel_y: 0.0 # 仅适用于全向机器人,因此省略
max_trans_vel: 0.18 # 最大平移速度(meter/sec)
min_trans_vel: 0.05 # 最小平移速度(meter/sec),当值为负数时也可以后退

trans_stopped_vel: 0.01 # 平移停止速度(meter/sec)

max_rot_vel: 1.8 # 最大旋转速度(radian/sec)
min_rot_vel: 0.7 # 最小旋转速度(radian/sec)

rot_stopped_vel: 0.01 # 旋转停止速度(radian/sec)

acc_lim_x: 2.0 # x轴加速度限制(meter/sec^2)
acc_lim_y: 0.0 # y轴加速度限制(meter/sec^2)
acc_lim_theta: 2.0 # theta轴角加速度限制(radian/sec^2)

目标地点的允许误差

yaw_goal_tolerance: 0.15 # yaw轴离目标地点允许的误差(弧度)
xy_goal_tolerance: 0.05 # x,y离目标地点允许的距离误差(米)
#前向仿真(Forward Simulation)参数
sim_time: 3.5 # 前向仿真轨迹时间
vx_samples: 20 # 在x轴速度空间中搜索的样本数
vy_samples: 0 # 在y轴速度空间中搜索的样本数
vtheta_samples: 40 # 在theta轴速度空间中搜索的样本数

轨迹评分参数(轨迹评估)

用于轨迹评估的成本函数的分数计算如下。

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: 32.0 # 衡量控制器遵循给定路径的一致程度的加权值
360 ROS机器人编程
goal_distance_bias: 24.0 # 判断是否接近目标地点和控制速度的加权值
occdist_scale: 0.04 # 有关避障的加权值
forward_point_distance: 0.325 # 机器人中心与附加得分点之间的距离(meter)
stop_time_buffer: 0.2 # 机器人在碰撞之前为了停止所需的最小时间(sec)
scaling_speed: 0.25 # scaling speed(meter/sec)
max_scaling_factor: 0.2 # maximum scaling factor

防止震荡动作的参数

震荡标志复位之前机器人所需移动的距离

oscillation_reset_dist: 0.05
#调试
publish_traj_pc: true # 移动轨迹调试设置
publish_cost_grid_pc: true # costmap调试设置
global_frame_id: odom # 全局框架ID设置

move_base功能是ROS中常用的导航功能,它封装了许多导航相关的算法和工具,提供了一个基于全局和局部路径规划的导航系统。下面是move_base功能的源码封装。 1. move_base.cpp move_base.cpp是move_base功能的主要源文件,它含了move_base节点的主函数和节点类的定义。该文件首先初始化了ROS节点,然后创建了一个MoveBase类的对象,开始执行节点循环,等待接收导航目标,执行路径规划和控制机器人运动。 2. move_base.h move_base.h是MoveBase类的头文件,含了该类的成员变量和函数定义。MoveBase类是move_base节点的核心,它负责整个导航系统的控制和协调,括全局路径规划、局部路径规划、机器人控制等功能。 3. global_planner.h global_planner.h是全局路径规划器的头文件,含了GlobalPlanner类的定义。该类负责实现全局路径规划算法,根据机器人当前位置和导航目标,生成一条从起点到终点的路径。 4. global_planner.cpp global_planner.cpp是全局路径规划器的源文件,含了GlobalPlanner类的成员函数的实现。该文件实现了A*算法和Dijkstra算法,用于全局路径规划。 5. local_planner.h local_planner.h是局部路径规划器的头文件,含了LocalPlanner类的定义。该类负责实现局部路径规划算法,根据机器人当前位置和全局路径,生成一条从机器人当前位置到全局路径上某一点的局部路径。 6. local_planner.cpp local_planner.cpp是局部路径规划器的源文件,含了LocalPlanner类的成员函数的实现。该文件实现了DWA算法,用于局部路径规划。 7. costmap_2d.h costmap_2d.h是代价地图的头文件,含了Costmap2D类的定义。该类负责管理代价地图,括读取、更新和查询代价地图。 8. costmap_2d.cpp costmap_2d.cpp是代价地图的源文件,含了Costmap2D类的成员函数的实现。该文件实现了代价地图的读取、更新和查询功能。 9. recovery_behaviors.h recovery_behaviors.h是恢复行为的头文件,含了RecoveryBehaviors类的定义。该类负责实现机器人遇到异常情况时的恢复行为,例如旋转、后退等操作。 10. recovery_behaviors.cpp recovery_behaviors.cpp是恢复行为的源文件,含了RecoveryBehaviors类的成员函数的实现。该文件实现了机器人遇到异常情况时的恢复行为。 以上是move_base功能的主要源码封装,它们共同实现了一个完整的导航系统,可以用于控制机器人自主导航。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值