Nav2
入门指南
安装步骤
运行示例
导航
开发指南
构建与安装
安装
构建
已发布的分发二进制文件
滚动开发源
Docker 容器镜像
生成 Doxygen
帮助
Build Troubleshooting Guide
开发容器
Dev 容器指南
创建 Dev 容器
使用开发容器
什么是、为什么和如何?
什么是开发容器?
为什么使用开发容器?
开发容器是如何工作的?
前提条件
入门
安全
参与其中
参与
流程
许可
开发者原产地证书 (DCO)
导航概念
ROS 2
Action Server
生命周期节点和绑定
行为树
导航服务器
规划器、控制器、平滑器和恢复服务器
规划
控制器
行为
平滑器
机器人足迹
航点跟踪
状态估计
标准
全球定位:定位和 SLAM
里程计
环境表示
成本图和图层
Costmap Filters
其他形式
Nav2学术概况
首次机器人设置指南
设置转换
变换简介
静态变换发布器演示
Navigation2 中的变换
结论
设置 URDF
URDF 和机器人状态发布器
设置环境
编写 URDF
构建和启动
使用 RVIZ 进行可视化
添加物理属性
结论
设置里程计
里程表简介
在您的机器人上设置里程计
使用 Gazebo 模拟里程计系统
设置和先决条件
将 Gazebo 插件添加到 URDF
启动和构建文件
构建、运行和验证
机器人定位演示
配置机器人定位
启动和构建文件
构建、运行和验证
结论
设置传感器
传感器介绍
常见传感器消息
使用 Gazebo 模拟传感器
将 Gazebo 插件添加到 URDF
启动和构建文件
构建、运行和验证
地图绘制和定位
Costmap 2D
Configuring nav2_costmap_2d
构建、运行和验证
结论
设置机器人的足迹
足迹介绍
配置机器人的足迹
构建、运行和验证
在 RViz 中可视化足迹
结论
设置
计划器和控制器服务器
选择算法插件
规划服务器
控制服务器
结论
机器人使用
常规教程
使用物理 Turtlebot 3 进行导航
概述
要求
教程步骤
0- 设置环境变量
1- 启动 Turtlebot 3
2- 启动 Nav2
3- 启动 RVIZ
5- 发送目标姿势
(SLAM)边导航边建图
概述
要求
教程步骤
0- 启动机器人接口
1- 启动 Navigation2
2- 启动 SLAM
3- 使用 SLAM
4- 入门简化
(STVL)使用外部 Costmap 插件
概述
Costmap2D and STVL
教程步骤
0- 设置
1- 安装STVL
1- 修改Navigation2参数
2- 启动 Navigation2
3- RVIZ
使用 GPS 定位导航
概述
要求
GPS 定位概述
教程步骤
0- 设置 Gazebo World
1- 设置 GPS 定位系统
2- 设置导航系统
3- 交互式 GPS 航点跟随器
4- 记录 GPS 航点跟随器和航点记录
结论
Groot - 与行为树交互
概述
可视化行为树
编辑行为树
添加自定义节点
使用 VIO 增强机器人里程计
概述
设置 ZED X 相机
设置 ZED ROS
将 VIO 融合到本地状态估计中
将 VSLAM 融合到全局状态估计中
测试一下!
动态物体跟踪
概述
教程步骤
0- 创建行为树
1- 设置Rviz点击点
2- 在 Nav2 模拟中运行动态对象跟踪
使用禁区导航
概述
要求
教程步骤
1. 准备过滤口罩
2. 配置 Costmap 过滤器信息发布服务器
3. 启用禁止访问过滤器
4. 运行 Nav2 堆栈
限速导航
概述
要求
教程步骤
1. 准备过滤面罩
2. 配置 Costmap 过滤器信息发布服务器
3. 启用速度过滤器
4. 运行 Nav2 堆栈
使用对接服务器
概述
要求
充电底座插件
码头数据库
配置对接服务器
添加对接服务器以启动
Docking Action API
综合起来
使用旋转垫片控制器
概述
什么是旋转垫片控制器?
配置旋转垫片控制器
配置主控制器
演示执行
为 BT 添加平滑器
概述
要求
教程步骤
0-熟悉 Smoother BT 节点
1- 指定更平滑的插件
2- 修改您的 BT XML
使用碰撞监视器
概述
要求
配置碰撞监视器
使用速度多边形配置碰撞监视器
Preparing Nav2 stack
演示执行
添加新的 Nav2 任务服务器
生命周期节点
作品
错误代码
结论
过滤噪声引起的障碍物
概述
要求
教程步骤
1. 启用降噪层
2. 运行 Nav2 堆栈
工作原理
相机校准
概述
要求
教程步骤
在 ROS 2/Nav2 中获取 Backtrace
概述
预赛
From a Node
从启动文件
来自大型项目
来自 Nav2 启动
崩溃时自动回溯
ROS 2 / Nav2 中的分析
概述
预赛
来自节点的配置文件
来自启动文件的配置文件
来自 Nav2 启动
解释结果
Docker 开发:从零到英雄
概述
预赛
重要的 Docker 命令
探索你的第一个容器
了解 ROS Docker 镜像
对于基于 Docker 的开发
树立发展形象
来自 Docker 的可视化
对于基于 Docker 的部署
结论
附录
Nav2 开发图像
Nav2 部署图像
插件教程
编写新的 Costmap2D 插件
概述
要求
教程步骤
1-编写一个新的 Costmap2D 插件
2- 导出并制作 GradientLayer 插件
3- 在 Costmap2D 中启用插件
4- 运行 GradientLayer 插件
编写新的 Planner 插件
概述
要求
教程步骤
1- 创建一个新的 Planner 插件
2- 导出规划器插件
3-通过 params 文件传递插件名称
4- 运行 StraightLine 插件
编写新的控制器插件
概述
要求
教程步骤
1- 创建一个新的控制器插件
2- 导出控制器插件
3- 通过 params 文件传递插件名称
4- 运行 Pure Pursuit Controller 插件
编写新的行为树插件
概述
要求
教程步骤
1- 创建新的 BT 插件
2- 导出规划器插件
3- 将插件库名称添加到配置中
4- 运行您的自定义插件
编写新的行为插件
概述
要求
教程步骤
1-创建一个新的行为插件
2- 导出行为插件
3-通过 params 文件传递插件名称
4- 运行行为插件
编写新的导航器插件
概述
要求
教程步骤
1- 创建一个新的导航器插件
2- 导出导航器插件
3-通过 params 文件传递插件名称
4-运行插件
配置指南
行为树导航器
参数
Example
行为树 XML 节点
动作插件
Wait
Spin
BackUp
DriveOnHeading
AssistedTeleop
ComputePathToPose
FollowPath
NavigateToPose
ClearEntireCostmap
ClearCostmapExceptRegion
ClearCostmapAroundRobot
ReinitializeGlobalLocalization
TruncatePath
TruncatePathLocal
PlannerSelector
ControllerSelector
SmootherSelector
GoalCheckerSelector
ProgressCheckerSelector
NavigateThroughPoses
ComputePathThroughPoses
ComputeCoveragePath
CancelCoverage
RemovePassedGoals
RemoveInCollisionGoals
CancelControl
CancelBackUp
CancelSpin
CancelWait
CancelDriveOnHeading
CancelAssistedTeleop
SmoothPath
GetPoseFromPath
DockRobot
UndockRobot
条件插件
GoalReached
TransformAvailable
DistanceTraveled
GoalUpdated
GloballyUpdatedGoal
InitialPoseReceived
IsStuck
TimeExpired
IsBatteryLow
IsPathValid
PathExpiringTimer
AreErrorCodesPresent
WouldAControllerRecoveryHelp
WouldAPlannerRecoveryHelp
WouldASmootherRecoveryHelp
IsBatteryCharging
控制插件
PipelineSequence
RoundRobin
RecoveryNode
装饰器插件
RateController
DistanceController
SpeedController
GoalUpdater
PathLongerOnApproach
SingleTrigger
例子
Costmap 2D
Costmap2D ROS参数
Default Plugins
插件参数
Static Layer Parameters
Inflation Layer Parameters
Obstacle Layer Parameters
Voxel Layer Parameters
Range Sensor Parameters
Denoise Layer Parameters
代价地图过滤器参数
Keepout Filter Parameters
Speed Filter Parameters
Binary Filter Parameters
例子
生命周期 Manager
参数
Example
规划服务器
参数
Default Plugins
Example
Coverage Server
参数
Example
NavFn Planner
Parameters
Example
Smac Planner
提供的插件
Smac 2D Planner
Smac Hybrid-A* Planner
Smac State Lattice Planner
描述
Theta Star Planner
参数
Example
Controller Server
参数
Provided Plugins
SimpleProgressChecker
PoseProgressChecker
SimpleGoalChecker
StoppedGoalChecker
Default Plugins
Example
DWB Controller
Controller
DWB Controller
XYTheta Iterator
Kinematic Parameters
Publisher
Plugins
LimitedAccelGenerator
StandardTrajectoryGenerator
Trajectory Critics
BaseObstacleCritic
GoalAlignCritic
GoalDistCritic
ObstacleFootprintCritic
OscillationCritic
PathAlignCritic
PathDistCritic
PreferForwardCritic
RotateToGoalCritic
TwirlingCritic
Example
Regulated Pure Pursuit
受监管的纯追踪参数
Example
Model Predictive Path Integral Controller
MPPI 参数
轨迹可视化
路径处理器
阿克曼运动模型
限制性批评家
目标角度评论家
Goal Critic
Obstacles Critic
Cost Critic
Path Align Critic
Path Angle Critic
Path Follow Critic
Prefer Forward Critic
Twirling Critic
Velocity Deadband Critic
Example
Notes to Users
General Words of Wisdom
Prediction Horizon, Costmap Sizing, and Offsets
Obstacle, Inflation Layer, and Path Following
Rotation Shim Controller
旋转垫片控制器参数
Example
Graceful Controller
优雅控制器参数
Example
Map Server / Saver
地图保护程序参数
Map Server Parameters
Costmap Filter Info Server Parameters
Example
AMCL
Parameters
Example
Behavior Server
行为服务器参数
Default Plugins
自旋行为参数
备份行为参数
DriveOnHeading Behavior Parameters
AssistedTeleop 行为参数
Example
更流畅的服务器
更平滑的服务器参数
Example
Simple Smoother
简单平滑器参数
Example
Savitzky-Golay Smoother
Savitzky-Golay 平滑器参数
Example
Constrained smoother
更平滑的服务器参数
Example
Velocity Smoother
速度平滑器参数
Example
碰撞监测
提供的节点
Collision Monitor Node
Collision Detector Node
Waypoint Follower
参数
提供的插件
WaitAtWaypoint
PhotoAtWaypoint
InputAtWaypoint
默认插件
Example
Loopback Simulator
参数
Example
Docking Server
参数
SimpleChargingDock 参数
Example
调优指南
通货膨胀势场
机器人占地面积与半径
原地旋转行为
规划器插件选择
控制器插件选择
在 Smac 规划器中缓存障碍启发式方法
Costmap2D插件
Nav2 启动选项
我们很乐意提供的其他页面
Nav2 行为树
简介
动作节点
条件节点
装饰节点
控制:PipelineSequence
控制:恢复
控制:循环赛
行为树详细演练
概述
先决条件
通过重新规划和恢复导航至姿势
导航子树
恢复子树
导航至目的地
Navigate Through Poses
导航至姿势并在目标障碍附近暂停
如果路径无效,则通过一致的重新规划导航到姿势
跟随动态点
里程校准
导航插件
行为树导航器
Costmap Layers
Costmap Filters
Controllers
Planners
Smoothers
Behaviors
Waypoint Task Executors
Goal Checkers
Progress Checkers
Behavior Tree Nodes
迁移指南
Dashing to Eloquent
新软件包
新插件
Navigation2 架构变化
Eloquent 到 Foxy
一般
服务器更新
新插件
地图服务器重做
新的粒子过滤消息
在每个导航操作中选择行为树
FollowPoint 功能
新的 Costmap 层
Foxy to Galactic
NavigateToPose 动作反馈更新
NavigateToPose BT-node 接口更改
添加了 NavigateThroughPoses 和 ComputePathThroughPoses 操作
ComputePathToPose BT-node 接口更改
ComputePathToPose 操作接口更改
备份 BT 节点接口更改
备份恢复接口更改
Nav2 控制器和目标检查器插件接口更改
FollowPath goal_checker_id 属性
Groot 支持
新插件
成本地图过滤器
SmacPlanner
ThetaStarPlanner
RegulatedPurePursuitController
Costmap2D
current_
用法
参数中的标准时间单位
光线追踪参数
障碍物标记参数
恢复操作更改
默认行为树更改
NavFn 规划器参数
新的 ClearCostmapExceptRegion 和 ClearCostmapAroundRobot BT 节点
新的行为树节点
sensor_msgs/PointCloud 更改为 sensor_msgs/PointCloud2
ControllerServer 新参数 Failure_tolerance
删除了 BT XML 启动配置
Nav2 RViz 面板操作反馈信息
Galactic to Humble
Smac Planner 的重大改进
Simple (Python) Commander
Reduce Nodes and Executors
API Change for nav2_core
扩展 BtServiceNode 来处理服务结果
包括新的旋转垫片控制器插件
Spawning the robot in Gazebo
恢复行为超时
3 个 2D 规划器的新参数“use_final_approach_orientation”
SmacPlanner2D 和 Theta*:修复被忽略的目标方向
SmacPlanner2D、NavFn 和 Theta*:修复小路径角点情况
更改并修复动态参数变化检测的行为
动态参数
BT 动作节点异常更改
BT 导航器 Groot 多个导航器
删除了 RPP 中的运动限制
添加了更平滑的任务服务器
删除了 RPP 中的使用接近速度缩放参数
将 AMCL 运动模型重构为插件
放弃对 Nav2 的实时 Groot 监控的支持
仅当路径无效时才重新规划
修复 CostmapLayer clearArea 反转参数逻辑
动态组合
BT 取消节点
BT PathLongerOnApproach 节点
BT TruncatePathLocal 节点
约束平滑器
以恒定速率重新规划,如果路径无效
欧几里得距离 2D
恢复到行为
Launch 和 Lifecycle Manager 中的重生支持
新的 Nav2 速度平滑器
目标检查器 API 已更改
添加了辅助遥操作
从 Humble 到 Iron
新的行为树导航器插件
添加了碰撞监视器
从 yaml 中删除了 use_sim_time
Smac Planner 的运行时加速
Smac 和简单平滑器的递归细化
简单指挥官 Python API
Smac Planner 起始姿势包含在路径中
扩展规划器基准测试
Smac Planner 路径公差
costmap_2d_node 默认构造函数
导航失败的反馈
成本图过滤器
Savitzky-Golay 平滑器
Launch 中 map_server 节点的 Map yaml 文件路径更改
SmootherSelector BT 节点
发布 Costmap 图层
授予行为服务器访问两个 Costmap 的权限
新型模型预测路径积分控制器
行为树使用错误代码
从 RViz 中的 Nav2 面板加载、保存和循环航点
DWB 正向与反向修剪
对长前瞻距离的曲线进行更稳定的调节
发布碰撞监视器状态
在碰撞监视器中重命名 ROS 参数
碰撞监视器中的新安全行为模型“限制”
速度平滑器在超时时应用减速
PoseProgressChecker 插件
允许多个目标检查器并更改参数progress_checker_plugin的名称和类型
IsBatteryChargingCondition BT 节点
行为服务器错误代码
新的 Denoise Costmap Layer 插件
SmacPlannerHybrid viz_expansions 参数
Iron 到 Jazzy
BehaviorTree.CPP 升级到版本 4.5+
为命令添加了 TwistStamped 选项
在碰撞监视器中添加 VelocityPolygon
在碰撞监视器中更改多边形点参数格式
软实时操作服务器简介
“opennav_coverage”项目
opennav_docking
项目
引入新的多机器人启动
体素和障碍物层的新选项
use_interpolation RPP 参数已弃用
对 MPPI 目标评论家的更改
MPPI 路径角度评价器的变化
MPPI 路径处理的方向性变化
添加新的 MPPI 成本评论器
MPPI 加速
移动错误代码枚举
参数文件中的替换
允许行为服务器插件访问操作结果
Smac Planner 调试参数名称更改
Smac Planner 接近目标捷径解决方案
添加了 GPS 航点跟随器服务器
Smac Planner Hybrid-A* 新功能
nav2_collision_monitor 中的新节点:碰撞检测器
在碰撞监视器/检测器中动态启用/禁用源/多边形
公开操作服务器的结果超时
RewrittenYaml 可以向 YAML 添加新参数
简单指挥官 API 允许多机器人命名空间
更改 wait_action 节点中的持续时间类型
当所需的转换不可用时,costmap 激活会失败
子树获得共享资源
碰撞监视器:添加了基于
source_timeout
参数的看门狗机制,具有默认阻止行为
BtActionServer:使用本机库 haltTree()
从 2 个 BT 节点中删除全局框架
CostmapUpdate.msg
的介绍
完整堆栈使用节点时钟
新的优雅运动控制器
BT Navigator 中的插件库仅包含自定义节点
用于选择规划器、控制器、目标检查器、进度检查器和平滑器的新 RViz 插件
RPP 新增可选的“interpolate_curvature_after_goal”行为,并修复“use_rotate_to_heading”和“allow_reversing”之间的冲突
GlobalPlanner 的取消检查器接口
新的 BtActionServer/BtNavigator 参数
新的碰撞监控参数
控制器的新优雅取消 API
使用双冒号 (::) 标准化插件命名
碰撞监视器:圆形多边形的动态半径
静态层:新参数“footprint_clearing_enabled”
生命周期节点:添加了 bond_heartbeat_period 参数(并允许禁用债券机制)
旋转垫片控制器:新参数“rotate_to_goal_heading”
MPPI 控制器:增加加速度约束
RegulatedPurePursuit 控制器 [RPP]:新参数
use_cancel_deceleration
Jazzy 到 K-Turtle
新的 Nav2 环回模拟器
使用静态基础设施或动态对接进行对接
用于对接的新 RViz 面板
新的 BT 节点
用于成本图成本单元检查的新 RViz 工具
修复闪烁可视化
通过 DWB 轨迹限制速度的选项
在目标退出时禁用零速度发布的选项
Simple Commander API
概述
Commander API
Costmap API
Footprint Collision Checker API
示例和演示
Roadmaps
Jazzy Roadmap
Iron Roadmap
Humble Roadmap
关于和联系方式
Related Projects
关于
联系方式
Nav2
Edit
常规教程
常规教程
Nav2 Tutorials
使用物理 Turtlebot 3 进行导航
(SLAM)边导航边建图
(STVL)使用外部 Costmap 插件
使用 GPS 定位导航
Groot - 与行为树交互
使用 VIO 增强机器人里程计
动态物体跟踪
使用禁区导航
限速导航
使用对接服务器
使用旋转垫片控制器
为 BT 添加平滑器
使用碰撞监视器
添加新的 Nav2 任务服务器
过滤噪声引起的障碍物
相机校准
在 ROS 2/Nav2 中获取 Backtrace
ROS 2 / Nav2 中的分析
Docker 开发:从零到英雄