From a NAO6 running HULKs-OS 9.0.1 to nao-rs on its own drivers, checked with naoctl.
This page takes a NAO6 that already runs HULKs-OS 9.0.1 to nao-rs. If your robot still runs NAOqi, flash HULKs-OS first: Install, flash and rollback shows how.
Before you start
Put the robot down sitting or lying, with room around it. nao-rs doesn't command the motors yet, so every joint goes limp when it takes over. A standing robot falls.
What you need
- A NAO6 on HULKs-OS 9.0.1, reachable over Ethernet or Wi-Fi, with the
default
naouser (passwordnao). - A checkout of the nao-rs repository
(github.com/luka-loehr/nao-rs, branch
main) with the nao-rs drivers linked into it as./drivers, and Rust installed. The drivers are not public yet, and prebuilt bundles are planned; today you build the bundle yourself. - An x86_64 Linux machine with Docker for the robot build. The build runs
in HULKs' NAO SDK container (
ghcr.io/hulks/naosdk:9.0.1).
Install
Build the robot bundle
In the nao-rs checkout, with <host> being your Linux build machine (an SSH
host name):
This copies the sources to <host>, builds hulk, nao-rs-guard and
naoctl for the robot and fetches dist/nao-rs-robot.tar.gz.
Install it on the robot
The bundle is streamed to the robot over SSH and the installer on the robot
takes over: it keeps the running installation, stops and masks HAL, LoLA and
HULA, installs the guard and the hulk unit for the nao-rs drivers, and
checks for 30 seconds that the runtime is up and beating. If that check fails,
it puts the previous installation back by itself. Details in Install, flash
and rollback.
Check the death switch
A healthy robot prints the switch state and a heartbeat a few milliseconds old, for example:
The switch starts tripped on every new page, so the motors stay off until a person re-arms it. While nao-rs rejects the version 11 motor boards, re-arming changes nothing on the motors; leave it tripped.
Stop it from your computer
From the nao-rs checkout on your computer:
This sends the stop datagram to the guard on UDP port 7701. It works even when the runtime is stuck. See Safety model for every other way to stop.
Reach it
After the install, nao-rs owns the wired port: the robot takes an address by
DHCP, and also always answers at 172.28.28.28 on a direct cable (give your
computer 172.28.28.1/24). See Network.
| Interface | Address |
|---|---|
| REST API | http://<robot-address>:7702/v1, token in ~/.config/nao-rs/rest-token on the robot |
| Robot API (the brain) | <robot-address>:7700 |
| UDP stop | <robot-address>:7701 |
To talk with the robot, set up the brain with your own ElevenLabs agent:
Go back
This removes the guard and the nao-rs units, unmasks HAL, LoLA and HULA and starts them again in order.