1161 lines
32 KiB
Markdown
1161 lines
32 KiB
Markdown
---
|
|
|
|
excalidraw-plugin: parsed
|
|
tags: [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
|
|
```json
|
|
{
|
|
"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": {}
|
|
}
|
|
```
|
|
%% |