导航配置-movebase参数详解(持续更新中)
来源:互联网 发布:社交网络算法 编辑:程序博客网 时间:2024/06/01 21:40
前言:不论是什么车,在使用之前,一定要对线速度和角速度进行校正。
1、校正
线速度:
在先锋上面的是调节:DriftFactor,TicksMM,RevCount,这三个参数,
TicksMM:我现在设置的是120,(官方建议128),举个例子:如果你设置150,让先锋机器人走1米,他会走1米3左右。,这个参数,貌似是脉冲的个数。越大,走的越远。
DriftFactor:水平方面的分量。设置为0
RevCount:就设置16570就可以了。
我是利用的turtlebot的rosrun rbx1_nav calibrate_linear.py
和角度rosrun rbx1_nav calibrate_angular.py
来矫正的线速度和角速度的。在矫正角速度的时候,可能出现回弹的现象。这是因为线速度的值,设置太大了。先锋机器人理想的线速度的之,我觉得是0.6米/秒。理想的角速度的为0.4米/秒,同样在,线速度的校正的时候,不同的速度,下看精度如何,例如,0.5M/S的速度,运动一米,和1m/s的速度运动一米的精度是不同的额,下面的小视频当中的,是以0.3米运动一米的精度
角度标定这个gif可能会有误解,在turtlebo的校正当中,是旋转360度的,我这里只播放了一半的视频。
由上面的0.4的旋转速度,那么在导航配置文件当中,有一个原地旋转的速度,我也设置的0.4,那么这样旋转的角度就很准了。
最后将校正的文件写到launch 文件当中,就像下面这样:
<launch><!-- Starting rosaria driver for motors and encoders --> <node name="rosaria" pkg="rosaria" type="RosAria" args="_port:=/dev/ttyUSB0"> <param name="DriftFactor" value="0"/> <param name="TicksMM" value="120"/> <param name="RevCount" value="16570"/> <remap from="rosaria/cmd_vel" to="cmd_vel"/> <remap from="rosaria/pose" to="odom"/> </node></launch>
2、建图参数影响
在建图方面,还是用跟随建图比较准确。我是用的gmapping建立的地图
<param name="particles" value="8"/>、 <param name="minimumScore" value="30"/> <param name="delta" type="double" value="0.05" />
重要的就是上面的3个参数。
particles参数是粒子数。这个值对建图参数的影响我还没尝试过,可能是参数越大,那么很小的障碍物都能够被检测出来。
minimumScore参数是最小匹配得分,这个值越大,越容易去使用里程计的信息。太小,会出现噪声
delta参数表示地图的分辨率
还有一些参数,详细见博客:点击这里
3、导航配置文件参数影响
导航配置参数文件,有以下4个文件
p3dx_base_local_planner_params.yamlp3dx_costmap_common_params.yamlp3dx_global_costmap_params.yamlp3dx_local_costmap_params.yaml
p3dx_base_local_planner_params.yaml
controller_frequency: 10.0 #控制器更新频率,建议3-5HZTrajectoryPlannerROS: max_vel_x: 0.50 #最大速度,这个速度稳定 min_vel_x: 0.10 #最小速度 max_rotational_vel: 0.3 #最大旋转速度(这里是转弯的最大的速度) min_in_place_rotational_vel: 0.4#这里就上上面所有说的,先锋最时候的圆度旋转饿速度 acc_lim_theta: 0.55#旋转角加速度 acc_lim_x: 0.1#最大的旋转加速度x方向 acc_lim_y: 0.0#最大旋转加速度y方向 meter_scoring: true#单位是不是米 holonomic_robot: false yaw_goal_tolerance: 0.18#朝向上面的允许的误差 xy_goal_tolerance: 0.2#距离上面允许的误差 pdist_scale: 0.8 #全局的比例 gdist_scale: 0.1 #全局和局部的比例,我觉得还是应该全局为重,这个值越大,那么越有那个起步的大圈 goal_distance_bias: 0.8 path_distance_bias: 0.2 sim_time: 1.5#模拟时间 heading_lookahead: 0.325机器人原地旋转是,向前看多少米的距离 oscillation_reset_dist: 0.05 vx_samples: 6 vtheta_samples: 20 dwa: false
4、AMCL参数影响
从下面这张图可以看出,由amcl发布的map到odom之间的坐标变换,rosaria发布从odom到base_link之间的坐标变换,然后我在LMS100当中,发布了从baselink到laser之间的坐标变换。
其实在启动机器人的顺序当中,不使用URDF模型也是可以的,因为在第3部分,配置导航的文件当中,已经输入了机器人相关尺寸。
遇到的问题:
这是因为,存在两个坐标系导致的问题。我我详细的了一下:是map到odom之间的的问题。
原因出现在这里:我将这里的odom到map之间做了一个静态的坐标变换
<!-- Run a static transform between /odom and /map --> <node pkg="tf" type="static_transform_publisher" name="odom_map_broadcaster" args="0.0, 0.0 0 0 0 0 /map /odom 100" />
而amcl也会发布一个从odom到map的坐标变换。两个变换冲突,因此地图会抖动。
心得:如果要模拟机器人运动,进行调试参数的时候,加上这句话,来调试参数,如果是真实机器人运动,那么将这句话删除进行实际的导航。
- 导航配置-movebase参数详解(持续更新中)
- nginx 常用配置详解(持续更新)
- UEditor配置笔记(持续更新中)
- Oracle11G 系统参数学习(持续更新中)
- Bitbucket 和 Git 使用详解(持续更新中)
- java中Calendar类详解(持续更新)
- Gensim源代码详解——dictionary(持续更新中)
- Gensim源代码详解——utils(持续更新中)
- Maven常用插件配置(持续更新中)
- Hadoop学习笔记系列文章导航【持续更新中...】
- Linux基础命令详解 持续更新中
- RxJava用法详解持续更新中......
- jsp详解与应用...持续更新中
- vim配置分享(持续更新中)
- 术语(更新持续中。。。)
- 名人名言(持续更新中)
- 记录(持续更新中)
- 书单(持续更新中...)
- Android O / Android 8.0 新特性及开发指南
- matlab2c使用c++实现matlab函数系列教程-find函数
- 【数据结构】数据结构与算法分析第一章部分题目
- div+css网页标准布局实例
- JSDOM编程艺术-笔记-ch5 平稳退化&分离JS(BY 弹窗实例)
- 导航配置-movebase参数详解(持续更新中)
- 虚拟币交易平台对接钱包是使用 Merkle Tree端口
- 验证码生成和切换
- SQL数据库中高级查询 表连接与子查询
- test
- hdu-3007(计算几何+最小覆盖圆)
- 设计模式-工厂方法
- Rxjava一些使用场景应用
- 启用CSDN决定