{"id":598,"date":"2026-05-04T05:31:42","date_gmt":"2026-05-04T05:31:42","guid":{"rendered":"https:\/\/giatec.io\/aizuhand\/?page_id=598"},"modified":"2026-05-14T06:43:56","modified_gmt":"2026-05-14T06:43:56","slug":"nexus-initialization","status":"publish","type":"page","link":"https:\/\/giatec.io\/aizuhand\/index.php\/nexus-initialization\/","title":{"rendered":"Initialization\/Setup phase"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Module 0: SDK Philosophy &#038; Initialization | NHURO Nexus<\/title>\n    <style>\n        :root {\n            --primary: #2c3e50;\n            --secondary: #9b59b6; \n            --info: #34495e;\n            --code-bg: #1e1e1e;\n            --warning: #e67e22;\n            --sdk-blue: #2980b9;\n            --folder-green: #27ae60;\n            --terminal-gray: #f8f9fa;\n        }\n        body { font-family: 'Segoe UI', sans-serif; line-height: 1.6; color: #333; background: #fdfdfd; margin: 0; padding: 0; }\n        .header { background: var(--primary); color: white; padding: 40px 20px; text-align: center; border-bottom: 5px solid var(--secondary); }\n        .container { max-width: 900px; margin: 20px auto; padding: 20px; background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }\n        .philosophy-box { background: #ebf5fb; border-left: 5px solid var(--sdk-blue); padding: 15px; margin: 20px 0; }\n        .unix-lesson { background: #f4ecf7; border-left: 5px solid var(--secondary); padding: 15px; margin: 20px 0; }\n        h2 { color: var(--secondary); border-bottom: 2px solid #eee; padding-bottom: 10px; }\n        h3 { color: var(--primary); margin-top: 25px; }\n        .terminal { background: #000; color: #00ff00; padding: 15px; border-radius: 5px; font-family: 'Courier New', monospace; margin-bottom: 10px; }\n        .file-tree { background: #f8f9fa; border: 1px solid #ddd; padding: 15px; font-family: 'Courier New', monospace; font-size: 0.85em; color: #333; line-height: 1.3; }\n        .highlight-edit { color: #e74c3c; font-weight: bold; }\n        .dim-ignore { color: #999; }\n        .method-tab { border-top: 2px dashed #ccc; padding-top: 20px; margin-top: 20px; }\n        .pre-build-map { border: 2px solid var(--folder-green); border-radius: 6px; padding: 15px; background: #f0fff4; margin: 15px 0; }\n        .analogy-list { list-style: none; padding-left: 0; }\n        .analogy-list li { margin-bottom: 10px; padding-left: 20px; border-left: 3px solid var(--sdk-blue); }\n        \n        \/* New Table Styling for Philosophy *\/\n        .philosophy-table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 0.9em; }\n        .philosophy-table th { background: var(--primary); color: white; padding: 10px; text-align: left; }\n        .philosophy-table td { border: 1px solid #ddd; padding: 10px; vertical-align: top; }\n        .philosophy-table tr:nth-child(even) { background-color: #f2f2f2; }\n    <\/style>\n<\/head>\n<body>\n\n<div class=\"header\">\n    <h1>Module 0: The NHURO SDK &#038; System Setup<\/h1>\n    <p>Understanding the &#8220;Why&#8221; before the &#8220;How&#8221;<\/p>\n<\/div>\n\n<div class=\"container\">\n    \n    <div class=\"philosophy-box\">\n        <h2>1. What is the NHURO SDK? (The Robot Brain Kit)<\/h2>\n        <p>Think of the <strong>NHURO SDK<\/strong> as a &#8220;Starter Kit&#8221; for building a digital brain. Just like a smartphone has an SDK for building apps, our robot has an SDK for building <strong>human-like behaviors<\/strong>.<\/p>\n        \n        <ul class=\"analogy-list\">\n            <li><strong>SDK (Software Development Kit):<\/strong> This is your toolbox. It contains the code and &#8220;wrappers&#8221; needed to control the robot without writing every motor command from scratch.<\/li>\n            <li><strong>Neuromorphic &#038; Humanoid:<\/strong> &#8220;Humanoid&#8221; means the robot looks like a person. &#8220;Neuromorphic&#8221; means the computer brain works like a human brain\u2014responding to events and senses (like sound) in real-time.<\/li>\n        <\/ul>\n\n        <h3>Why do we need ROS 2? (The Social Network for Parts)<\/h3>\n        <p>Imagine the robot&#8217;s parts as different people in a room. <strong>ROS 2 (Robot Operating System)<\/strong> is the &#8220;Social Network&#8221; or walkie-talkie system that lets them talk:<\/p>\n        <ol>\n            <li><strong>The Ears<\/strong> (Microphone) hear a word.<\/li>\n            <li><strong>The Brain<\/strong> (Parser) understands the word.<\/li>\n            <li><strong>The Muscles<\/strong> (Servos) move the arm.<\/li>\n        <\/ol>\n        <p>By using ROS 2, the robot becomes <strong>Modular<\/strong>\u2014you can upgrade the &#8220;Ears&#8221; without ever having to change how the &#8220;Muscles&#8221; work.<\/p>\n    <\/div>\n\n    <h2>2. Navigating the Workspace (The &#8220;Factory&#8221; vs. The &#8220;Workshop&#8221;)<\/h2>\n    <p>When you build your code, ROS 2 generates hundreds of files. <strong>Don&#8217;t be intimidated!<\/strong> Think of it this way:<\/p>\n    <ul>\n        <li><strong>The Workshop (src\/):<\/strong> This is where you sit and work. You only care about these files.<\/li>\n        <li><strong>The Factory (build\/ &#038; install\/):<\/strong> These are the machines ROS 2 creates. <strong>Do not edit files here<\/strong>; your changes will be deleted the next time the factory runs.<\/li>\n    <\/ul>\n    \n    <div class=\"file-tree\">\n        nhuro_project\/ <br>\n        \u251c\u2500\u2500 <span class=\"highlight-edit\">voice_bridge.py<\/span> <span class=\"highlight-edit\">&larr; SENSORY BRIDGE<\/span><br>\n        \u2514\u2500\u2500 nhuro_ws\/ <br>\n        &nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 <span class=\"dim-ignore\">build\/ &#038; install\/ &larr; IGNORE (Auto-generated)<\/span><br>\n        &nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 <strong>src\/ &larr; THE WORKSHOP (Your code lives here)<\/strong><br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 nhuro_interfaces\/ <br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502&nbsp;&nbsp;\u2514\u2500\u2500 action\/ <span class=\"highlight-edit\">Wave.action, Walk.action<\/span><br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 nhuro_driver\/ <br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 nhuro_driver\/ <br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 <span class=\"highlight-edit\">voice_parser_node.py<\/span> <span class=\"highlight-edit\">&larr; BRAIN NODE<\/span><br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 <span class=\"highlight-edit\">nhuro_action_node.py<\/span> <span class=\"highlight-edit\">&larr; MUSCLE NODE<\/span><br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 <strong>nhuro\/ (Hardware Library)<\/strong><br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 <span class=\"highlight-edit\">robot.py<\/span><br>\n        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 <span class=\"highlight-edit\">bus_servo.py<\/span>\n    <\/div>\n\n    <h2>3. The Triple-Terminal Philosophy (Isolation &#038; Robustness)<\/h2>\n    <p>In the NHURO SDK, we operate using three distinct terminals. This is a deliberate design choice for <strong>Distributed Intelligence<\/strong> and hardware safety.<\/p>\n    \n    <table class=\"philosophy-table\">\n        <tr>\n            <th>Terminal<\/th>\n            <th>Role<\/th>\n            <th>Design Logic<\/th>\n        <\/tr>\n        <tr>\n            <td><strong>T1: Sensors<\/strong><\/td>\n            <td>Sensory Gateway<\/td>\n            <td>Runs in <strong>System Python<\/strong>. It handles raw hardware (Mic\/Camera) directly to avoid &#8220;Library Hell&#8221; between drivers and ROS 2.<\/td>\n        <\/tr>\n        <tr>\n            <td><strong>T2: Brain<\/strong><\/td>\n            <td>Action Parser<\/td>\n            <td>Runs in <strong>Mamba Env<\/strong>. It translates raw data into high-level intent. If the brain is &#8220;confused,&#8221; the muscles stay safe.<\/td>\n        <\/tr>\n        <tr>\n            <td><strong>T3: Muscles<\/strong><\/td>\n            <td>Action Server<\/td>\n            <td>Runs in <strong>Mamba Env<\/strong>. It handles low-level timing. If a leg gets stuck, T3 crashes but the Brain (T2) stays alive for debugging.<\/td>\n        <\/tr>\n    <\/table>\n\n    <div class=\"unix-lesson\">\n        <strong>Why split them?<\/strong><br>\n        * <strong>Fault Tolerance:<\/strong> You can restart the &#8220;Muscles&#8221; (T3) without rebooting the &#8220;Brain&#8221; (T2).<br>\n        * <strong>Asynchronous Monitoring:<\/strong> You can watch the robot&#8217;s &#8220;Thoughts&#8221; in T2 while watching physical feedback in T3 simultaneously.\n    <\/div>\n\n    <h2>4. Getting the Code<\/h2>\n    <p>Before you &#8220;start the factory&#8221; (build), ensure your source folder is clean and organized.<\/p>\n\n    <div class=\"pre-build-map\">\n        <strong>Master SDK Source Hierarchy (Pre-Build):<\/strong>\n        <div class=\"file-tree\" style=\"margin-top:10px; border:none; background:transparent;\">\n            nhuro_project\/ <br>\n            \u251c\u2500\u2500 <span class=\"highlight-edit\">voice_bridge.py<\/span><br>\n            \u2514\u2500\u2500 nhuro_ws\/ <br>\n            &nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 src\/ <br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 nhuro_interfaces\/ <br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502&nbsp;&nbsp;\u251c\u2500\u2500 action\/ <span class=\"highlight-edit\">Wave.action, Walk.action<\/span><br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502&nbsp;&nbsp;\u251c\u2500\u2500 CMakeLists.txt <br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502&nbsp;&nbsp;\u2514\u2500\u2500 package.xml <br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 nhuro_driver\/ <br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 <span class=\"highlight-edit\">setup.py<\/span><br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 package.xml <br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 nhuro_driver\/ <br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 <span class=\"highlight-edit\">voice_parser_node.py<\/span><br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 <span class=\"highlight-edit\">nhuro_action_node.py<\/span><br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 <strong>nhuro\/<\/strong><br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u251c\u2500\u2500 <span class=\"highlight-edit\">robot.py<\/span><br>\n            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2514\u2500\u2500 <span class=\"highlight-edit\">bus_servo.py<\/span>\n        <\/div>\n    <\/div>\n\n    <div class=\"method-tab\">\n        <h3>Method A: Online (Official Lab GitHub)<\/h3>\n        <p>Use this if your Raspberry Pi has internet access.<\/p>\n        <div class=\"terminal\">\n            cd ~<br>\n            git clone https:\/\/github.com\/acsl-aizu\/nhuro_project.git\n        <\/div>\n    <\/div>\n\n    <div class=\"method-tab\">\n        <h3>Method B: Offline (Laboratory USB Drive)<\/h3>\n        <div class=\"terminal\">\n            cp -r \/media\/pi\/USB_NAME\/nhuro_project ~\/nhuro_project\n        <\/div>\n    <\/div>\n\n    <h2>5. Building the Workspace<\/h2>\n    <div class=\"terminal\">\n        cd ~\/nhuro_project\/nhuro_ws<br>\n        colcon build &#8211;symlink-install\n    <\/div>\n\n    <a href=\"https:\/\/giatec.io\/aizuhand\/index.php\/nhuro-nexus\/\" class=\"nav-link\">&larr; Back to NHURO Nexus Portal<\/a>\n<\/div>\n\n<div style=\"text-align: center; padding: 20px; color: #888; font-size: 0.8em;\">\n    &copy; 2026 Prof. Abderazek Ben Abdallah | Lab of Computer Systems (ACSL) | University of Aizu\n<\/div>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Module 0: SDK Philosophy &#038; Initialization | NHURO Nexus Module 0: The NHURO SDK &#038; System Setup Understanding the &#8220;Why&#8221; before the &#8220;How&#8221; 1. What is the NHURO SDK? (The Robot Brain Kit) Think of the NHURO SDK as a &#8220;Starter Kit&#8221; for building a digital brain. Just like a smartphone has an SDK for [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"saved_in_kubio":false,"footnotes":""},"class_list":["post-598","page","type-page","status-publish","hentry"],"kubio_ai_page_context":{"short_desc":"","purpose":"general"},"_links":{"self":[{"href":"https:\/\/giatec.io\/aizuhand\/index.php\/wp-json\/wp\/v2\/pages\/598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/giatec.io\/aizuhand\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/giatec.io\/aizuhand\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/giatec.io\/aizuhand\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/giatec.io\/aizuhand\/index.php\/wp-json\/wp\/v2\/comments?post=598"}],"version-history":[{"count":17,"href":"https:\/\/giatec.io\/aizuhand\/index.php\/wp-json\/wp\/v2\/pages\/598\/revisions"}],"predecessor-version":[{"id":678,"href":"https:\/\/giatec.io\/aizuhand\/index.php\/wp-json\/wp\/v2\/pages\/598\/revisions\/678"}],"wp:attachment":[{"href":"https:\/\/giatec.io\/aizuhand\/index.php\/wp-json\/wp\/v2\/media?parent=598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}