目录

1.导航 2

1.1 运行导航节点 3

1.1.1 [远程PC]运行roscore 3

1.1.2 [turtlebot3 SBC]运行提出turtlebot3 3

1.1.3[远程PC]运行导航文件 4

1.2设置机器人的初始姿势 5

1.3导航目标设置 6

1.4导航调优指南 6

1.4.1成本图参数 6

1.4.1.1 inflation_radius 6

1.4.1.2 cost_scaling_factor 7

1.4.2  AMCL参数 7

1.4.3 DWA参数 8

1.4.3.1 acc_lim_x,acc_lim_y,acc_lim_th 8

1.4.3.2 max_trans_vel,min_trans_vel 8

1.4.3.3 max_vel_x,min_vel_x,max_vel_y,min_vel_y 8

1.4.3.4 max_rot_vel,min_rot_vel 8

1.4.4 xy_goal_tolerance 8

1.4.5 yaw_goal_tolerance 9

1.4.6 sim_time 9

1.导航

成本图计算对于成功导航至关重要。 基于描述机器人位置和方向、传感器值、障碍物信息和SLAM获得的地图的姿态信息计算Costmap。 计算结果表示为面积

机器人碰撞,潜在碰撞,并自由移动。 机器人可以根据计算结果创建安全路径。

有两种类型的costmap:全局costmap,它计划从机器人的开始位置到目的地的路径,以及本地costmap,它计算一条安全的路径来避免机器人周围的障碍。 在ROS中,costmap可以表示为数值。 0是机器人可以自由移动的区域,随着数值接近255,碰撞的概率增加。

0:无碰撞区

1~127:低碰撞概率区域128~252:高碰撞

概率区域253~254:碰撞区域

255:无障碍区域

http://wiki.ros.org/costmap_2d#Inflation

动态窗口方法(Dynamic Window Approach)是一种用于创建避免障碍的路径的方法。

DWA利用平移速度(v)和转速(ω)来预测和计算机器人可以移动的路径,并将机器人在硬件上所能达到的最大速度设置为限值。全球规划师创造了一条完整的路径,机器人可以跟随它到达目的地,dwa_local_planner创造了一条本地路径,避免了很好地跟随全球路径的障碍。 妇女事务部按以下顺序运作。

1.分别创建控制位置(DX、dy、dhteta。

2.模拟从其当前位置产生的每个样本,以预测机器人的位置,如果样本被应用在短时间内。

3.仿真结果转化为分数。 考虑了障碍物距离、目的地距离、到全局计划的距离和速度等因素,并将被物体击中的样本排除在结果计算之外。

4.得分最高的样本被选中并交付给机器人。

5.重复步骤1~4。

1.1 运行导航节点

1.1.1 [远程PC]运行roscore

1.1.2 [turtlebot3 SBC]运行提出turtlebot3

1.1.3 [远程PC]运行导航文件

运行上述命令将启动可视化工具Rviz。运行Rviz分别使用以下命令。

1.2设置机器人的初始姿势

导航时最重要的是在地图上显示机器人的确切电流位置。 利用基于概率的粒子滤波器应用自适应蒙特卡罗定位算法(AMCL)预测turtlebot3的位置

从机器人编码器、IMU和LDS等各种传感器获得的信息。 AMCL根据传感器信息预测机器人可能存在的位置。 它通过算法参数值中设置的运动量来更新机器人每次运动的预测位置值,以减少误差。

[远程PC]如果运行机器人运行导航的地图,并且机器人的LDS传感器正常运行,则必须根据机器人使用该地图的实际位置和方向来设置机器人在地图上的位置

1.点击

2.点击地图上机器人实际所在的点,按机器人所面对的方向拖动箭头。

3.重复上述过程,直到扫描值和地图在一定程度上重叠为止。

当初始姿态设置完成后,机器人使用绿色箭头指定的位置和方向作为Pose来估计实际机器人的位置和方向。 绿色箭头表示turtlebot3的概率位置。 LDS传感器在地图上显示障碍物。 初始波斯必须与 

在上图中,机器人周围广泛显示的一些绿色小箭头是AMCL通过机器人的传感器和指定机器人初始位置时的各种信息计算的机器人当前位置。 你看得出来

随着机器人的移动,分布电流位置估计接近机器人。

注意:如果turtlebot3_teleop_keyboard节点在运行导航之前运行,则必须关闭该节点。 从turtlebot3_teleop_keyboard节点发布的cmd_vel数据可能与导航的cmd_vel数据发生碰撞,导致机器人不能正常移动。

1.3 导航目标设置

[远程PC]如果地图显示在RViz中,并且机器人的初始位置设置正确,则可以指定机器人目的地的位置和方向。 点击 

1.点击

2.单击机器人将在地图上到达的目的地,并拖动机器人将面对的方向,以完成目标设置。当目标设置完成时,导航算法创建从机器人当前位置到目的地的路由,并给机器人一个跟随路线的命令。 如果机器人在移动时,障碍物出现在路径上,它会创建一条路径来避免障碍物并移动。

如果无法创建到目的地的路由,则导航目标设置可能失败。 如果你想在机器人走向目的地时停止它,你可以使用一种方法将机器人的当前位置重置到它的目的地。

1.4导航调优指南

1.4.1成本图参数

1.4.1.1 inflation_radius

用于当机器人通过设置与地图上障碍物的距离值来创建路径时保持最小安全距离。 通过设置此值大于机器人半径,可以避免与障碍物碰撞。

1.4.1.2 cost_scaling_factor

调整地图上标记为障碍物的区域的成本值的权重的常数。

cost_scaling_factor使用负指数值创建参数因子,如下所示。 cost_scaling_factor值越大,计算成本值越小。

Value of costmap_2d :: INSCRIBED_INFLATED_OBSTACLE is defined as 254.

exp{-1.0*cost_scaling_factor*(distance_from_obstacle-inscribed_radius)}*(costmap_2d:INSCRIBED_INFLATED_OBSTACLE-1)

1.4.2  AMCL参数

1.4.2.1 1min_particles,max_particles

控制AMCL节点中使用的粒子数。 增加粒子的数量增加了精度,但由于计算量的增加,它也减慢了计算速度。

1.4.2.2 initial_pose_x,initial_pose_y,initial_pose_a

设置机器人的初始位置和方位。也可以手动设置机器人的鼻子和  

1.4.2.3 update_min_d,update_min_a

设置更新粒子滤波器所需的最小平移距离(m)和旋转角(rad。 使用较小的值可以更频繁地进行更新,但计算量也会增加。

1.4.3 DWA参数

以下参数用于DWA的计算,保存在

文件和加载运行程序时,如果DWA参数没有设置机器人硬件的适当值,机器人可能无法正常工作。

1.4.3.1 acc_lim_x,acc_lim_y,acc_lim_th

设置机器人加速度的极限在x,y,θ方向在m/s2和rad/s2.1.4.3.2 max_trans_vel,min_trans_vel

以m/s的绝对值显示机器人的最大和最小平移速度。

1.4.3.3 max_vel_x,min_vel_x,max_vel_y,min_vel_y

设置最大值和最小值机器人可以在x,y方向以m/s移动。 由于turtlebot3不可能在y中平移,所以y的最大值和最小值设置为0。

1.4.3.4 max_rot_vel,min_rot_vel

设置机器人的最大转速和最小转速为rad/s

1.4.4 xy_goal_tolerance

设置机器人到达指定目的地时的x,y坐标中的距离误差。

1.4.5 yaw_goal_tolerance

设置机器人到达指定目的地时机器人所面对的角度的误差。

1.4.6 sim_time

设置机器人应该从机器人当前位置模拟预期路径的多少秒。

TurtleBot3使用课程-第二节b(北京智能佳)的更多相关文章

  1. TurtleBot3使用课程-第二节a(北京智能佳)

    目录 1.[第3类]LRF(LDS)传感器 2 1.1 传感器包安装 2 1.1.1 传感器端口访问设置 2 1.1.2 运行hlds_laser_publisher节点 2 1.1.3 在RViz中 ...

  2. TurtleBot3使用课程-第一节b(北京智能佳)

    目录 1.模拟运行TurtleBot 2 1.1 ROS安装和设置2 1.1.1 turtlebot3 在Gazebo中模拟 3 1.1.1.1用于Gazebo的ROS包装 3 1.1.1.2 tur ...

  3. TurtleBot3使用课程-第一节a(北京智能佳)

    目录 1.ROS设置(远程PC) 2 1.1 ROS安装和设置 2 1.1.1 设置source.list 2 1.1.2 键设置 2 1.1.3 ROS安装 2 1.1.4安装包构建的依赖关系 2 ...

  4. android内部培训视频_第二节 布局基础

    第二节:布局入门 一.线性布局 需要掌握的属性: 1.orientation:排列方式 vertical:垂直 Horizontal:水平 2.weight:水平布局的权重 3.gravity:子控件 ...

  5. python课程第二周重点记录

    python课程第二周重点记录 1.元组的元素不可被修改,元组的元素的元素可以被修改(字典在元组中,字典的值可以被修改) 2.个人感觉方便做加密解密 3.一些方法的使用 sb = "name ...

  6. seajs第二节,seajs各模块依赖关系

    index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  7. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  8. VUE2.0实现购物车和地址选配功能学习第二节

    第二节 创建VUE实例 购物车项目计划: 1.创建一个vue实例 2.通过v-for指令渲染产品数据 3.使用filter对金额和图片进行格式化 4.使用v-on实现产品金额动态计算 5.综合演示 ① ...

  9. 逆向课程第二讲,寻找main入口点

    逆向课程第二讲,寻找main入口点 一丶识别各个程序的入口点 入门知识,识别各个应用程序的入口点 (举例识别VC 编译器生成,以及VS编译生成的Debug版本以及Release版本) 1.识别VC6. ...

随机推荐

  1. moviepy音视频开发:音频剪辑基类AudioClip详解

    ☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度 ...

  2. PyQt(Python+Qt)学习随笔:自定义信号在emit发射信号时报错:AttributeError: object has no attribute

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 如果使用自定义信号,一定要记得信号是类变量,必须在类中定义,不能在实例 ...

  3. 第13.3节 图形界面开发tkinter

    一. 引言 老猿最开始是准备就tkinter单独开一个章节,但学了一段时间tkinter,最后放弃了,前一阵子还准备干脆不介绍相关的内容.主要原因有三个,一是tkinter没有界面设计的工具,所有界面 ...

  4. Scrum冲刺_Day06

    一.团队展示: 1.项目:light_note备忘录 2.队名:删库跑路队 3.团队成员 队员(不分先后) 项目角色 黄敦鸿 后端工程师.测试 黄华 后端工程师.测试 黄骏鹏 后端工程师.测试 黄源钦 ...

  5. .NET 内存泄漏的争议

    前几天发布了几篇关于要小心使用 Task.Run 的文章,看了博客园的所有评论.发现有不少人在纠结示例中的现象是不是属于内存泄漏,本文分享一下我个人的看法,大家可以保留自己的意见. 在阅读本文前,如果 ...

  6. redis学习之——五大基本数据类型

    redis 键 (key) 基本数据类型:string 字符串 list (列表)  set(集合)  hash(类似java 中的Map)   zset(有序集合) 官方命令doc redis 键 ...

  7. JavaScript:记录一些字符串和数组常用的方法

    字符串: 字符串的方法:注意:都不会改变原来的字符串,返回值为新的字符串.如果(1,2),一般是包含小标1,不包含下标2 str.charAt(i): 取str的第i+1个字符,类似数组的arr[i] ...

  8. 使用git客户端免密码进行拉取等相关操作

    前言 如果使用git客户端进行pull或push操作时,遇到有权限的项目总要输入用户名密码,真的是太麻烦了,因此需要稍作修改,然后就可以免密码操作啦! 方法: 进入C盘->用户->你的主机 ...

  9. web前端js实现资源加载进度条

    进度条核心方法,通常j不考虑判断到100,根据项目中的图片数量可能有所差异所以到95就可以了 //根据图片load进度条 function loadingAsImgLength(){ var prec ...

  10. NSMutableArray 的实现原理

    一.普通C语言的数组实现: 是开辟一段连续的内存空间,缺点:在插入下标为0的元素,会移动其他所有元素.添加,插入,删除同理.           当数组非常大时,这样很快会成为问题.     二.OC ...