Navigation 2 Logo
latest
  • Getting Started
    • Installation
    • Running the Example
    • Navigating
  • Build and Install
    • Install
    • Build
      • For Released Distributions
        • Install ROS
        • Build Nav2
      • For Main Branch Development
        • Build ROS 2 Main
        • Build Nav2 Main
    • Docker
      • Building Docker Container
      • Using DockerHub Container
    • Generate Doxygen
    • Help
      • Build Troubleshooting Guide
        • Common Nav2 Dependencies Build Failures
        • Reporting Issue
  • Navigation Concepts
    • ROS 2
      • Action Server
      • Lifecycle Nodes and Bond
    • Behavior Trees
    • Navigation Servers
      • Planner, Controller, Smoother and Recovery Servers
      • Planners
      • Controllers
      • Behaviors
      • Smoothers
      • Waypoint Following
    • State Estimation
      • Standards
      • Global Positioning: Localization and SLAM
      • Odometry
    • Environmental Representation
      • Costmaps and Layers
      • Costmap Filters
      • Other Forms
    • Nav2 Academic Overview
  • First-Time Robot Setup Guide
    • Setting Up Transformations
      • Transforms Introduction
      • Static Transform Publisher Demo
      • Transforms in Navigation2
      • Conclusion
    • Setting Up The URDF
      • URDF and the Robot State Publisher
      • Setting Up the Environment
      • Writing the URDF
      • Build and Launch
      • Visualization using RVIZ
      • Adding Physical Properties
      • Conclusion
    • Setting Up Odometry
      • Odometry Introduction
      • Setting Up Odometry on your Robot
      • Simulating an Odometry System using Gazebo
        • Setup and Prerequisites
        • Adding Gazebo Plugins to a URDF
        • Launch and Build Files
        • Build, Run and Verification
      • Robot Localization Demo
        • Configuring Robot Localization
        • Launch and Build Files
        • Build, Run and Verification
      • Conclusion
    • Setting Up Sensors
      • Sensor Introduction
        • Common Sensor Messages
      • Simulating Sensors using Gazebo
        • Adding Gazebo Plugins to a URDF
        • Launch and Build Files
        • Build, Run and Verification
      • Mapping and Localization
      • Costmap 2D
        • Configuring nav2_costmap_2d
        • Build, Run and Verification
      • Conclusion
    • Setting Up the Robot’s Footprint
      • Footprint Introduction
      • Configuring the Robot’s Footprint
      • Build, Run and Verification
      • Visualizing Footprint in RViz
      • Conclusion
    • Setting Up Navigation Plugins
      • Planner and Controller Servers
      • Selecting the Algorithm Plugins
        • Planner Server
        • Controller Server
      • Conclusion
  • General Tutorials
    • Navigating with a Physical Turtlebot 3
      • Overview
      • Requirements
      • Tutorial Steps
        • 0- Setup Your Enviroment Variables
        • 1- Launch Turtlebot 3
        • 2- Launch Nav2
        • 3- Launch RVIZ
        • 4- Initialize the Location of Turtlebot 3
        • 5- Send a Goal Pose
    • (SLAM) Navigating While Mapping
      • Overview
      • Requirements
      • Tutorial Steps
        • 0- Launch Robot Interfaces
        • 1- Launch Navigation2
        • 2- Launch SLAM
        • 3- Working with SLAM
        • 4- Getting Started Simplification
    • (STVL) Using an External Costmap Plugin
      • Overview
      • Costmap2D and STVL
      • Tutorial Steps
        • 0- Setup
        • 1- Install STVL
        • 1- Modify Navigation2 Parameter
        • 2- Launch Navigation2
        • 3- RVIZ
    • Groot - Interacting with Behavior Trees
      • Overview
      • Visualize Behavior Trees
      • Edit Behavior Trees
      • Adding A Custom Node
    • Camera Calibration
      • Overview
      • Requirements
      • Tutorial Steps
    • Get Backtrace in ROS 2 / Nav2
      • Overview
      • Preliminaries
      • From a Node
      • From a Launch File
      • From Large Project
      • From Nav2 Bringup
      • Automatic backtrace on crash
    • Profiling in ROS 2 / Nav2
      • Overview
      • Preliminaries
      • Profile from a Node
      • Profile from a Launch File
      • From Nav2 Bringup
      • Interpreting Results
    • Dynamic Object Following
      • Overview
      • Tutorial Steps
        • 0- Create the Behavior Tree
        • 1- Setup Rviz clicked point
        • 2- Run Dynamic Object Following in Nav2 Simulation
    • Navigating with Keepout Zones
      • Overview
      • Requirements
      • Tutorial Steps
        • 1. Prepare filter mask
        • 2. Configure Costmap Filter Info Publisher Server
        • 3. Enable Keepout Filter
        • 4. Run Nav2 stack
    • Navigating with Speed Limits
      • Overview
      • Requirements
      • Tutorial Steps
        • 1. Prepare filter mask
        • 2. Configure Costmap Filter Info Publisher Server
        • 3. Enable Speed Filter
        • 4. Run Nav2 stack
    • Using Rotation Shim Controller
      • Overview
      • What is the Rotation Shim Controller?
      • Configuring Rotation Shim Controller
      • Configuring Primary Controller
      • Demo Execution
    • Adding a Smoother to a BT
      • Overview
      • Requirements
      • Tutorial Steps
        • 0- Familiarization with the Smoother BT Node
        • 1- Specifying a Smoother Plugin
        • 2- Modifying your BT XML
    • Using Collision Monitor
      • Overview
      • Requirements
      • Configuring Collision Monitor
      • Preparing Nav2 stack
      • Demo Execution
    • Adding a New Nav2 Task Server
      • Lifecycle Nodes
      • Composition
      • Error codes
      • Conclusion
  • Plugin Tutorials
    • Writing a New Costmap2D Plugin
      • Overview
      • Requirements
      • Tutorial Steps
        • 1- Write a new Costmap2D plugin
        • 2- Export and make GradientLayer plugin
        • 3- Enable the plugin in Costmap2D
        • 4- Run GradientLayer plugin
    • Writing a New Planner Plugin
      • Overview
      • Requirements
      • Tutorial Steps
        • 1- Creating a new Planner Plugin
        • 2- Exporting the planner plugin
        • 3- Pass the plugin name through params file
        • 4- Run StraightLine plugin
    • Writing a New Controller Plugin
      • Overview
      • Requirements
      • Tutorial Steps
        • 1- Create a new Controller Plugin
        • 2- Exporting the controller plugin
        • 3- Pass the plugin name through the params file
        • 4- Run Pure Pursuit Controller plugin
    • Writing a New Behavior Tree Plugin
      • Overview
      • Requirements
      • Tutorial Steps
        • 1- Creating a new BT Plugin
        • 2- Exporting the planner plugin
        • 3- Add plugin library name to config
        • 4- Run Your Custom plugin
    • Writing a New Behavior Plugin
      • Overview
      • Requirements
      • Tutorial Steps
        • 1- Creating a new Behavior Plugin
        • 2- Exporting the Behavior Plugin
        • 3- Pass the plugin name through params file
        • 4- Run Behavior Plugin
    • Writing a New Navigator Plugin
      • Overview
      • Requirements
      • Tutorial Steps
        • 1- Create a new Navigator Plugin
        • 2- Exporting the navigator plugin
        • 3- Pass the plugin name through the params file
        • 4- Run plugin
  • Configuration Guide
    • Behavior-Tree Navigator
      • Parameters
      • Example
    • Behavior Tree XML Nodes
      • Action Plugins
        • Wait
        • Spin
        • BackUp
        • DriveOnHeading
        • AssistedTeleop
        • ComputePathToPose
        • FollowPath
        • NavigateToPose
        • ClearEntireCostmap
        • ClearCostmapExceptRegion
        • ClearCostmapAroundRobot
        • ReinitializeGlobalLocalization
        • TruncatePath
        • TruncatePathLocal
        • PlannerSelector
        • ControllerSelector
        • SmootherSelector
        • GoalCheckerSelector
        • NavigateThroughPoses
        • ComputePathThroughPoses
        • RemovePassedGoals
        • CancelControl
        • CancelBackUp
        • CancelSpin
        • CancelWait
        • CancelDriveOnHeading
        • CancelAssistedTeleop
        • SmoothPath
      • Condition Plugins
        • GoalReached
        • TransformAvailable
        • DistanceTraveled
        • GoalUpdated
        • GloballyUpdatedGoal
        • InitialPoseReceived
        • IsStuck
        • TimeExpired
        • IsBatteryLow
        • IsPathValid
        • PathExpiringTimer
        • AreErrorCodesPresent
        • WouldAControllerRecoveryHelp
        • WouldAPlannerRecoveryHelp
        • WouldASmootherRecoveryHelp
      • Control Plugins
        • PipelineSequence
        • RoundRobin
        • RecoveryNode
      • Decorator Plugins
        • RateController
        • DistanceController
        • SpeedController
        • GoalUpdater
        • PathLongerOnApproach
        • SingleTrigger
      • Example
    • Costmap 2D
      • Costmap2D ROS Parameters
      • Default Plugins
      • Plugin Parameters
        • Static Layer Parameters
        • Inflation Layer Parameters
        • Obstacle Layer Parameters
        • Voxel Layer Parameters
        • Range Sensor Parameters
      • Costmap Filters Parameters
        • Keepout Filter Parameters
        • Speed Filter Parameters
        • Binary Filter Parameters
      • Example
    • Lifecycle Manager
      • Parameters
      • Example
    • Planner Server
      • Parameters
      • Default Plugins
      • Example
    • NavFn Planner
      • Parameters
      • Example
    • Smac Planner
      • Provided Plugins
        • Smac 2D Planner
        • Smac Hybrid-A* Planner
        • Smac State Lattice Planner
      • Description
    • Theta Star Planner
      • Parameters
      • Example
    • Controller Server
      • Parameters
      • Provided Plugins
        • SimpleProgressChecker
        • 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
      • Regulated Pure Pursuit Parameters
      • Example
    • Model Predictive Path Integral Controller
      • MPPI Parameters
        • Trajectory Visualization
        • Path Handler
        • Ackermann Motion Model
        • Constraint Critic
        • Goal Angle Critic
        • Goal Critic
        • Obstacles Critic
        • Path Align Critic
        • Path Angle Critic
        • Path Follow Critic
        • Prefer Forward Critic
        • Twirling Critic
      • Example
      • Notes to Users
        • General Words of Wisdom
        • Prediction Horizon, Costmap Sizing, and Offsets
        • Obstacle, Inflation Layer, and Path Following
    • Rotation Shim Controller
      • Rotation Shim Controller Parameters
      • Example
    • Map Server / Saver
      • Map Saver Parameters
      • Map Server Parameters
      • Costmap Filter Info Server Parameters
      • Example
    • AMCL
      • Parameters
      • Example
    • Behavior Server
      • Behavior Server Parameters
      • Default Plugins
      • Spin Behavior Parameters
      • BackUp Behavior Parameters
      • DriveOnHeading Behavior Parameters
      • AssistedTeleop Behavior Parameters
      • Example
    • Smoother Server
      • Smoother Server Parameters
      • Example
    • Simple Smoother
      • Simple Smoother Parameters
      • Example
    • Savitzky-Golay Smoother
      • Savitzky-Golay Smoother Parameters
      • Example
    • Constrained smoother
      • Smoother Server Parameters
      • Example
    • Velocity Smoother
      • Velocity Smoother Parameters
      • Example
    • Collision Monitor
      • Features
      • Parameters
        • Polygons parameters
        • Observation sources parameters
      • Example
    • Waypoint Follower
      • Parameters
      • Provided Plugins
        • WaitAtWaypoint
        • PhotoAtWaypoint
        • InputAtWaypoint
      • Default Plugin
      • Example
  • Tuning Guide
    • Inflation Potential Fields
    • Robot Footprint vs Radius
    • Rotate in Place Behavior
    • Planner Plugin Selection
    • Controller Plugin Selection
    • Caching Obstacle Heuristic in Smac Planners
    • Nav2 Launch Options
    • Other Pages We’d Love To Offer
  • Nav2 Behavior Trees
    • Introduction To Nav2 Specific Nodes
      • Action Nodes
      • Condition Nodes
      • Decorator Nodes
      • Control: PipelineSequence
      • Control: Recovery
      • Control: RoundRobin
    • Detailed Behavior Tree Walkthrough
      • Overview
      • Prerequisites
      • Navigate To Pose With Replanning and Recovery
      • Navigation Subtree
      • Recovery Subtree
    • Navigate To Pose
    • Navigate Through Poses
    • Navigate To Pose and Pause Near Goal-Obstacle
    • Navigate To Pose With Consistent Replanning And If Path Becomes Invalid
    • Follow Dynamic Point
    • Odometry Calibration
  • Navigation Plugins
    • Behavior-Tree Navigators
    • Costmap Layers
    • Costmap Filters
    • Controllers
    • Planners
    • Smoothers
    • Behaviors
    • Waypoint Task Executors
    • Goal Checkers
    • Progress Checkers
    • Behavior Tree Nodes
  • Migration Guides
    • Dashing to Eloquent
      • New Packages
      • New Plugins
      • Navigation2 Architectural Changes
    • Eloquent to Foxy
      • General
      • Server Updates
      • New Plugins
      • Map Server Re-Work
      • New Particle Filter Messages
      • Selection of Behavior Tree in each navigation action
      • FollowPoint Capability
      • New Costmap Layer
    • Foxy to Galactic
      • NavigateToPose Action Feedback updates
      • NavigateToPose BT-node Interface Changes
      • NavigateThroughPoses and ComputePathThroughPoses Actions Added
      • ComputePathToPose BT-node Interface Changes
      • ComputePathToPose Action Interface Changes
      • BackUp BT-node Interface Changes
      • BackUp Recovery Interface Changes
      • Nav2 Controllers and Goal Checker Plugin Interface Changes
      • FollowPath goal_checker_id attribute
      • Groot Support
      • New Plugins
      • Costmap Filters
      • SmacPlanner
      • ThetaStarPlanner
      • RegulatedPurePursuitController
      • Costmap2D current_ Usage
      • Standard time units in parameters
      • Ray Tracing Parameters
      • Obstacle Marking Parameters
      • Recovery Action Changes
      • Default Behavior Tree Changes
      • NavFn Planner Parameters
      • New ClearCostmapExceptRegion and ClearCostmapAroundRobot BT-nodes
      • New Behavior Tree Nodes
      • sensor_msgs/PointCloud to sensor_msgs/PointCloud2 Change
      • ControllerServer New Parameter failure_tolerance
      • Removed BT XML Launch Configurations
      • Nav2 RViz Panel Action Feedback Information
    • Galactic to Humble
      • Major improvements to Smac Planners
      • Simple (Python) Commander
      • Reduce Nodes and Executors
      • API Change for nav2_core
      • Extending the BtServiceNode to process Service-Results
      • Including new Rotation Shim Controller Plugin
      • Spawning the robot in Gazebo
      • Recovery Behavior Timeout
      • New parameter use_final_approach_orientation for the 3 2D planners
      • SmacPlanner2D and Theta*: fix goal orientation being ignored
      • SmacPlanner2D, NavFn and Theta*: fix small path corner cases
      • Change and fix behavior of dynamic parameter change detection
      • Dynamic Parameters
      • BT Action Nodes Exception Changes
      • BT Navigator Groot Multiple Navigators
      • Removed Kinematic Limiting in RPP
      • Added Smoother Task Server
      • Removed Use Approach Velocity Scaling Param in RPP
      • Refactored AMCL motion models as plugins
      • Dropping Support for Live Groot Monitoring of Nav2
      • Replanning Only if Path is Invalid
      • Fix CostmapLayer clearArea invert param logic
      • Dynamic Composition
      • BT Cancel Node
      • BT PathLongerOnApproach Node
      • BT TruncatePathLocal Node
      • Constrained Smoother
      • Replanning at a Constant Rate and if the Path is Invalid
      • Euclidean Distance 2D
      • Recovery To Behavior
      • Respawn Support in Launch and Lifecycle Manager
      • New Nav2 Velocity Smoother
      • Goal Checker API Changed
      • Added Assisted Teleop
    • Humble to Iron
      • New Behavior-Tree Navigator Plugins
      • Added Collision Monitor
      • Removed use_sim_time from yaml
      • Run-time Speed up of Smac Planner
      • Recursive Refinement of Smac and Simple Smoothers
      • Simple Commander Python API
      • Smac Planner Start Pose Included in Path
      • Parameterizable Collision Checking in RPP
      • Expanded Planner Benchmark Tests
      • Smac Planner Path Tolerances
      • costmap_2d_node default constructor
      • Feedback for Navigation Failures
      • Costmap Filters
      • Savitzky-Golay Smoother
      • Changes to Map yaml file path for map_server node in Launch
      • SmootherSelector BT Node
      • Publish Costmap Layers
      • Give Behavior Server Access to Both Costmaps
      • New Model Predictive Path Integral Controller
      • Behavior Tree Uses Error Codes
      • Load, Save and Loop Waypoints from the Nav2 Panel in RViz
      • DWB Forward vs Reverse Pruning
      • More stable regulation on curves for long lookahead distances
  • Simple Commander API
    • Overview
    • Commander API
    • Costmap API
    • Footprint Collision Checker API
    • Examples and Demos
  • Roadmaps
    • Iron Roadmap
    • Humble Roadmap
  • Getting Involved
    • Getting Involved
    • Process
    • Licensing
    • Developer Certification of Origin (DCO)
  • About and Contact
    • Related Projects
    • ROS to ROS 2 Navigation
    • About
    • Contact
  • Robots Using
Navigation 2
Edit
  • Navigation Plugins

Navigation Plugins¶

There are a number of plugin interfaces for users to create their own custom applications or algorithms with. Namely, the costmap layer, planner, controller, behavior tree, and behavior plugins. A list of all known plugins are listed here below for ROS 2 Navigation. If you know of a plugin, or you have created a new plugin, please consider submitting a pull request with that information.

This file can be found and editted under sphinx_docs/plugins/index.rst. For tutorials on creating your own plugins, please see Writing a New Costmap2D Plugin, Writing a New Behavior Tree Plugin, Writing a New Controller Plugin, Writing a New Planner Plugin, writing_new_recovery_plugin, or Writing a New Navigator Plugin.

Behavior-Tree Navigators¶

Plugin Name

Creator

Description

NavigateToPoseNavigator

Steve Macenski

Point-to-point navigation via a behavior tree action server

NavigateThroughPosesNavigator

Steve Macenski

Point-through-points navigation via a behavior tree action server

Costmap Layers¶

Plugin Name

Creator

Description

Voxel Layer

Eitan Marder-Eppstein

Maintains persistant 3D voxel layer using depth and laser sensor readings and raycasting to clear free space

Range Layer

David Lu

Uses a probabalistic model to put data from sensors that publish range msgs on the costmap

Static Layer

Eitan Marder-Eppstein

Gets static map and loads occupancy information into costmap

Inflation Layer

Eitan Marder-Eppstein

Inflates lethal obstacles in costmap with exponential decay

Obstacle Layer

Eitan Marder-Eppstein

Maintains persistent 2D costmap from 2D laser scans with raycasting to clear free space

Spatio-Temporal Voxel Layer

Steve Macenski

Maintains temporal 3D sparse volumetric voxel grid with decay through sensor models

Non-Persistent Voxel Layer

Steve Macenski

Maintains 3D occupancy grid consisting only of the most sets of measurements

Costmap Filters¶

Plugin Name

Creator

Description

Keepout Filter

Alexey Merzlyakov

Maintains keep-out/safety zones and preferred lanes for moving

Speed Filter

Alexey Merzlyakov

Limits maximum velocity of robot in speed restriction areas

Binary Filter

Alexey Merzlyakov

Enables binary (boolean) mask behavior to trigger actions.

Controllers¶

Plugin Name

Creator

Description

Drivetrain support

DWB Controller

David Lu!!

A highly configurable DWA implementation with plugin interfaces

Differential, Omnidirectional, Legged

TEB Controller

Christoph Rösmann

A MPC-like controller suitable for ackermann, differential, and holonomic robots.

Ackermann, Legged, Omnidirectional, Differential

Regulated Pure Pursuit

Steve Macenski

A service / industrial robot variation on the pure pursuit algorithm with adaptive features.

Ackermann, Legged, Differential

MPPI Controller

Steve Macenski Aleksei Budyakov

A predictive MPC controller with modular & custom cost functions that can accomplish many tasks.

Differential, Omni, Ackermann

Rotation Shim Controller

Steve Macenski

A “shim” controller to rotate to path heading before passing to main controller for tracking.

Differential, Omni, model rotate in place

Planners¶

Plugin Name

Creator

Description

Drivetrain support

NavFn Planner

Eitan Marder-Eppstein & Kurt Konolige

A navigation function using A* or Dijkstras expansion, assumes 2D holonomic particle

Differential, Omnidirectional, Legged

SmacPlannerHybrid

(formerly SmacPlanner)

Steve Macenski

A SE2 Hybrid-A* implementation using either Dubin or Reeds-shepp motion models with smoother and multi-resolution query. Cars, car-like, and ackermann vehicles. Kinematically feasible.

Ackermann, Differential, Omnidirectional, Legged

SmacPlanner2D

Steve Macenski

A 2D A* implementation Using either 4 or 8 connected neighborhoods with smoother and multi-resolution query

Differential, Omnidirectional, Legged

SmacPlannerLattice

Steve Macenski

An implementation of State Lattice Planner using pre-generated minimum control sets for kinematically feasible planning with any type of vehicle imaginable. Includes generator script for Ackermann, diff, omni, and legged robots.

Differential, Omnidirectional, Ackermann, Legged, Arbitrary / Custom

ThetaStarPlanner

Anshumaan Singh

An implementaion of Theta* using either 4 or 8 connected neighborhoods, assumes the robot as a 2D holonomic particle

Differential, Omnidirectional

Smoothers¶

Plugin Name

Creator

Description

Simple Smoother

Steve Macenski

A simple path smoother for infeasible (e.g. 2D) planners

Constrained Smoother

Matej Vargovcik & Steve Macenski

A path smoother using a constraints problem solver to optimize various criteria such as smoothness or distance from obstacles, maintaining minimum turning radius

Savitzky-Golay Smoother

Steve Macenski

A path smoother using a Savitzky-Golay filter to smooth the path via digital signal processing to remove noise from the path.

Behaviors¶

Plugin Name

Creator

Description

Clear Costmap

Eitan Marder-Eppstein

A service to clear the given costmap in case of incorrect perception or robot is stuck

Spin

Steve Macenski

Rotate behavior of configurable angles to clear out free space and nudge robot out of potential local failures

Back Up

Brian Wilcox

Back up behavior of configurable distance to back out of a situation where the robot is stuck

Wait

Steve Macenski

Wait behavior with configurable time to wait in case of time based obstacle like human traffic or getting more sensor data

Drive On Heading

Joshua Wallace

Drive on heading behavior with configurable distance to drive

Assisted Teleop

Joshua Wallace

AssistedTeleop behavior that scales teleop commands to prevent collisions.

Waypoint Task Executors¶

Plugin Name

Creator

Description

WaitAtWaypoint

Fetullah Atas

A plugin to execute a wait behavior on waypoint arrivals.

PhotoAtWaypoint

Fetullah Atas

A plugin to take and save photos to specified directory on waypoint arrivals.

InputAtWaypoint

Steve Macenski

A plugin to wait for user input before moving onto the next waypoint.

Goal Checkers¶

Plugin Name

Creator

Description

SimpleGoalChecker

David Lu!!

A plugin check whether robot is within translational distance and rotational distance of goal.

StoppedGoalChecker

David Lu!!

A plugin check whether robot is within translational distance , rotational distance of goal, and velocity threshold.

Progress Checkers¶

Plugin Name

Creator

Description

SimpleProgressChecker

David Lu!!

A plugin to check whether the robot was able to move a minimum distance in a given time to make progress towards a goal

Behavior Tree Nodes¶

Action Plugin Name

Creator

Description

Back Up Action

Michael Jeronimo

Calls backup behavior action

Drive On Heading Action

Joshua Wallace

Calls drive on heading behavior action

Assisted Teleop Action

Joshua Wallace

Calls assisted teleop behavior action

Clear Entire Costmap Service

Carl Delsey

Calls clear entire costmap service

Clear Costmap Except Region Service

Guillaume Doisy

Calls clear costmap except region service

Clear Costmap Around Robot Service

Guillaume Doisy

Calls clear costmap around robot service

Compute Path to Pose Action

Michael Jeronimo

Calls Nav2 planner server

Smooth Path Action

Matej Vargovcik

Calls Nav2 smoother server

Follow Path Action

Michael Jeronimo

Calls Nav2 controller server

Navigate to Pose Action

Michael Jeronimo

BT Node for other BehaviorTree.CPP BTs to call Navigation2 as a subtree action

Reinitalize Global Localization Service

Carl Delsey

Reinitialize AMCL to a new pose

Spin Action

Carl Delsey

Calls spin behavior action

Wait Action

Steve Macenski

Calls wait behavior action

Truncate Path

Francisco Martín

Modifies a path making it shorter

Truncate Path Local

Matej Vargovcik

Extracts a path section around robot

Planner Selector

Pablo Iñigo Blasco

Selects the global planner based on a topic input, otherwises uses a default planner id

Controller Selector

Pablo Iñigo Blasco

Selects the controller based on a topic input, otherwises uses a default controller id

Goal Checker Selector

Pablo Iñigo Blasco

Selects the goal checker based on a topic input, otherwises uses a default goal checker id

`Smoother Selector`_

Owen Hooper

Selects the smoother based on a topic input, otherwises uses a default smoother id

Navigate Through Poses

Steve Macenski

BT Node for other BehaviorTree.CPP BTs to call Nav2’s NavThroughPoses action

Remove Passed Goals

Steve Macenski

Removes goal poses passed or within a tolerance for culling old viapoints from path re-planning

Compute Path Through Poses

Steve Macenski

Computes a path through a set of poses rather than a single end goal pose using the planner plugin specified

Cancel Control Action

Pradheep Padmanabhan

Cancels Nav2 controller server

Cancel BackUp Action

Pradheep Padmanabhan

Cancels backup behavior action

Cancel Spin Action

Pradheep Padmanabhan

Cancels spin behavior action

Cancel Wait Action

Pradheep Padmanabhan

Cancels wait behavior action

Cancel Drive on Heading Action

Joshua Wallace

Cancels drive on heading behavior action

Cancel Assisted Teleop Action

Joshua Wallace

Cancels assisted teleop behavior action

Condition Plugin Name

Creator

Description

Goal Reached Condition

Carl Delsey

Checks if goal is reached within tol.

Goal Updated Condition

Aitor Miguel Blanco

Checks if goal is preempted.

Globally Updated Goal Condition

Joshua Wallace

Checks if goal is preempted in the global BT context

Initial Pose received Condition

Carl Delsey

Checks if initial pose has been set

Is Stuck Condition

Michael Jeronimo

Checks if robot is making progress or stuck

Transform Available Condition

Steve Macenski

Checks if a TF transformation is available. When succeeds returns success for subsequent calls.

Distance Traveled Condition

Sarthak Mittal

Checks is robot has traveled a given distance.

Time Expired Condition

Sarthak Mittal

Checks if a given time period has passed.

Is Battery Low Condition

Sarthak Mittal

Checks if battery percentage is below a specified value.

Is Path Valid Condition

Joshua Wallace

Checks if a path is valid by making sure there are no LETHAL obstacles along the path.

Path Expiring Timer

Joshua Wallace

Checks if the timer has expired. The timer is reset if the path gets updated.

Are Error Codes Present

Joshua Wallace

Checks if the specified error codes are present.

Would A Controller Recovery Help

Joshua Wallace

Checks if a controller recovery could help clear the controller server error code.

Would A Planner Recovery Help

Joshua Wallace

Checks if a planner recovery could help clear the planner server error code.

Would A Smoother Recovery Help

Joshua Wallace

Checks if a Smoother recovery could help clear the smoother server error code.

Decorator Plugin Name

Creator

Description

Rate Controller

Michael Jeronimo

Throttles child node to a given rate

Distance Controller

Sarthak Mittal

Ticks child node based on the distance traveled by the robot

Speed Controller

Sarthak Mittal

Throttles child node to a rate based on current robot speed.

Goal Updater

Francisco Martín

Updates the goal received via topic subscription.

Single Trigger

Steve Macenski

Triggers nodes/subtrees below only a single time per BT run.

PathLongerOnApproach

Pradheep Padmanabhan

Triggers child nodes if the new global path is significantly larger than the old global path on approach to the goal

Control Plugin Name

Creator

Description

Pipeline Sequence

Carl Delsey

A variant of a sequence node that will re-tick previous children even if another child is running

Recovery

Carl Delsey

Node must contain 2 children and returns success if first succeeds. If first fails, the second will be ticked. If successful, it will retry the first and then return its value

Round Robin

Mohammad Haghighipanah

Will tick i th child until a result and move on to i+1


© Copyright 2020.