{"id":2667,"date":"2025-07-14T15:48:43","date_gmt":"2025-07-14T15:48:43","guid":{"rendered":"https:\/\/learnbydoing.dev\/?p=2667"},"modified":"2026-01-10T22:19:54","modified_gmt":"2026-01-10T22:19:54","slug":"navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2","status":"publish","type":"post","link":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/","title":{"rendered":"Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"2667\" class=\"elementor elementor-2667\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e28ab35 e-flex e-con-boxed e-con e-parent\" data-id=\"e28ab35\" data-element_type=\"container\" data-e-type=\"container\" id=\"content\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-62ab6e3 e-con-full e-flex e-con e-child\" data-id=\"62ab6e3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62ab203 elementor-align-center elementor-widget elementor-widget-post-info\" data-id=\"62ab203\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-2c98363 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<span class=\"elementor-post-info__terms-list-item\">Linux<\/span>, <span class=\"elementor-post-info__terms-list-item\">Nav2<\/span>, <span class=\"elementor-post-info__terms-list-item\">ROS 2<\/span>, <span class=\"elementor-post-info__terms-list-item\">Tutoriales<\/span>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0650e10 e-con-full e-flex e-con e-child\" data-id=\"0650e10\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ac19582 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"ac19582\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"75\" height=\"75\" viewbox=\"0 0 75 75\" fill=\"none\"><path d=\"M74.9999 75H13.1889V73.0002H71.5859L0.460938 1.87521L1.87515 0.460999L73.0001 71.586V13.1889H74.9999V75Z\" fill=\"white\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-47aa245d e-flex e-con-boxed e-con e-parent\" data-id=\"47aa245d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c69a8e elementor-widget elementor-widget-image\" data-id=\"7c69a8e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b-1024x683.webp\" class=\"attachment-large size-large wp-image-2671\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-261c3d8 elementor-widget elementor-widget-text-editor\" data-id=\"261c3d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span class=\"TextRun SCXW241565530 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW241565530 BCX0\">In this tutorial, <\/span><span class=\"NormalTextRun SCXW241565530 BCX0\">you&#8217;ll<\/span><span class=\"NormalTextRun SCXW241565530 BCX0\"> learn how to implement waypoint-based navigation in ROS2 using the Nav2 stack, enhanced with dynamic replanning capabilities. This setup enables your robot to follow a sequence of predefined goals and recalculate the path if unexpected obstacles appear. <\/span><span class=\"NormalTextRun SCXW241565530 BCX0\">It&#8217;s<\/span><span class=\"NormalTextRun SCXW241565530 BCX0\"> ideal for autonomous patrol or area coverage in indoor environments.<\/span><\/span><span class=\"EOP SCXW241565530 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-324d52d elementor-widget elementor-widget-text-editor\" data-id=\"324d52d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 data-start=\"1857\" data-end=\"1885\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">\u00a0\ud83d\udcdd <span class=\"TextRun SCXW267512570 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW267512570 BCX0\" data-ccp-parastyle=\"heading 1\">Requirements<\/span><\/span><span class=\"EOP SCXW267512570 BCX0\" data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:480,&quot;335559739&quot;:0}\">\u00a0<\/span><\/span><\/span><\/span><\/span><\/h3><ul><li><span class=\"EOP SCXW63468378 BCX0\" data-ccp-props=\"{}\"><span class=\"TextRun SCXW17956436 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17956436 BCX0\">&#8211; ROS2 Humble or Foxy installed<\/span><\/span><span class=\"LineBreakBlob BlobObject DragDrop SCXW17956436 BCX0\"><span class=\"SCXW17956436 BCX0\">\u00a0<\/span><br class=\"SCXW17956436 BCX0\" \/><\/span><span class=\"TextRun SCXW17956436 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17956436 BCX0\">&#8211; Nav2 stack (`nav2_bringup`) configured<\/span><\/span><span class=\"LineBreakBlob BlobObject DragDrop SCXW17956436 BCX0\"><span class=\"SCXW17956436 BCX0\">\u00a0<\/span><br class=\"SCXW17956436 BCX0\" \/><\/span><span class=\"TextRun SCXW17956436 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17956436 BCX0\">&#8211; A robot simulation (e.g., TurtleBot3 in Gazebo)<\/span><\/span><span class=\"LineBreakBlob BlobObject DragDrop SCXW17956436 BCX0\"><span class=\"SCXW17956436 BCX0\">\u00a0<\/span><br class=\"SCXW17956436 BCX0\" \/><\/span><span class=\"TextRun SCXW17956436 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17956436 BCX0\">&#8211; Pre-built map and AMCL localization<\/span><\/span><span class=\"LineBreakBlob BlobObject DragDrop SCXW17956436 BCX0\"><span class=\"SCXW17956436 BCX0\">\u00a0<\/span><br class=\"SCXW17956436 BCX0\" \/><\/span><span class=\"TextRun SCXW17956436 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17956436 BCX0\">&#8211; <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW17956436 BCX0\">RViz<\/span><span class=\"NormalTextRun SCXW17956436 BCX0\"> installed for interaction<\/span><\/span><span class=\"EOP SCXW17956436 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span> <\/span><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a236fe0 elementor-widget elementor-widget-text-editor\" data-id=\"a236fe0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 aria-level=\"2\"><b><span data-contrast=\"none\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Step 1: <\/span><\/span><\/span><\/b><b><span data-contrast=\"none\">Define Waypoints<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:480,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3><p><span data-contrast=\"auto\">Create a list of waypoints in a YAML file with the format expected by `FollowWaypoints` behavior. Each waypoint should include a position (x, y) and orientation (quaternion z, w).<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p><p><b><i><span data-contrast=\"none\">Example: waypoints.yaml<\/span><\/i><\/b><span data-ccp-props=\"{&quot;335559685&quot;:936,&quot;335559737&quot;:936,&quot;335559738&quot;:200,&quot;335559739&quot;:280,&quot;335572079&quot;:4,&quot;335572080&quot;:4,&quot;335572081&quot;:12419407,&quot;469789806&quot;:&quot;single&quot;}\">\u00a0<\/span><\/p><p><span data-contrast=\"auto\">&#8211; poses:<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0 &#8211; position:<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 x: 2.0<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 y: 1.0<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 orientation:<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 z: 0.0<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 w: 1.0<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0 &#8211; position:<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 x: 0.5<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 y: 3.0<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 orientation:<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 z: 0.0<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 w: 1.0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-770de23 elementor-widget elementor-widget-image\" data-id=\"770de23\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/95bc3907-aa6b-40c6-bd83-62fa9750e793-1024x683.webp\" class=\"attachment-large size-large wp-image-2669\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/95bc3907-aa6b-40c6-bd83-62fa9750e793-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/95bc3907-aa6b-40c6-bd83-62fa9750e793-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/95bc3907-aa6b-40c6-bd83-62fa9750e793-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/95bc3907-aa6b-40c6-bd83-62fa9750e793-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/95bc3907-aa6b-40c6-bd83-62fa9750e793.webp 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e04c0ca elementor-widget elementor-widget-text-editor\" data-id=\"e04c0ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 aria-level=\"2\">\ud83d\udda5\ufe0f<b><span data-contrast=\"none\">Step 2: <\/span><\/b><b><span data-contrast=\"none\">Launch Nav2 and Load Waypoints<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:480,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3><p><span data-contrast=\"auto\">Launch your standard Nav2 bringup with the robot localized on a known map. Then use a script or custom node to load the YAML and publish goals sequentially to `FollowWaypoints` action server.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9c2b29f elementor-widget elementor-widget-image\" data-id=\"9c2b29f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/d635522c-38a7-48a0-97c7-42ac8d25b61b.webp\" title=\"d635522c-38a7-48a0-97c7-42ac8d25b61b\" alt=\"d635522c-38a7-48a0-97c7-42ac8d25b61b\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a888ec elementor-widget elementor-widget-text-editor\" data-id=\"7a888ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><span class=\"TextRun SCXW268373394 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW268373394 BCX0\" data-ccp-parastyle=\"heading 1\">Step 3: <\/span><\/span><b><span data-contrast=\"none\">Enable Dynamic Replanning<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:480,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3><p><span data-contrast=\"auto\">To ensure the robot adapts to unexpected obstacles, activate recovery and planner plugins. Make sure your `planner_server` has recovery behaviors like `Spin`, `ClearCostmap`, and the controller allows replanning.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p><p>\u00a0<\/p><p><b><i><span data-contrast=\"none\">\u00a0In your behavior tree (bt_navigator.xml):<\/span><\/i><\/b><span data-ccp-props=\"{&quot;335559685&quot;:936,&quot;335559737&quot;:936,&quot;335559738&quot;:200,&quot;335559739&quot;:280,&quot;335572079&quot;:4,&quot;335572080&quot;:4,&quot;335572081&quot;:12419407,&quot;469789806&quot;:&quot;single&quot;}\">\u00a0<\/span><\/p><p>\u00a0<\/p><p><span data-contrast=\"auto\">&lt;RecoveryNode name=&#8221;NavigateRecovery&#8221;&gt;<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0 &lt;ClearEntireCostmap\/&gt;<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0 &lt;Spin recovery_spin_1\/&gt;<\/span>\u00a0<br \/><span data-contrast=\"auto\">\u00a0 &lt;BackUp recovery_backup\/&gt;<\/span>\u00a0<br \/><span data-contrast=\"auto\">&lt;\/RecoveryNode&gt;<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3ff3efc elementor-widget elementor-widget-image\" data-id=\"3ff3efc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"533\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c592d164-8295-4fa0-a0c4-b0940d8a7f34.webp\" class=\"attachment-large size-large wp-image-2670\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6fbd50c elementor-widget elementor-widget-text-editor\" data-id=\"6fbd50c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><b style=\"color: inherit; font-family: inherit; font-size: 2rem; text-wrap-mode: initial;\"><span data-contrast=\"none\">\ud83d\udee0\ufe0f<\/span><\/b><b><span data-contrast=\"none\">Step 4: <\/span><\/b><b><span data-contrast=\"none\">Test the Patrol Behavior<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:480,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3><p><span data-contrast=\"auto\">Place a dynamic obstacle (e.g., a box) in the robot\u2019s path during navigation. Nav2 should replan or attempt a recovery behavior and continue toward the next waypoint. Observe transitions in RViz and logs.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-777cc91 elementor-widget elementor-widget-image\" data-id=\"777cc91\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/59b3fa21-8d5f-4189-a31a-51ad39d8fc22.png\" class=\"attachment-large size-large wp-image-2673\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/59b3fa21-8d5f-4189-a31a-51ad39d8fc22.png 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/59b3fa21-8d5f-4189-a31a-51ad39d8fc22-300x300.png 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/59b3fa21-8d5f-4189-a31a-51ad39d8fc22-150x150.png 150w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cd7b802 elementor-widget elementor-widget-text-editor\" data-id=\"cd7b802\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><b style=\"color: inherit; font-family: inherit; font-size: 2rem; text-wrap-mode: initial;\"><span data-contrast=\"none\">\ud83d\udee0\ufe0f<\/span><\/b><b><span data-contrast=\"none\">Step 5: <\/span><\/b><b><span data-contrast=\"none\">Troubleshooting<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:480,&quot;335559739&quot;:0}\">\u00a0<\/span><\/h3><p><span class=\"TextRun SCXW92770202 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><strong><span class=\"NormalTextRun SCXW92770202 BCX0\">&#8211; Waypoints not <\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW92770202 BCX0\">loading:<\/span><\/strong><\/span><\/p><p><span class=\"TextRun SCXW92770202 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW92770202 BCX0\"> check YAML structure and action interface.<\/span><\/span><span class=\"LineBreakBlob BlobObject DragDrop SCXW92770202 BCX0\"><span class=\"SCXW92770202 BCX0\">\u00a0<\/span><br class=\"SCXW92770202 BCX0\" \/><\/span><span class=\"TextRun SCXW92770202 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW92770202 BCX0\">&#8211; Robot <\/span><span class=\"NormalTextRun SCXW92770202 BCX0\">doesn&#8217;t<\/span> <span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW92770202 BCX0\">replan:<\/span><span class=\"NormalTextRun SCXW92770202 BCX0\"> verify recovery plugins are configured and active.<\/span><\/span><span class=\"LineBreakBlob BlobObject DragDrop SCXW92770202 BCX0\"><span class=\"SCXW92770202 BCX0\">\u00a0<\/span><br class=\"SCXW92770202 BCX0\" \/><\/span><span class=\"TextRun SCXW92770202 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW92770202 BCX0\"><strong>&#8211; Navigation freezes:<\/strong><\/span><\/span><\/p><p><span class=\"TextRun SCXW92770202 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW92770202 BCX0\"> look at BT logs and verify conditions for fallback nodes.<\/span><\/span><span class=\"LineBreakBlob BlobObject DragDrop SCXW92770202 BCX0\"><span class=\"SCXW92770202 BCX0\">\u00a0<\/span><br class=\"SCXW92770202 BCX0\" \/><\/span><span class=\"TextRun SCXW92770202 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW92770202 BCX0\"><strong>&#8211; Path too close to obstacle:<\/strong><\/span><\/span><\/p><p><span class=\"TextRun SCXW92770202 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW92770202 BCX0\"> adjust inflation and <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW92770202 BCX0\">costmap<\/span><span class=\"NormalTextRun SCXW92770202 BCX0\"> parameters.<\/span><\/span><span class=\"EOP SCXW92770202 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eae2940 e-con-full e-flex e-con e-parent\" data-id=\"eae2940\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4db7ad4 elementor-bg-transform elementor-bg-transform-move-left elementor-cta--layout-image-left elementor-cta--mobile-layout-image-above elementor-cta--skin-classic elementor-animated-content elementor-widget elementor-widget-call-to-action\" data-id=\"4db7ad4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/06\/odometry-control-ros.webp);\" role=\"img\" aria-label=\"odometry control ros\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h2 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tWant to learn more?\t\t\t\t\t<\/h2>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__description elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tYou can find a detailed explaination of the autonomous navigation in  the \"Self Driving and ROS  - Learn by Doing! Odometry and  Control\" course\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t<a class=\"elementor-cta__button elementor-button elementor-size-\" href=\"\" target=\"_blank\">\n\t\t\t\t\t\tEnroll Now\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-ribbon elementor-ribbon-right\">\n\t\t\t\t<div class=\"elementor-ribbon-inner\">\n\t\t\t\t\tDISCOUNT\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you&#8217;ll learn how to implement waypoint-based navigation in ROS2 using the Nav2 stack, enhanced with dynamic replanning capabilities. This setup enables your robot to follow a sequence of predefined goals and recalculate the path if unexpected obstacles appear. It&#8217;s ideal for autonomous patrol or area coverage in indoor environments.\u00a0 \u00a0\ud83d\udcdd Requirements\u00a0 &#8211; [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":2671,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[47,49,45,43],"tags":[180,211,219,172,179,74,212,182,181,213,216,220,100,214,71,217,218,215,222,73,221],"class_list":["post-2667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-nav2","category-ros-2","category-tutorials","tag-amc","tag-come-inviare-piu-obiettivi-in-ros2","tag-comportamenti-di-ripristino-ros2-nav2","tag-imparare-facendo","tag-lbd","tag-linux","tag-missione-waypoint-nav2-ros2","tag-move_base","tag-nav","tag-navigazione","tag-pattuglia-autonoma-ros2","tag-ripianificazione-dinamica-della-navigazione-ros2","tag-robot","tag-robot-di-pattuglia-con-nav2-ros2","tag-ros","tag-ros2-modifica-obiettivo-durante-la-navigazione","tag-seguire-waypoint-ros2","tag-sistema-operativo-robot","tag-tutorial-sulla-navigazione-waypoint-ros2","tag-ubuntu","tag-waypoint-di-navigazione-ros2-yaml"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2 - Learn by Doing!<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/learnbydoing.dev\/es\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Installing ROS 2 Jazzy on Ubuntu 24.04: Step-by-Step Tutorial\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, you&#8217;ll learn how to implement waypoint-based navigation in ROS2 using the Nav2 stack, enhanced with dynamic replanning capabilities. This setup enables your robot to follow a sequence of predefined goals and recalculate the path if unexpected obstacles appear. It&#8217;s ideal for autonomous patrol or area coverage in indoor environments.\u00a0 \u00a0\ud83d\udcdd Requirements\u00a0 &#8211; [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/learnbydoing.dev\/es\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn by Doing!\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-14T15:48:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-10T22:19:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/06\/Progetto-senza-titolo-14.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2\",\"datePublished\":\"2025-07-14T15:48:43+00:00\",\"dateModified\":\"2026-01-10T22:19:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/\"},\"wordCount\":364,\"publisher\":{\"@id\":\"https:\/\/learnbydoing.dev\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp\",\"keywords\":[\"amc\",\"come inviare pi\u00f9 obiettivi in ros2\",\"comportamenti di ripristino ros2 nav2\",\"imparare facendo\",\"lbd\",\"Linux\",\"missione waypoint nav2 ros2\",\"move_base\",\"nav\",\"navigazione\",\"pattuglia autonoma ros2\",\"ripianificazione dinamica della navigazione ros2\",\"robot\",\"robot di pattuglia con nav2 ros2\",\"ROS\",\"ros2 modifica obiettivo durante la navigazione\",\"seguire waypoint ros2\",\"sistema operativo robot\",\"tutorial sulla navigazione waypoint ros2\",\"Ubuntu\",\"waypoint di navigazione ros2 yaml\"],\"articleSection\":[\"Linux\",\"Nav2\",\"ROS 2\",\"Tutorials\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/\",\"url\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/\",\"name\":\"Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2 - Learn by Doing!\",\"isPartOf\":{\"@id\":\"https:\/\/learnbydoing.dev\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp\",\"datePublished\":\"2025-07-14T15:48:43+00:00\",\"dateModified\":\"2026-01-10T22:19:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#primaryimage\",\"url\":\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp\",\"contentUrl\":\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/learnbydoing.dev\/es\/learn-by-doing-es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/learnbydoing.dev\/es\/#website\",\"url\":\"https:\/\/learnbydoing.dev\/es\/\",\"name\":\"Learn by Doing!\",\"description\":\"Learn Robotics the fun way\",\"publisher\":{\"@id\":\"https:\/\/learnbydoing.dev\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/learnbydoing.dev\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/learnbydoing.dev\/es\/#organization\",\"name\":\"Learn by Doing!\",\"url\":\"https:\/\/learnbydoing.dev\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/learnbydoing.dev\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/06\/cropped-cropped-cropped-Progetto-senza-titolo-6-1.png\",\"contentUrl\":\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/06\/cropped-cropped-cropped-Progetto-senza-titolo-6-1.png\",\"width\":512,\"height\":512,\"caption\":\"Learn by Doing!\"},\"image\":{\"@id\":\"https:\/\/learnbydoing.dev\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/antonio-brandi-512166bb\/\"]},{\"@type\":\"Person\",\"@id\":\"\",\"url\":\"https:\/\/learnbydoing.dev\/es\/author\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2 - Learn by Doing!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/learnbydoing.dev\/es\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/","og_locale":"es_ES","og_type":"article","og_title":"Installing ROS 2 Jazzy on Ubuntu 24.04: Step-by-Step Tutorial","og_description":"In this tutorial, you&#8217;ll learn how to implement waypoint-based navigation in ROS2 using the Nav2 stack, enhanced with dynamic replanning capabilities. This setup enables your robot to follow a sequence of predefined goals and recalculate the path if unexpected obstacles appear. It&#8217;s ideal for autonomous patrol or area coverage in indoor environments.\u00a0 \u00a0\ud83d\udcdd Requirements\u00a0 &#8211; [&hellip;]","og_url":"https:\/\/learnbydoing.dev\/es\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/","og_site_name":"Learn by Doing!","article_published_time":"2025-07-14T15:48:43+00:00","article_modified_time":"2026-01-10T22:19:54+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/06\/Progetto-senza-titolo-14.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#article","isPartOf":{"@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/"},"author":{"name":"","@id":""},"headline":"Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2","datePublished":"2025-07-14T15:48:43+00:00","dateModified":"2026-01-10T22:19:54+00:00","mainEntityOfPage":{"@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/"},"wordCount":364,"publisher":{"@id":"https:\/\/learnbydoing.dev\/es\/#organization"},"image":{"@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#primaryimage"},"thumbnailUrl":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp","keywords":["amc","come inviare pi\u00f9 obiettivi in ros2","comportamenti di ripristino ros2 nav2","imparare facendo","lbd","Linux","missione waypoint nav2 ros2","move_base","nav","navigazione","pattuglia autonoma ros2","ripianificazione dinamica della navigazione ros2","robot","robot di pattuglia con nav2 ros2","ROS","ros2 modifica obiettivo durante la navigazione","seguire waypoint ros2","sistema operativo robot","tutorial sulla navigazione waypoint ros2","Ubuntu","waypoint di navigazione ros2 yaml"],"articleSection":["Linux","Nav2","ROS 2","Tutorials"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/","url":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/","name":"Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2 - Learn by Doing!","isPartOf":{"@id":"https:\/\/learnbydoing.dev\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#primaryimage"},"image":{"@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#primaryimage"},"thumbnailUrl":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp","datePublished":"2025-07-14T15:48:43+00:00","dateModified":"2026-01-10T22:19:54+00:00","breadcrumb":{"@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#primaryimage","url":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp","contentUrl":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e5457cc-e44c-4b91-9f73-c97dd134bb5b.webp","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/learnbydoing.dev\/navigazione-waypoint-ros2-con-ripianificazione-dinamica-tramite-nav2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/learnbydoing.dev\/es\/learn-by-doing-es\/"},{"@type":"ListItem","position":2,"name":"Navigazione waypoint ROS2 con ripianificazione dinamica tramite Nav2"}]},{"@type":"WebSite","@id":"https:\/\/learnbydoing.dev\/es\/#website","url":"https:\/\/learnbydoing.dev\/es\/","name":"Learn by Doing!","description":"Learn Robotics the fun way","publisher":{"@id":"https:\/\/learnbydoing.dev\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/learnbydoing.dev\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/learnbydoing.dev\/es\/#organization","name":"Learn by Doing!","url":"https:\/\/learnbydoing.dev\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/learnbydoing.dev\/es\/#\/schema\/logo\/image\/","url":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/06\/cropped-cropped-cropped-Progetto-senza-titolo-6-1.png","contentUrl":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/06\/cropped-cropped-cropped-Progetto-senza-titolo-6-1.png","width":512,"height":512,"caption":"Learn by Doing!"},"image":{"@id":"https:\/\/learnbydoing.dev\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/in\/antonio-brandi-512166bb\/"]},{"@type":"Person","@id":"","url":"https:\/\/learnbydoing.dev\/es\/author\/"}]}},"_links":{"self":[{"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/posts\/2667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/comments?post=2667"}],"version-history":[{"count":16,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/posts\/2667\/revisions"}],"predecessor-version":[{"id":5550,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/posts\/2667\/revisions\/5550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/media\/2671"}],"wp:attachment":[{"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/media?parent=2667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/categories?post=2667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/tags?post=2667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}