Module 0: The NHURO SDK & System Setup
Understanding the “Why” before the “How”
1. What is the NHURO SDK? (The Robot Brain Kit)
Think of the NHURO SDK as a “Starter Kit” for building a digital brain. Just like a smartphone has an SDK for building apps, our robot has an SDK for building human-like behaviors.
- SDK (Software Development Kit): This is your toolbox. It contains the code and “wrappers” needed to control the robot without writing every motor command from scratch.
- Neuromorphic & Humanoid: “Humanoid” means the robot looks like a person. “Neuromorphic” means the computer brain works like a human brain—responding to events and senses (like sound) in real-time.
Why do we need ROS 2? (The Social Network for Parts)
Imagine the robot’s parts as different people in a room. ROS 2 (Robot Operating System) is the “Social Network” or walkie-talkie system that lets them talk:
- The Ears (Microphone) hear a word.
- The Brain (Parser) understands the word.
- The Muscles (Servos) move the arm.
By using ROS 2, the robot becomes Modular—you can upgrade the “Ears” without ever having to change how the “Muscles” work.
2. Navigating the Workspace (The “Factory” vs. The “Workshop”)
When you build your code, ROS 2 generates hundreds of files. Don’t be intimidated! Think of it this way:
- The Workshop (src/): This is where you sit and work. You only care about these files.
- The Factory (build/ & install/): These are the machines ROS 2 creates. Do not edit files here; your changes will be deleted the next time the factory runs.
├── voice_bridge.py ← SENSORY BRIDGE
└── nhuro_ws/
├── build/ & install/ ← IGNORE (Auto-generated)
└── src/ ← THE WORKSHOP (Your code lives here)
├── nhuro_interfaces/
│ └── action/ Wave.action, Walk.action
└── nhuro_driver/
└── nhuro_driver/
├── voice_parser_node.py ← BRAIN NODE
├── nhuro_action_node.py ← MUSCLE NODE
└── nhuro/ (Hardware Library)
├── robot.py
└── bus_servo.py
3. The Triple-Terminal Philosophy (Isolation & Robustness)
In the NHURO SDK, we operate using three distinct terminals. This is a deliberate design choice for Distributed Intelligence and hardware safety.
| Terminal | Role | Design Logic |
|---|---|---|
| T1: Sensors | Sensory Gateway | Runs in System Python. It handles raw hardware (Mic/Camera) directly to avoid “Library Hell” between drivers and ROS 2. |
| T2: Brain | Action Parser | Runs in Mamba Env. It translates raw data into high-level intent. If the brain is “confused,” the muscles stay safe. |
| T3: Muscles | Action Server | Runs in Mamba Env. It handles low-level timing. If a leg gets stuck, T3 crashes but the Brain (T2) stays alive for debugging. |
* Fault Tolerance: You can restart the “Muscles” (T3) without rebooting the “Brain” (T2).
* Asynchronous Monitoring: You can watch the robot’s “Thoughts” in T2 while watching physical feedback in T3 simultaneously.
4. Getting the Code
Before you “start the factory” (build), ensure your source folder is clean and organized.
├── voice_bridge.py
└── nhuro_ws/
└── src/
├── nhuro_interfaces/
│ ├── action/ Wave.action, Walk.action
│ ├── CMakeLists.txt
│ └── package.xml
└── nhuro_driver/
├── setup.py
├── package.xml
└── nhuro_driver/
├── voice_parser_node.py
├── nhuro_action_node.py
└── nhuro/
├── robot.py
└── bus_servo.py
Method A: Online (Official Lab GitHub)
Use this if your Raspberry Pi has internet access.
git clone https://github.com/acsl-aizu/nhuro_project.git
Method B: Offline (Laboratory USB Drive)
5. Building the Workspace
colcon build –symlink-install
