{"id":3052,"date":"2025-07-24T15:14:58","date_gmt":"2025-07-24T15:14:58","guid":{"rendered":"https:\/\/learnbydoing.dev\/?p=3052"},"modified":"2026-01-19T18:05:23","modified_gmt":"2026-01-19T18:05:23","slug":"install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2","status":"publish","type":"post","link":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/","title":{"rendered":"Control Your ROS 2 Robot with Alexa"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"3052\" class=\"elementor elementor-3052\" 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\">Arduino<\/span>, <span class=\"elementor-post-info__terms-list-item\">Electronics<\/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-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 data-contrast=\"auto\">In this guide, you\u2019ll learn how to connect your ROS 2 robot to Amazon Alexa using the internet. This connection enables you to control your robot with voice commands using custom Alexa Skills, without requiring a physical Alexa device. We\u2019ll use the ASK SDK, ngrok, and ROS 2 action servers to complete the setup.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p><p><span data-contrast=\"auto\">By the end of this tutorial, you will have a working system where Alexa can trigger movements or tasks on your robot through vocal commands and cloud communication. This guide is designed for beginners and does not require prior experience with Alexa development.<\/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-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<h4 data-start=\"44\" data-end=\"77\"><strong data-start=\"44\" data-end=\"77\">Why connect Alexa to a robot?<\/strong><\/h4><p data-start=\"79\" data-end=\"448\">Connecting a robot to a voice assistant like Alexa transforms the way humans interact with machines. In industrial settings, robots are typically controlled using complex joysticks, which are effective in environments with dust, water, and strict safety standards. However, as robots increasingly enter domestic spaces, natural interfaces like voice become essential.<\/p><p data-start=\"451\" data-end=\"751\">Human-Robot Interaction (HRI) aims to make robots more intuitive and socially acceptable. Voice commands allow humans to express intentions, request tasks, and receive feedback. This not only improves usability but also opens up broader applications in healthcare, education, and personal assistance.<\/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-b800d8d elementor-widget elementor-widget-image\" data-id=\"b800d8d\" 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\/79088c8a-9bc8-4e36-bc08-772ed116a76c-1024x683.webp\" class=\"attachment-large size-large wp-image-3060\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/79088c8a-9bc8-4e36-bc08-772ed116a76c-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/79088c8a-9bc8-4e36-bc08-772ed116a76c-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/79088c8a-9bc8-4e36-bc08-772ed116a76c-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/79088c8a-9bc8-4e36-bc08-772ed116a76c-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/79088c8a-9bc8-4e36-bc08-772ed116a76c-1320x880.webp 1320w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/79088c8a-9bc8-4e36-bc08-772ed116a76c-600x400.webp 600w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/79088c8a-9bc8-4e36-bc08-772ed116a76c.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-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<h4 data-start=\"44\" data-end=\"86\"><strong data-start=\"44\" data-end=\"86\">Understanding the Alexa Skill Workflow<\/strong><\/h4><p data-start=\"88\" data-end=\"349\">An Alexa Skill defines how the voice assistant responds to specific spoken phrases. When a user speaks, Alexa maps the phrase to an intent, then sends a request to a backend service (such as a server on a PC or a robot) that processes it and returns a response.<\/p><p data-start=\"351\" data-end=\"692\">To create a functional skill, you need to define intents and sample utterances in the Alexa Developer Console. Then, a service (hosted locally or in the cloud) interprets the request and triggers the appropriate actions. The ASK SDK simplifies this process by handling request parsing, response generation, and integration with Alexa\u2019s APIs.<\/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-3115b90 elementor-widget elementor-widget-image\" data-id=\"3115b90\" 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\/e78f1bbe-7810-4c1f-9ba8-314ee5db98bb-1024x683.webp\" class=\"attachment-large size-large wp-image-3063\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/e78f1bbe-7810-4c1f-9ba8-314ee5db98bb-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/e78f1bbe-7810-4c1f-9ba8-314ee5db98bb-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/e78f1bbe-7810-4c1f-9ba8-314ee5db98bb-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/e78f1bbe-7810-4c1f-9ba8-314ee5db98bb-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/e78f1bbe-7810-4c1f-9ba8-314ee5db98bb-1320x880.webp 1320w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/e78f1bbe-7810-4c1f-9ba8-314ee5db98bb-600x400.webp 600w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/e78f1bbe-7810-4c1f-9ba8-314ee5db98bb.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<h4 data-start=\"60\" data-end=\"111\"><strong data-start=\"60\" data-end=\"109\">Step 1: configure the Alexa Developer Console<\/strong><\/h4><p data-start=\"113\" data-end=\"243\">Visit developer.amazon.com and sign in or create a free account. Once inside the Alexa Developer Console, click on &#8220;Create Skill.&#8221;<\/p><p data-start=\"247\" data-end=\"310\">Assign a name to your skill (for example, &#8220;Robot Controller&#8221;)<br \/>Choose a custom skill and provide your backend resources<br \/>Select a language (for example, English US) and click on &#8220;Create Skill&#8221;<\/p><p data-start=\"447\" data-end=\"547\" data-is-last-node=\"\" data-is-only-node=\"\">Once created, you will be guided through a setup wizard to define intents and add sample utterances.<\/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-56af73a elementor-widget elementor-widget-image\" data-id=\"56af73a\" 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\/641244bb-3db3-4fab-b46e-1b3465ab9d41-1024x683.webp\" class=\"attachment-large size-large wp-image-3064\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/641244bb-3db3-4fab-b46e-1b3465ab9d41-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/641244bb-3db3-4fab-b46e-1b3465ab9d41-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/641244bb-3db3-4fab-b46e-1b3465ab9d41-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/641244bb-3db3-4fab-b46e-1b3465ab9d41-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/641244bb-3db3-4fab-b46e-1b3465ab9d41-1320x880.webp 1320w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/641244bb-3db3-4fab-b46e-1b3465ab9d41-600x400.webp 600w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/641244bb-3db3-4fab-b46e-1b3465ab9d41.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-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<h4 data-start=\"64\" data-end=\"107\"><strong data-start=\"64\" data-end=\"105\">Step 2: create your first Alexa skill<\/strong><\/h4><p data-start=\"109\" data-end=\"190\">Using the interaction model editor, define a new intent called &#8220;MoveRobotIntent.&#8221;<\/p><ul data-start=\"192\" data-end=\"319\"><li data-start=\"192\" data-end=\"289\"><p data-start=\"194\" data-end=\"289\">Add sample phrases such as:<br data-start=\"221\" data-end=\"224\" \/>\u2022 move the robot forward<br data-start=\"250\" data-end=\"253\" \/>\u2022 turn left<br data-start=\"266\" data-end=\"269\" \/>\u2022 stop the robot<\/p><\/li><li data-start=\"291\" data-end=\"319\"><p data-start=\"293\" data-end=\"319\">Save and build the model<\/p><\/li><\/ul><p data-start=\"321\" data-end=\"465\" data-is-last-node=\"\" data-is-only-node=\"\">Then go to the &#8220;Endpoint&#8221; section and set the URL to which Alexa will send the requests. This will be the URL you will expose later using ngrok.<\/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-8e1a768 elementor-widget elementor-widget-image\" data-id=\"8e1a768\" 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=\"534\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/6b3b9f32-35e8-40ad-ad91-561a64a6cd62-1024x683.webp\" class=\"attachment-large size-large wp-image-3065\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/6b3b9f32-35e8-40ad-ad91-561a64a6cd62-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/6b3b9f32-35e8-40ad-ad91-561a64a6cd62-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/6b3b9f32-35e8-40ad-ad91-561a64a6cd62-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/6b3b9f32-35e8-40ad-ad91-561a64a6cd62-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/6b3b9f32-35e8-40ad-ad91-561a64a6cd62-1320x880.webp 1320w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/6b3b9f32-35e8-40ad-ad91-561a64a6cd62-600x400.webp 600w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/6b3b9f32-35e8-40ad-ad91-561a64a6cd62.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-16783b7 elementor-widget elementor-widget-text-editor\" data-id=\"16783b7\" 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<ul><li data-start=\"311\" data-end=\"367\"><h4 data-start=\"47\" data-end=\"89\"><strong data-start=\"47\" data-end=\"87\">Step 3: expose your robot with ngrok<\/strong><\/h4><p data-start=\"91\" data-end=\"240\">Ngrok is a tool that allows you to securely expose a local web server to the Internet. Download Ngrok from ngrok.com and run the following command:<\/p><p data-start=\"242\" data-end=\"261\"><code data-start=\"242\" data-end=\"259\">ngrok http 5000<\/code><\/p><p data-start=\"263\" data-end=\"401\" data-is-last-node=\"\" data-is-only-node=\"\">This will generate a public URL (e.g., <a class=\"\" href=\"https:\/\/abc123.ngrok.io\" target=\"_new\" rel=\"noopener\" data-start=\"302\" data-end=\"325\">https:\/\/abc123.ngrok.io<\/a>). Copy this URL and paste it into the Endpoint section of your Alexa skill.<\/p><\/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-54e00d2 elementor-widget elementor-widget-image\" data-id=\"54e00d2\" 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=\"534\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/772faee6-7056-4e31-9684-41b57f9a5007-1024x683.webp\" class=\"attachment-large size-large wp-image-3066\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/772faee6-7056-4e31-9684-41b57f9a5007-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/772faee6-7056-4e31-9684-41b57f9a5007-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/772faee6-7056-4e31-9684-41b57f9a5007-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/772faee6-7056-4e31-9684-41b57f9a5007-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/772faee6-7056-4e31-9684-41b57f9a5007-1320x880.webp 1320w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/772faee6-7056-4e31-9684-41b57f9a5007-600x400.webp 600w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/772faee6-7056-4e31-9684-41b57f9a5007.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-0887672 elementor-widget elementor-widget-text-editor\" data-id=\"0887672\" 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<ul><li data-start=\"711\" data-end=\"790\"><h4 data-start=\"47\" data-end=\"94\"><strong data-start=\"47\" data-end=\"92\">Step 4: connect to ROS 2 via a web server<\/strong><\/h4><p data-start=\"96\" data-end=\"300\">To connect Alexa to ROS 2, you will create a lightweight web server in Python or Node.js. This server listens for requests from Alexa and publishes goals to your ROS 2 action server (e.g., &#8220;task_server&#8221;).<\/p><p data-start=\"302\" data-end=\"343\">The server might include logic such as:<\/p><ul data-start=\"344\" data-end=\"526\" data-is-last-node=\"\" data-is-only-node=\"\"><li data-start=\"344\" data-end=\"397\"><p data-start=\"346\" data-end=\"397\">Parsing the intent name (e.g., &#8216;MoveRobotIntent&#8217;)<\/p><\/li><li data-start=\"398\" data-end=\"476\"><p data-start=\"400\" data-end=\"476\">Mapping to ROS 2 actions (e.g., sending a Twist message or an action goal)<\/p><\/li><li data-start=\"477\" data-end=\"526\" data-is-last-node=\"\"><p data-start=\"479\" data-end=\"526\" data-is-last-node=\"\">Responding to Alexa with a confirmation message<\/p><\/li><\/ul><\/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-073f713 elementor-widget elementor-widget-image\" data-id=\"073f713\" 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=\"534\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/52d88c96-2a7d-4639-a597-c0a21b9d58a5-1024x683.webp\" class=\"attachment-large size-large wp-image-3067\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/52d88c96-2a7d-4639-a597-c0a21b9d58a5-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/52d88c96-2a7d-4639-a597-c0a21b9d58a5-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/52d88c96-2a7d-4639-a597-c0a21b9d58a5-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/52d88c96-2a7d-4639-a597-c0a21b9d58a5-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/52d88c96-2a7d-4639-a597-c0a21b9d58a5-1320x880.webp 1320w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/52d88c96-2a7d-4639-a597-c0a21b9d58a5-600x400.webp 600w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/52d88c96-2a7d-4639-a597-c0a21b9d58a5.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-ebab863 elementor-widget elementor-widget-text-editor\" data-id=\"ebab863\" 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<ul><li data-start=\"1128\" data-end=\"1196\"><h4 data-start=\"47\" data-end=\"89\"><strong data-start=\"47\" data-end=\"87\">Step 5: test and interact with Alexa<\/strong><\/h4><p data-start=\"91\" data-end=\"206\">You can now test your Alexa skill directly in the Developer Console. Use the Alexa simulator to speak the commands.<\/p><p data-start=\"208\" data-end=\"392\">When a command is recognized, Alexa sends the intent to your server through the ngrok tunnel. Your server then sends a goal to the ROS 2 action server, triggering the robot\u2019s response.<\/p><p data-start=\"394\" data-end=\"467\" data-is-last-node=\"\" data-is-only-node=\"\">You will receive both visual and voice feedback confirming the execution.<\/p><\/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-2f54013 elementor-widget elementor-widget-image\" data-id=\"2f54013\" 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=\"534\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c979623e-8578-4b4f-b48a-5ddc9aeaa422-1024x683.webp\" class=\"attachment-large size-large wp-image-3068\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c979623e-8578-4b4f-b48a-5ddc9aeaa422-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c979623e-8578-4b4f-b48a-5ddc9aeaa422-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c979623e-8578-4b4f-b48a-5ddc9aeaa422-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c979623e-8578-4b4f-b48a-5ddc9aeaa422-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c979623e-8578-4b4f-b48a-5ddc9aeaa422-1320x880.webp 1320w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c979623e-8578-4b4f-b48a-5ddc9aeaa422-600x400.webp 600w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/c979623e-8578-4b4f-b48a-5ddc9aeaa422.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-455a2f8 elementor-widget elementor-widget-text-editor\" data-id=\"455a2f8\" 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<ul><li data-start=\"1128\" data-end=\"1196\"><h4 data-start=\"47\" data-end=\"78\"><strong data-start=\"47\" data-end=\"76\">Conclusion and Next Steps<\/strong><\/h4><p data-start=\"80\" data-end=\"229\">You have now integrated Amazon Alexa with your ROS 2 robot! Using natural voice commands, users can trigger robot actions through a cloud connection.<\/p><p data-start=\"231\" data-end=\"248\">Next, consider:<\/p><ul data-start=\"249\" data-end=\"443\"><li data-start=\"249\" data-end=\"331\"><p data-start=\"251\" data-end=\"331\">Expanding your skill with more intents (e.g., changing speed, switching modes)<\/p><\/li><li data-start=\"332\" data-end=\"393\"><p data-start=\"334\" data-end=\"393\">Hosting your server on a Raspberry Pi or a cloud platform<\/p><\/li><li data-start=\"394\" data-end=\"443\"><p data-start=\"396\" data-end=\"443\">Securing communication through authentication<\/p><\/li><\/ul><p data-start=\"445\" data-end=\"567\" data-is-last-node=\"\" data-is-only-node=\"\">In the next lesson, we\u2019ll dive deeper into writing a robust Python Flask server to handle Alexa requests more efficiently.<\/p><\/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-e25c3f4 elementor-widget elementor-widget-image\" data-id=\"e25c3f4\" 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=\"534\" src=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e3384ff-dc8c-4824-86ed-1c59389000f5-1024x683.webp\" class=\"attachment-large size-large wp-image-3069\" alt=\"\" srcset=\"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e3384ff-dc8c-4824-86ed-1c59389000f5-1024x683.webp 1024w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e3384ff-dc8c-4824-86ed-1c59389000f5-300x200.webp 300w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e3384ff-dc8c-4824-86ed-1c59389000f5-768x512.webp 768w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e3384ff-dc8c-4824-86ed-1c59389000f5-18x12.webp 18w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e3384ff-dc8c-4824-86ed-1c59389000f5-1320x880.webp 1320w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e3384ff-dc8c-4824-86ed-1c59389000f5-600x400.webp 600w, https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/8e3384ff-dc8c-4824-86ed-1c59389000f5.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\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>In this guide, you\u2019ll learn how to connect your ROS 2 robot to Amazon Alexa using the internet. This connection enables you to control your robot with voice commands using custom Alexa Skills, without requiring a physical Alexa device. We\u2019ll use the ASK SDK, ngrok, and ROS 2 action servers to complete the setup.\u00a0 By [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":3058,"comment_status":"closed","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[68,69,43],"tags":[95,94,59,84,67,83,148,151,87,82,149,66,93,92,147,150,64],"class_list":["post-3052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-electronics","category-tutorials","tag-adc","tag-analog","tag-arduino","tag-c","tag-complete","tag-cpp","tag-detection","tag-device","tag-guide","tag-ide","tag-intruder","tag-learn-by-doing","tag-resistance","tag-resistor","tag-rpi","tag-security","tag-tutorial"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Control Your ROS 2 Robot with Alexa - 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\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/\" \/>\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 guide, you\u2019ll learn how to connect your ROS 2 robot to Amazon Alexa using the internet. This connection enables you to control your robot with voice commands using custom Alexa Skills, without requiring a physical Alexa device. We\u2019ll use the ASK SDK, ngrok, and ROS 2 action servers to complete the setup.\u00a0 By [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/learnbydoing.dev\/es\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn by Doing!\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-24T15:14:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-19T18:05:23+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=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Control Your ROS 2 Robot with Alexa\",\"datePublished\":\"2025-07-24T15:14:58+00:00\",\"dateModified\":\"2026-01-19T18:05:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/\"},\"wordCount\":731,\"publisher\":{\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/es\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/learnbydoing.dev\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/aaa05196-7ec6-4688-88e2-65df6bb51b5d.webp\",\"keywords\":[\"adc\",\"analog\",\"Arduino\",\"c++\",\"complete\",\"cpp\",\"detection\",\"device\",\"Guide\",\"ide\",\"intruder\",\"learn by doing\",\"resistance\",\"resistor\",\"RPI\",\"security\",\"tutorial\"],\"articleSection\":[\"Arduino\",\"Electronics\",\"Tutorials\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/\",\"url\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/\",\"name\":\"Control Your ROS 2 Robot with Alexa - Learn by Doing!\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/learnbydoing.dev\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/aaa05196-7ec6-4688-88e2-65df6bb51b5d.webp\",\"datePublished\":\"2025-07-24T15:14:58+00:00\",\"dateModified\":\"2026-01-19T18:05:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/learnbydoing.dev\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/aaa05196-7ec6-4688-88e2-65df6bb51b5d.webp\",\"contentUrl\":\"https:\\\/\\\/learnbydoing.dev\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/aaa05196-7ec6-4688-88e2-65df6bb51b5d.webp\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/learnbydoing.dev\\\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/learnbydoing.dev\\\/es\\\/learn-by-doing-es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Control Your ROS 2 Robot with Alexa\"}]},{\"@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":"Control Your ROS 2 Robot with Alexa - 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\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/","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 guide, you\u2019ll learn how to connect your ROS 2 robot to Amazon Alexa using the internet. This connection enables you to control your robot with voice commands using custom Alexa Skills, without requiring a physical Alexa device. We\u2019ll use the ASK SDK, ngrok, and ROS 2 action servers to complete the setup.\u00a0 By [&hellip;]","og_url":"https:\/\/learnbydoing.dev\/es\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/","og_site_name":"Learn by Doing!","article_published_time":"2025-07-24T15:14:58+00:00","article_modified_time":"2026-01-19T18:05:23+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":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/#article","isPartOf":{"@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/"},"author":{"name":"","@id":""},"headline":"Control Your ROS 2 Robot with Alexa","datePublished":"2025-07-24T15:14:58+00:00","dateModified":"2026-01-19T18:05:23+00:00","mainEntityOfPage":{"@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/"},"wordCount":731,"publisher":{"@id":"https:\/\/learnbydoing.dev\/es\/#organization"},"image":{"@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/#primaryimage"},"thumbnailUrl":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/aaa05196-7ec6-4688-88e2-65df6bb51b5d.webp","keywords":["adc","analog","Arduino","c++","complete","cpp","detection","device","Guide","ide","intruder","learn by doing","resistance","resistor","RPI","security","tutorial"],"articleSection":["Arduino","Electronics","Tutorials"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/","url":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/","name":"Control Your ROS 2 Robot with Alexa - Learn by Doing!","isPartOf":{"@id":"https:\/\/learnbydoing.dev\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/#primaryimage"},"image":{"@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/#primaryimage"},"thumbnailUrl":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/aaa05196-7ec6-4688-88e2-65df6bb51b5d.webp","datePublished":"2025-07-24T15:14:58+00:00","dateModified":"2026-01-19T18:05:23+00:00","breadcrumb":{"@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/#primaryimage","url":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/aaa05196-7ec6-4688-88e2-65df6bb51b5d.webp","contentUrl":"https:\/\/learnbydoing.dev\/wp-content\/uploads\/2025\/07\/aaa05196-7ec6-4688-88e2-65df6bb51b5d.webp","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/learnbydoing.dev\/install-ubuntu-22-04-on-a-virtual-machine-with-virtualbox-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/learnbydoing.dev\/es\/learn-by-doing-es\/"},{"@type":"ListItem","position":2,"name":"Control Your ROS 2 Robot with Alexa"}]},{"@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\/3052","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=3052"}],"version-history":[{"count":27,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/posts\/3052\/revisions"}],"predecessor-version":[{"id":5723,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/posts\/3052\/revisions\/5723"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/media\/3058"}],"wp:attachment":[{"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/media?parent=3052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/categories?post=3052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/learnbydoing.dev\/es\/wp-json\/wp\/v2\/tags?post=3052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}