Files
Main/99 Work/0 OneSec/OneSecNotes/Excalidraw/Drawing 2023-10-16 13.55.10.excalidraw.md

32 KiB

excalidraw-plugin, tags
excalidraw-plugin tags
parsed
excalidraw

==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==

Text Elements

NAV2 - Overview ^JsDombUQ

  • Responsible for Launch system only
  • pure python
  • is used in other modules for easier launch file use
  • cmake definition nav2_package(): that does some general configuration that applies to all packages ^f9wBEyOa

NAV2_common ^mggxSBzP

  • Defines a lot of behaviors (bt-nodes) if they
    inherit from BtActionNode a ROS Action client is created internally --> thus the action server needs to be running

  • Instead of an Action some nodes create a service client

  • implements abstract base classes to combine ROS and the behaviortree_cpp library

  • C++ template class for integrating ROS2 actions and services into behavior trees

  • navigation-specific behavior tree nodes

  • and behaviorTreeEngine class that simplifies integration of BT processing into ROS2 nodes

  • provides basic nodes that are used to build more complex trees.

NAV2 Dependencies:

  • nav2_common
  • nav2_msgs
  • nav2_util ^8hnwWxhx

NAV2_behavior_tree ^tf69VvSg

  • This uses timed_behavior.hpp and to implement a variety of behaviors (such as Spin, wait, drive_on_heading, etc) as plugins
  • Makes an executable called behavior_server that loads those plugins and configures them.
  • configuration includes sharing the node pointer, collision_checkers, TF2, etc. and then creating the action_server that is a derivative of SimpleActionServer which finally creates the ros_action_server

Main Jobs:

  • inherit from timed_behavior
  • implement onRun and onCycleUpdate ^xNoFXd9Y

NAV2_behaviors ^E8VjyZYw

  • node: get Node shared pointer
  • bt_loop_duration
  • server_timeout
  • number_recoveries
  • error_code
  • error_codes
  • tf_buffer
  • goal
  • goals
  • updated_goal
  • initial_pose_received
  • odom_smoother: shared Pointer
  • on_cancelled_triggered
  • start
  • unsmoothed_path
  • path
  • truncated_path
  • selected_controller
  • selected_goal_checker
  • selected_planner
  • selected_smoother
  • pose
  • goals_blackboard_id
  • path_blackboard_id ^0AogytNB

Blackboard ^OAihEFVF

  • defines abstract behavior (for the plugin-lib) --> this allows to load plugins dynamically

  • implements BehaviorTreeNavigator which is a base class for different navigators such as navigate_to_pose.hpp ^T3TFXKwp

NAV2_core ^kwnDEyDS

  • utility functions that are used all over the nav2 library such as:

  • lifecycle_node and utils

  • odometry_utils: OdomSmoother

  • simple_action_server

  • node_utils: parameter handling, name handling

  • node_thread: abstract the executor and thread logic ^6SHkAk3K

NAV2_util ^o8Xh22PA

%%

Drawing

{
	"type": "excalidraw",
	"version": 2,
	"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.9.20",
	"elements": [
		{
			"type": "text",
			"version": 103,
			"versionNonce": 530849298,
			"isDeleted": false,
			"id": "JsDombUQ",
			"fillStyle": "hachure",
			"strokeWidth": 1,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -238.14379924388027,
			"y": -1272.823195427998,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "transparent",
			"width": 290.3040771484375,
			"height": 45,
			"seed": 411217839,
			"groupIds": [],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697638669320,
			"link": null,
			"locked": false,
			"fontSize": 36,
			"fontFamily": 1,
			"text": "NAV2 - Overview",
			"rawText": "NAV2 - Overview",
			"textAlign": "left",
			"verticalAlign": "top",
			"containerId": null,
			"originalText": "NAV2 - Overview",
			"lineHeight": 1.25,
			"baseline": 31
		},
		{
			"type": "rectangle",
			"version": 231,
			"versionNonce": 372570241,
			"isDeleted": false,
			"id": "ni5jRTRIy3J7C3gLIc67P",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2119.4828491578237,
			"y": -417.74757883432164,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 657.2672119140628,
			"height": 391,
			"seed": 180277313,
			"groupIds": [
				"D-WaXPpDbUunqY_LSY0sU"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "f9wBEyOa"
				},
				{
					"id": "F7YkMEx2pNcW_BqazeBQJ",
					"type": "arrow"
				}
			],
			"updated": 1697552995642,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 435,
			"versionNonce": 1506171937,
			"isDeleted": false,
			"id": "f9wBEyOa",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2114.4828491578237,
			"y": -412.74757883432164,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 642.345458984375,
			"height": 380.59504735984063,
			"seed": 769466401,
			"groupIds": [
				"D-WaXPpDbUunqY_LSY0sU"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697552995643,
			"link": null,
			"locked": false,
			"fontSize": 27.679639807988412,
			"fontFamily": 1,
			"text": "\n\n\n\n- Responsible for Launch system only\n- pure python\n- is used in other modules for easier launch \nfile use\n- cmake definition nav2_package(): that does \nsome general configuration that applies to all \npackages",
			"rawText": "\n\n\n\n- Responsible for Launch system only\n- pure python\n- is used in other modules for easier launch file use\n- cmake definition nav2_package(): that does some general configuration that applies to all packages",
			"textAlign": "left",
			"verticalAlign": "top",
			"containerId": "ni5jRTRIy3J7C3gLIc67P",
			"originalText": "\n\n\n\n- Responsible for Launch system only\n- pure python\n- is used in other modules for easier launch file use\n- cmake definition nav2_package(): that does some general configuration that applies to all packages",
			"lineHeight": 1.25,
			"baseline": 370
		},
		{
			"type": "rectangle",
			"version": 225,
			"versionNonce": 1875390465,
			"isDeleted": false,
			"id": "lQag2x--_GfPskp2twydJ",
			"fillStyle": "solid",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2025.4800646201675,
			"y": -372.62628201398684,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 475.27782788912117,
			"height": 60.16175914892063,
			"seed": 476476417,
			"groupIds": [
				"D-WaXPpDbUunqY_LSY0sU"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "mggxSBzP"
				}
			],
			"updated": 1697552995643,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 201,
			"versionNonce": 2088586254,
			"isDeleted": false,
			"id": "mggxSBzP",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -1906.9919227703335,
			"y": -364.7879701423744,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 238.30154418945312,
			"height": 44.48513540569566,
			"seed": 978996193,
			"groupIds": [
				"D-WaXPpDbUunqY_LSY0sU"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697632400087,
			"link": null,
			"locked": false,
			"fontSize": 35.58810832455653,
			"fontFamily": 1,
			"text": "NAV2_common",
			"rawText": "NAV2_common",
			"textAlign": "center",
			"verticalAlign": "middle",
			"containerId": "lQag2x--_GfPskp2twydJ",
			"originalText": "NAV2_common",
			"lineHeight": 1.25,
			"baseline": 31
		},
		{
			"type": "rectangle",
			"version": 211,
			"versionNonce": 749587982,
			"isDeleted": false,
			"id": "KEUYcyw5SvwHkR6c8CwbR",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -960.2900423040057,
			"y": -495.6451738108618,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"width": 657.2672119140628,
			"height": 875,
			"seed": 1519701217,
			"groupIds": [
				"onFKfS6cGf_CipiWzcx_K"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "8hnwWxhx"
				},
				{
					"id": "F7YkMEx2pNcW_BqazeBQJ",
					"type": "arrow"
				}
			],
			"updated": 1697633003717,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 1173,
			"versionNonce": 1590395918,
			"isDeleted": false,
			"id": "8hnwWxhx",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -955.2900423040057,
			"y": -490.6451738108618,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"width": 644.83447265625,
			"height": 864.9887439996379,
			"seed": 1460308161,
			"groupIds": [
				"onFKfS6cGf_CipiWzcx_K"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697633007101,
			"link": null,
			"locked": false,
			"fontSize": 27.679639807988412,
			"fontFamily": 1,
			"text": "\n\n\n\n- Defines a lot of behaviors (bt-nodes) if they\n      inherit from BtActionNode a ROS Action \n      client is created internally --> thus the \n      action server needs to be running\n- Instead of an Action some nodes create a \nservice client\n\n- implements abstract base classes to combine\nROS and the behaviortree_cpp library\n- C++ template class for integrating ROS2 \nactions and services into behavior trees\n- navigation-specific behavior tree nodes\n- and behaviorTreeEngine class that simplifies \nintegration of BT processing into ROS2 nodes\n- provides basic nodes that are used to build \nmore complex trees.\n\nNAV2 Dependencies:\n- nav2_common\n- nav2_msgs\n- nav2_util",
			"rawText": "\n\n\n\n- Defines a lot of behaviors (bt-nodes) if they  \n      inherit from BtActionNode a ROS Action \n      client is created internally --> thus the \n      action server needs to be running\n- Instead of an Action some nodes create a service client\n\n- implements abstract base classes to combine ROS and the behaviortree_cpp library\n- C++ template class for integrating ROS2 actions and services into behavior trees\n- navigation-specific behavior tree nodes\n- and behaviorTreeEngine class that simplifies integration of BT processing into ROS2 nodes\n- provides basic nodes that are used to build more complex trees.\n\nNAV2 Dependencies:\n- nav2_common\n- nav2_msgs\n- nav2_util",
			"textAlign": "left",
			"verticalAlign": "top",
			"containerId": "KEUYcyw5SvwHkR6c8CwbR",
			"originalText": "\n\n\n\n- Defines a lot of behaviors (bt-nodes) if they  \n      inherit from BtActionNode a ROS Action \n      client is created internally --> thus the \n      action server needs to be running\n- Instead of an Action some nodes create a service client\n\n- implements abstract base classes to combine ROS and the behaviortree_cpp library\n- C++ template class for integrating ROS2 actions and services into behavior trees\n- navigation-specific behavior tree nodes\n- and behaviorTreeEngine class that simplifies integration of BT processing into ROS2 nodes\n- provides basic nodes that are used to build more complex trees.\n\nNAV2 Dependencies:\n- nav2_common\n- nav2_msgs\n- nav2_util",
			"lineHeight": 1.25,
			"baseline": 854
		},
		{
			"type": "rectangle",
			"version": 189,
			"versionNonce": 2042461601,
			"isDeleted": false,
			"id": "1_8a8SVizX67iEu8Jqwg7",
			"fillStyle": "solid",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -865.1229810107718,
			"y": -450.523876990527,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"width": 475.27782788912117,
			"height": 60.16175914892063,
			"seed": 1495124129,
			"groupIds": [
				"onFKfS6cGf_CipiWzcx_K"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "tf69VvSg"
				}
			],
			"updated": 1697534042616,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 185,
			"versionNonce": 392110465,
			"isDeleted": false,
			"id": "tf69VvSg",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -809.14538298418,
			"y": -442.68556511891455,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"width": 363.3226318359375,
			"height": 44.48513540569566,
			"seed": 1518210177,
			"groupIds": [
				"onFKfS6cGf_CipiWzcx_K"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697534042616,
			"link": null,
			"locked": false,
			"fontSize": 35.58810832455653,
			"fontFamily": 1,
			"text": "NAV2_behavior_tree",
			"rawText": "NAV2_behavior_tree",
			"textAlign": "center",
			"verticalAlign": "middle",
			"containerId": "1_8a8SVizX67iEu8Jqwg7",
			"originalText": "NAV2_behavior_tree",
			"lineHeight": 1.25,
			"baseline": 31
		},
		{
			"type": "arrow",
			"version": 210,
			"versionNonce": 1819947918,
			"isDeleted": false,
			"id": "F7YkMEx2pNcW_BqazeBQJ",
			"fillStyle": "solid",
			"strokeWidth": 1,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -1447.4869424639528,
			"y": -198.30545889543006,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 478.50728449205735,
			"height": 385.83333966526243,
			"seed": 583248335,
			"groupIds": [],
			"frameId": null,
			"roundness": {
				"type": 2
			},
			"boundElements": [],
			"updated": 1697638678029,
			"link": null,
			"locked": false,
			"startBinding": {
				"elementId": "ni5jRTRIy3J7C3gLIc67P",
				"gap": 14.728694779807938,
				"focus": -0.5492459933050143
			},
			"endBinding": {
				"elementId": "KEUYcyw5SvwHkR6c8CwbR",
				"gap": 8.68961566788954,
				"focus": -0.7369054543013757
			},
			"lastCommittedPoint": null,
			"startArrowhead": null,
			"endArrowhead": "arrow",
			"points": [
				[
					0,
					0
				],
				[
					478.50728449205735,
					385.83333966526243
				]
			]
		},
		{
			"type": "rectangle",
			"version": 278,
			"versionNonce": 977116366,
			"isDeleted": false,
			"id": "5S3qQPV9l5RQjbp9Ek-lQ",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -958.1122816013597,
			"y": 426.73043101308076,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"width": 657.2672119140628,
			"height": 633,
			"seed": 715726994,
			"groupIds": [
				"R-Pj_RQLVZWtnimlZ16ZB"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "xNoFXd9Y"
				}
			],
			"updated": 1697637684498,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 1443,
			"versionNonce": 1889784338,
			"isDeleted": false,
			"id": "xNoFXd9Y",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -953.1122816013597,
			"y": 431.73043101308076,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"width": 643.3411865234375,
			"height": 622.7918956797392,
			"seed": 1838890578,
			"groupIds": [
				"R-Pj_RQLVZWtnimlZ16ZB"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697637708329,
			"link": null,
			"locked": false,
			"fontSize": 27.679639807988412,
			"fontFamily": 1,
			"text": "\n\n\n\n- This uses timed_behavior.hpp and to \nimplement a variety of behaviors (such as Spin,\nwait, drive_on_heading, etc) as plugins\n- Makes an executable called behavior_server\nthat loads those plugins and configures them. \n- configuration includes sharing the node \npointer, collision_checkers, TF2, etc. and then \ncreating the action_server that is a \nderivative of SimpleActionServer which finally \ncreates the ros_action_server\n\nMain Jobs:\n- inherit from timed_behavior\n- implement onRun and onCycleUpdate",
			"rawText": "\n\n\n\n- This uses timed_behavior.hpp and to implement a variety of behaviors (such as Spin, wait, drive_on_heading, etc) as plugins\n- Makes an executable called behavior_server that loads those plugins and configures them. \n- configuration includes sharing the node pointer, collision_checkers, TF2, etc. and then creating the action_server that is a derivative of SimpleActionServer which finally creates the ros_action_server\n\nMain Jobs:\n- inherit from timed_behavior\n- implement onRun and onCycleUpdate",
			"textAlign": "left",
			"verticalAlign": "top",
			"containerId": "5S3qQPV9l5RQjbp9Ek-lQ",
			"originalText": "\n\n\n\n- This uses timed_behavior.hpp and to implement a variety of behaviors (such as Spin, wait, drive_on_heading, etc) as plugins\n- Makes an executable called behavior_server that loads those plugins and configures them. \n- configuration includes sharing the node pointer, collision_checkers, TF2, etc. and then creating the action_server that is a derivative of SimpleActionServer which finally creates the ros_action_server\n\nMain Jobs:\n- inherit from timed_behavior\n- implement onRun and onCycleUpdate",
			"lineHeight": 1.25,
			"baseline": 612
		},
		{
			"type": "rectangle",
			"version": 255,
			"versionNonce": 396050766,
			"isDeleted": false,
			"id": "UWYhpoLPkdsyW5epWFJ9X",
			"fillStyle": "solid",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -862.9452203081257,
			"y": 476.8843181699507,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"width": 475.27782788912117,
			"height": 60.16175914892063,
			"seed": 1342415890,
			"groupIds": [
				"R-Pj_RQLVZWtnimlZ16ZB"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "E8VjyZYw"
				}
			],
			"updated": 1697637684498,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 258,
			"versionNonce": 897705870,
			"isDeleted": false,
			"id": "E8VjyZYw",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -764.772096158487,
			"y": 484.72263004156315,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"width": 278.93157958984375,
			"height": 44.48513540569566,
			"seed": 467227090,
			"groupIds": [
				"R-Pj_RQLVZWtnimlZ16ZB"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697637684498,
			"link": null,
			"locked": false,
			"fontSize": 35.58810832455653,
			"fontFamily": 1,
			"text": "NAV2_behaviors",
			"rawText": "NAV2_behaviors",
			"textAlign": "center",
			"verticalAlign": "middle",
			"containerId": "UWYhpoLPkdsyW5epWFJ9X",
			"originalText": "NAV2_behaviors",
			"lineHeight": 1.25,
			"baseline": 31
		},
		{
			"type": "rectangle",
			"version": 381,
			"versionNonce": 385057298,
			"isDeleted": false,
			"id": "MU1SZzoDJ8NqAUsbqT_Yy",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -1736.9705885478247,
			"y": -1958.5075583565806,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ced4da",
			"width": 657.2672119140628,
			"height": 1014,
			"seed": 413704590,
			"groupIds": [
				"AuGp1omTzrrCCgKFdwvsD"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "0AogytNB"
				}
			],
			"updated": 1697638666917,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 1794,
			"versionNonce": 1964863442,
			"isDeleted": false,
			"id": "0AogytNB",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -1731.9705885478247,
			"y": -1953.5075583565806,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ced4da",
			"width": 450.85321044921875,
			"height": 1003.3869430395799,
			"seed": 645480398,
			"groupIds": [
				"AuGp1omTzrrCCgKFdwvsD"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697638666917,
			"link": null,
			"locked": false,
			"fontSize": 27.679639807988412,
			"fontFamily": 1,
			"text": "\n\n\n\n- node: get Node shared pointer\n- bt_loop_duration\n- server_timeout\n- number_recoveries\n- error_code\n- error_codes\n- tf_buffer\n- goal\n- goals\n- updated_goal\n- initial_pose_received\n- odom_smoother: shared Pointer\n- on_cancelled_triggered\n- start\n- unsmoothed_path\n- path\n- truncated_path\n- selected_controller\n- selected_goal_checker\n- selected_planner\n- selected_smoother\n- pose\n- goals_blackboard_id\n- path_blackboard_id\n",
			"rawText": "\n\n\n\n- node: get Node shared pointer\n- bt_loop_duration\n- server_timeout\n- number_recoveries\n- error_code\n- error_codes\n- tf_buffer\n- goal\n- goals\n- updated_goal\n- initial_pose_received\n- odom_smoother: shared Pointer\n- on_cancelled_triggered\n- start\n- unsmoothed_path\n- path\n- truncated_path\n- selected_controller\n- selected_goal_checker\n- selected_planner\n- selected_smoother\n- pose\n- goals_blackboard_id\n- path_blackboard_id\n",
			"textAlign": "left",
			"verticalAlign": "top",
			"containerId": "MU1SZzoDJ8NqAUsbqT_Yy",
			"originalText": "\n\n\n\n- node: get Node shared pointer\n- bt_loop_duration\n- server_timeout\n- number_recoveries\n- error_code\n- error_codes\n- tf_buffer\n- goal\n- goals\n- updated_goal\n- initial_pose_received\n- odom_smoother: shared Pointer\n- on_cancelled_triggered\n- start\n- unsmoothed_path\n- path\n- truncated_path\n- selected_controller\n- selected_goal_checker\n- selected_planner\n- selected_smoother\n- pose\n- goals_blackboard_id\n- path_blackboard_id\n",
			"lineHeight": 1.25,
			"baseline": 992
		},
		{
			"type": "rectangle",
			"version": 347,
			"versionNonce": 1531159954,
			"isDeleted": false,
			"id": "XNI7dhJFEGuas_jnwt-Im",
			"fillStyle": "solid",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -1642.810045321898,
			"y": -1909.3601892670176,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ced4da",
			"width": 475.27782788912117,
			"height": 60.16175914892063,
			"seed": 1696339470,
			"groupIds": [
				"AuGp1omTzrrCCgKFdwvsD"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "OAihEFVF"
				}
			],
			"updated": 1697638666917,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 358,
			"versionNonce": 1850249678,
			"isDeleted": false,
			"id": "OAihEFVF",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -1500.7692453910095,
			"y": -1901.5218773954052,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ced4da",
			"width": 191.19622802734375,
			"height": 44.48513540569566,
			"seed": 1837769806,
			"groupIds": [
				"AuGp1omTzrrCCgKFdwvsD"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697638678040,
			"link": null,
			"locked": false,
			"fontSize": 35.58810832455653,
			"fontFamily": 1,
			"text": "Blackboard",
			"rawText": "Blackboard",
			"textAlign": "center",
			"verticalAlign": "middle",
			"containerId": "XNI7dhJFEGuas_jnwt-Im",
			"originalText": "Blackboard",
			"lineHeight": 1.25,
			"baseline": 31
		},
		{
			"type": "rectangle",
			"version": 328,
			"versionNonce": 390424206,
			"isDeleted": false,
			"id": "7PvQKvbfWn_PL4-V5CU6C",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2100.5141583214563,
			"y": 440.08795984903486,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 657.2672119140628,
			"height": 633,
			"seed": 1015626002,
			"groupIds": [
				"MPDDNZh4fUrm1FpZakPJv"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "T3TFXKwp"
				}
			],
			"updated": 1697638653436,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 1728,
			"versionNonce": 523592910,
			"isDeleted": false,
			"id": "T3TFXKwp",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2095.5141583214563,
			"y": 445.08795984903486,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 645.1387939453125,
			"height": 345.9954975998551,
			"seed": 1826899666,
			"groupIds": [
				"MPDDNZh4fUrm1FpZakPJv"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697638653436,
			"link": null,
			"locked": false,
			"fontSize": 27.679639807988412,
			"fontFamily": 1,
			"text": "\n\n\n\n- defines abstract behavior (for the plugin-lib)\n--> this allows to load plugins dynamically\n\n- implements BehaviorTreeNavigator which is a \nbase class for different navigators such as \nnavigate_to_pose.hpp",
			"rawText": "\n\n\n\n- defines abstract behavior (for the plugin-lib) --> this allows to load plugins dynamically\n\n- implements BehaviorTreeNavigator which is a base class for different navigators such as navigate_to_pose.hpp",
			"textAlign": "left",
			"verticalAlign": "top",
			"containerId": "7PvQKvbfWn_PL4-V5CU6C",
			"originalText": "\n\n\n\n- defines abstract behavior (for the plugin-lib) --> this allows to load plugins dynamically\n\n- implements BehaviorTreeNavigator which is a base class for different navigators such as navigate_to_pose.hpp",
			"lineHeight": 1.25,
			"baseline": 335
		},
		{
			"type": "rectangle",
			"version": 305,
			"versionNonce": 1529948174,
			"isDeleted": false,
			"id": "8Pj3DQX5qSiSyGOFZ_rWI",
			"fillStyle": "solid",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2005.3470970282224,
			"y": 491.2483650732118,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 475.27782788912117,
			"height": 60.16175914892063,
			"seed": 35101842,
			"groupIds": [
				"MPDDNZh4fUrm1FpZakPJv"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "kwnDEyDS"
				}
			],
			"updated": 1697638678042,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 319,
			"versionNonce": 1127020110,
			"isDeleted": false,
			"id": "kwnDEyDS",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -1863.5553434230173,
			"y": 499.08667694482426,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 191.69432067871094,
			"height": 44.48513540569566,
			"seed": 1239038546,
			"groupIds": [
				"MPDDNZh4fUrm1FpZakPJv"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697638678043,
			"link": null,
			"locked": false,
			"fontSize": 35.58810832455653,
			"fontFamily": 1,
			"text": "NAV2_core",
			"rawText": "NAV2_core",
			"textAlign": "center",
			"verticalAlign": "middle",
			"containerId": "8Pj3DQX5qSiSyGOFZ_rWI",
			"originalText": "NAV2_core",
			"lineHeight": 1.25,
			"baseline": 31
		},
		{
			"type": "rectangle",
			"version": 362,
			"versionNonce": 187267794,
			"isDeleted": false,
			"id": "G6wcHtRq05f97AJ1FJUPd",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2103.8826825087135,
			"y": 1131.6962631244285,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 657.2672119140628,
			"height": 633,
			"seed": 909447890,
			"groupIds": [
				"j1mHF-SNibUSxV6wrQE8Z"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "6SHkAk3K"
				}
			],
			"updated": 1697638793711,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 2056,
			"versionNonce": 772832526,
			"isDeleted": false,
			"id": "6SHkAk3K",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2098.8826825087135,
			"y": 1136.6962631244285,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 640.658447265625,
			"height": 449.7941468798117,
			"seed": 2137974930,
			"groupIds": [
				"j1mHF-SNibUSxV6wrQE8Z"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697638894797,
			"link": null,
			"locked": false,
			"fontSize": 27.679639807988412,
			"fontFamily": 1,
			"text": "\n\n\n\n- utility functions that are used all over the \nnav2 library such as:\n\n- lifecycle_node and utils\n- odometry_utils: OdomSmoother\n- simple_action_server\n- node_utils: parameter handling, name handling\n- node_thread: abstract the executor and \nthread logic",
			"rawText": "\n\n\n\n- utility functions that are used all over the nav2 library such as:\n\n- lifecycle_node and utils\n- odometry_utils: OdomSmoother\n- simple_action_server\n- node_utils: parameter handling, name handling\n- node_thread: abstract the executor and thread logic",
			"textAlign": "left",
			"verticalAlign": "top",
			"containerId": "G6wcHtRq05f97AJ1FJUPd",
			"originalText": "\n\n\n\n- utility functions that are used all over the nav2 library such as:\n\n- lifecycle_node and utils\n- odometry_utils: OdomSmoother\n- simple_action_server\n- node_utils: parameter handling, name handling\n- node_thread: abstract the executor and thread logic",
			"lineHeight": 1.25,
			"baseline": 439
		},
		{
			"type": "rectangle",
			"version": 337,
			"versionNonce": 1975989646,
			"isDeleted": false,
			"id": "Ss8JYhupb_oenSCrW3R_c",
			"fillStyle": "solid",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -2006.3956335938178,
			"y": 1182.8566683486051,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 475.27782788912117,
			"height": 60.16175914892063,
			"seed": 912787026,
			"groupIds": [
				"j1mHF-SNibUSxV6wrQE8Z"
			],
			"frameId": null,
			"roundness": {
				"type": 3
			},
			"boundElements": [
				{
					"type": "text",
					"id": "o8Xh22PA"
				}
			],
			"updated": 1697638943023,
			"link": null,
			"locked": false
		},
		{
			"type": "text",
			"version": 361,
			"versionNonce": 178607054,
			"isDeleted": false,
			"id": "o8Xh22PA",
			"fillStyle": "hachure",
			"strokeWidth": 2,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"angle": 0,
			"x": -1857.1680737141987,
			"y": 1190.6949802202175,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#ffec99",
			"width": 176.8227081298828,
			"height": 44.48513540569566,
			"seed": 1945594898,
			"groupIds": [
				"j1mHF-SNibUSxV6wrQE8Z"
			],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1697638943023,
			"link": null,
			"locked": false,
			"fontSize": 35.58810832455653,
			"fontFamily": 1,
			"text": "NAV2_util",
			"rawText": "NAV2_util",
			"textAlign": "center",
			"verticalAlign": "middle",
			"containerId": "Ss8JYhupb_oenSCrW3R_c",
			"originalText": "NAV2_util",
			"lineHeight": 1.25,
			"baseline": 31
		}
	],
	"appState": {
		"theme": "light",
		"viewBackgroundColor": "#ffffff",
		"currentItemStrokeColor": "#1e1e1e",
		"currentItemBackgroundColor": "#ffec99",
		"currentItemFillStyle": "solid",
		"currentItemStrokeWidth": 1,
		"currentItemStrokeStyle": "solid",
		"currentItemRoughness": 1,
		"currentItemOpacity": 100,
		"currentItemFontFamily": 1,
		"currentItemFontSize": 36,
		"currentItemTextAlign": "left",
		"currentItemStartArrowhead": null,
		"currentItemEndArrowhead": "arrow",
		"scrollX": 2958.503104265647,
		"scrollY": 20.7306145680419,
		"zoom": {
			"value": 0.6558157297020568
		},
		"currentItemRoundness": "round",
		"gridSize": null,
		"gridColor": {
			"Bold": "#C9C9C9FF",
			"Regular": "#EDEDEDFF"
		},
		"currentStrokeOptions": null,
		"previousGridSize": null,
		"frameRendering": {
			"enabled": true,
			"clip": true,
			"name": true,
			"outline": true
		}
	},
	"files": {}
}

%%