Aldebaran NAO Robot

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

Ein neues Spielzeug zum Testen.

Das Unboxing-Video spar ich mir :-)) Gibt's hier schon.

Die Links zur Community laufen aktuell ins Leere.

Screenshot 2023-02-18 at 06-13-00 homepage SoftBank Robotics Community.png

Das hier scheint der Nachfolger zu sein. Die Anzahl der Dokumente kommt mich spontan etwas duerftig vor. Support: https://support.unitedrobotics.group/de/support/home

Durch die Übernahme von Softbank durch Aldebaran (wieder zurueck) scheint einiges noch im Argen zu liegen.

The former URL https://developers.softbankrobotics.com/ is no longer available since 2022 September the 30th.

Viele Infos scheinen uebertragen worden zu sein.

https://www.aldebaran.com/developer-center/index.html
Softbank Robotics Europe was renamed to Aldebaran Robotics since 2022 June.Please go to Aldebaran Robotics website for inquiries about Pepper & NAO in EMEA 

Die ersten technischen Infos:

  • 25 Freiheitsgrade (25 Motoren; muss ich mal noch nachzaehlen ;-))
  • 7 Touch-Sensoren (Lage?)
  • 4 Richtmikrofone und Lautsprecher (je 4 oder 2 und 2?)
  • Spracherkennung (20 Sprachen gleichzeitig?)
  • 2 2D Kameras

Die vollstaendige Liste der Hardware.

Die Liste der Hardware im Detail.

TODO

Die Hauptdokumentation scheint das hier zu sein.

http://doc.aldebaran.com/2-8/index.html

Eine gute technische Einführung ist hier zu finden.

Video zur Einrichtung des NAO

First Contact

Per Ethernet-Kabel angeschlossen und folgendes erhalten.

11:30:08.713001 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:13:95:1e:23:04 (oui Unknown), length 548
11:30:08.713138 IP worker.bootps > 192.168.0.1.bootpc: BOOTP/DHCP, Reply, length 300
11:30:08.901513 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0 [6q] [10n] ANY (QM)? 4.0.3.2.e.1.e.f.f.f.5.9.3.1.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? barny.local. ANY (QM)? 1.0.168.192.in-addr.arpa. ANY (QM)? barny._ssh._tcp.local. ANY (QM)? barny._sftp-ssh._tcp.local. ANY (QM)? barny._naoqi._tcp.local. (440)
11:30:08.920154 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0*- [0q] 6/0/0 PTR _naoqi._tcp.local., PTR barny._ssh._tcp.local., PTR _ssh._tcp.local., PTR barny._sftp-ssh._tcp.local., PTR _sftp-ssh._tcp.local., PTR barny._naoqi._tcp.local. (169)
11:30:09.151606 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0 [6q] [10n] ANY (QM)? 4.0.3.2.e.1.e.f.f.f.5.9.3.1.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? barny.local. ANY (QM)? 1.0.168.192.in-addr.arpa. ANY (QM)? barny._ssh._tcp.local. ANY (QM)? barny._sftp-ssh._tcp.local. ANY (QM)? barny._naoqi._tcp.local. (440)
11:30:09.402157 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0 [6q] [10n] ANY (QM)? 4.0.3.2.e.1.e.f.f.f.5.9.3.1.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? barny.local. ANY (QM)? 1.0.168.192.in-addr.arpa. ANY (QM)? barny._ssh._tcp.local. ANY (QM)? barny._sftp-ssh._tcp.local. ANY (QM)? barny._naoqi._tcp.local. (440)
11:30:09.603000 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0*- [0q] 10/0/0 (Cache flush) PTR barny.local., (Cache flush) A 192.168.0.1, (Cache flush) PTR barny.local., (Cache flush) SRV barny.local.:22 0 0, (Cache flush) TXT "", (Cache flush) SRV barny.local.:22 0 0, (Cache flush) TXT "", (Cache flush) SRV barny.local.:9559 0 0, (Cache flush) TXT "MdnsInterfaceLocal=0" "Protocol=tcp" "RobotMaterialization=Real" "RobotType=Nao", (Cache flush) AAAA fe80::213:95ff:fe1e:2304 (404)
11:30:10.043104 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0*- [0q] 6/0/0 PTR _naoqi._tcp.local., PTR barny._ssh._tcp.local., PTR _ssh._tcp.local., PTR barny._sftp-ssh._tcp.local., PTR _sftp-ssh._tcp.local., PTR barny._naoqi._tcp.local. (169)
11:30:10.725081 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0*- [0q] 9/0/0 (Cache flush) PTR barny.local., (Cache flush) SRV barny.local.:22 0 0, (Cache flush) A 192.168.0.1, (Cache flush) TXT "", (Cache flush) SRV barny.local.:22 0 0, (Cache flush) TXT "", (Cache flush) SRV barny.local.:9559 0 0, (Cache flush) TXT "MdnsInterfaceLocal=0" "Protocol=tcp" "RobotMaterialization=Real" "RobotType=Nao", (Cache flush) AAAA fe80::213:95ff:fe1e:2304 (370)
11:30:10.725442 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/0 (Cache flush) PTR barny.local. (61)
11:30:12.166167 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0*- [0q] 14/0/0 PTR _naoqi._tcp.local., PTR barny._ssh._tcp.local., (Cache flush) TXT "", (Cache flush) SRV barny.local.:22 0 0, (Cache flush) AAAA fe80::213:95ff:fe1e:2304, (Cache flush) A 192.168.0.1, PTR _ssh._tcp.local., PTR barny._sftp-ssh._tcp.local., (Cache flush) TXT "", (Cache flush) SRV barny.local.:22 0 0, PTR _sftp-ssh._tcp.local., PTR barny._naoqi._tcp.local., (Cache flush) TXT "MdnsInterfaceLocal=0" "Protocol=tcp" "RobotMaterialization=Real" "RobotType=Nao", (Cache flush) SRV barny.local.:9559 0 0 (391)
11:30:12.847335 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0*- [0q] 9/0/0 (Cache flush) PTR barny.local., (Cache flush) SRV barny.local.:22 0 0, (Cache flush) A 192.168.0.1, (Cache flush) TXT "", (Cache flush) SRV barny.local.:22 0 0, (Cache flush) TXT "", (Cache flush) SRV barny.local.:9559 0 0, (Cache flush) TXT "MdnsInterfaceLocal=0" "Protocol=tcp" "RobotMaterialization=Real" "RobotType=Nao", (Cache flush) AAAA fe80::213:95ff:fe1e:2304 (370)
11:30:12.847484 IP 192.168.0.1.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/0 (Cache flush) PTR barny.local. (61)


Ein Portscan per nmap.

Scanning 192.168.0.1 [1000 ports]
Discovered open port 22/tcp on 192.168.0.1
Discovered open port 80/tcp on 192.168.0.1
Discovered open port 8002/tcp on 192.168.0.1
Discovered open port 9503/tcp on 192.168.0.1
...
PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 7.8 (protocol 2.0)
80/tcp   open  http        nginx 1.15.7
|_http-title: Site doesn't have a title (text/html).
|_http-favicon: Unknown favicon MD5: 3C09063D56394B92505586D89AFBD1B0
| http-methods: 
|_  Supported Methods: GET HEAD
|_http-server-header: nginx/1.15.7
8002/tcp open  http        Tornado httpd 4.5.3
|_http-title: 404: Not Found
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: TornadoServer/4.5.3
9503/tcp open  ssl/unknown
| ssl-cert: Subject: commonName=qi.private.aldebaran.lan/organizationName=Aldebaran/stateOrProvinceName=France/countryName=FR
| Issuer: commonName=qi.private.aldebaran.lan/organizationName=Aldebaran/stateOrProvinceName=France/countryName=FR
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2020-01-29T14:35:08
| Not valid after:  2020-02-28T14:35:08
| MD5:   477d 32dd d837 f658 fe85 516f 1a46 1cbf
|_SHA-1: b224 cf84 fbc1 53e1 4ec2 4162 52e8 d615 39ef a7ad
|_ssl-date: TLS randomness does not represent time
MAC Address: 00:13:95:XX:XX:XX (congatec AG)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9


Also dann mal schauen.

Port 22 SSH

Server: OpenSSH 7.8 (protocol 2.0) Kontaktaufnhame problemlos.

worker:~ # ssh nao@192.168.0.1
Password: 
barny [0] ~ $ ls
naoqi  recordings
barny [0] ~ $ cd /
barny [0] / $ ls
bin  boot  breakpad-syms  data  dev  etc  home  lib  lost+found  media  mnt  nao  opt  proc  root  run  sbin  settings  srv  sys  tmp  usr  var
barny [0] / $ ls -l
total 80
drwxr-xr-x   2 root root  4096 Oct 14  2019 bin
drwxr-xr-x   2 root root  4096 Oct 14  2019 boot
drwxr-xr-x  39 root root  4096 Oct 14  2019 breakpad-syms
drwxr-xr-x  10 root root  4096 Jan 29  2020 data
drwxr-xr-x  14 root root  5560 Feb 18 10:59 dev
drwxr-xr-x   1 root root  4096 Feb 18 11:53 etc
lrwxrwxrwx   1 root root    10 Oct 14  2019 home -> /data/home
drwxr-xr-x  11 root root  4096 Oct 14  2019 lib
drwx------   2 root root 16384 Nov 27  2019 lost+found
drwxr-xr-x   3 root root  4096 Oct 14  2019 media
drwxr-xr-x   2 root root  4096 Oct 14  2019 mnt
drwxr-xr-x   3 root root  4096 Oct 14  2019 nao
drwxr-xr-x   4 root root  4096 Oct 14  2019 opt
dr-xr-xr-x 208 root root     0 Feb 18 10:59 proc
drwx------   2 root root  4096 Oct 14  2019 root
drwxr-xr-x  17 root root   420 Feb 18 10:59 run
drwxr-xr-x   3 root root  4096 Oct 14  2019 sbin
drwxr-xr-x   2 root root  4096 Oct 14  2019 settings
drwxr-xr-x   2 root root  4096 Oct 14  2019 srv
dr-xr-xr-x  13 root root     0 Feb 18 10:59 sys
drwxrwxrwt  75 root root  1600 Feb 18 11:53 tmp
drwxr-xr-x  11 root root  4096 Oct 14  2019 usr
drwxr-xr-x  11 root root  4096 Oct 14  2019 var
barny [0] / $ cat /etc/os-release 
ID="naoqi-os"
NAME="NAOqiOS"
VERSION="3.6.22.4 ()"
VERSION_ID="3.6.22.4"
PRETTY_NAME="NAOqiOS 3.6.22.4 ()"
barny [0] / $ 

Laut [1] laeuft auf dem Nao ein Gentoo Linux.

Port 80 HTTP

Server: nginx 1.15.7


Port 8002 HTTP

Server: Tornado httpd 4.5.3

Tornado ist ein freier, nicht blockierender Webserver sowie ein einfaches Mikro-Webframework in Python.

Port 9503

Server: ?


noch ein Port

Screenshot 20230220 165127.png


Root-Filesystem

$ sudo fdisk /dev/mmcblk0
Password: 

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/mmcblk0: 29.1 GiB, 31268536320 bytes, 61071360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C71F7C2F-7D30-48AC-805D-9723E1993E73

Device           Start      End  Sectors  Size Type
/dev/mmcblk0p1    2048   264191   262144  128M Linux filesystem
/dev/mmcblk0p2  264192   395263   131072   64M EFI System
/dev/mmcblk0p3  395264  8388607  7993344  3.8G Linux filesystem
/dev/mmcblk0p4 8388608 61071326 52682719 25.1G Linux filesystem

Das Root-Filesystem ist readonly per default.

sudo mount -o rw,remount /

Und schon kann man nach belieben nachinstallieren.

$ mount |grep mmc
/dev/mmcblk0p3 on / type ext3 (rw,relatime,data=ordered)
/dev/mmcblk0p1 on /media/internal type ext4 (rw,nosuid,nodev,noexec,relatime,data=ordered)
/dev/mmcblk0p4 on /data type ext3 (rw,nosuid,nodev,noatime,data=ordered)
/dev/mmcblk0p4 on /var/cache type ext3 (rw,nosuid,nodev,noatime,data=ordered)

Netzwerk

Die Netzwerkkomponenten werden von dem Programm connmanctl gehandhabt. Z.B. kann man einen Nameserver mit folgendem Kommando hinzufuegen.

connmanctl> config ethernet_0013951e2304_cable --nameservers 192.168.178.2

Nachdem man sich mit

connmanctl> services

einen Ueberblick verschafft hat.

Wired und Wifi soweit alles bekannt.

Bluetooth und P2P muss ich noch anschauen.

Bash

Wenigstens funktioniert mlocate.

sudo updatedb --output=/var/volatile/mlocate.db
locate --database=/var/volatile/mlocate.db cpu


Der Packetmanager ist opkg.


Hardware

PCI-BUS

00:00.0 Host bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register (rev 11)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 11)
00:12.0 SD Host controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SDIO Controller (rev 11)
00:13.0 SATA controller: Intel Corporation Atom Processor E3800 Series SATA AHCI Controller (rev 11)
00:14.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx, Celeron N2000 Series USB xHCI (rev 11)
00:17.0 SD Host controller: Intel Corporation Atom Processor E3800 Series eMMC 4.5 Controller (rev 11)
00:1a.0 Encryption controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine (rev 11)
00:1b.0 Audio device: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller (rev 11)
00:1c.0 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 1 (rev 11)
00:1c.1 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 2 (rev 11)
00:1c.2 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 3 (rev 11)
00:1c.3 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 4 (rev 11)
00:1f.0 ISA bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit (rev 11)
00:1f.3 SMBus: Intel Corporation Atom Processor E3800 Series SMBus Controller (rev 11)
01:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)

USB

Bus 001 Device 007: ID c001:5253  
Bus 001 Device 010: ID 2a0b:01ff  
Bus 001 Device 006: ID 0cf3:3004 Qualcomm Atheros Communications AR3012 Bluetooth 4.0
Bus 002 Device 002: ID 2a0b:01ff  
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID ffff:0006  
Bus 001 Device 002: ID 0000:0000  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 480M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/3p, 480M
        |__ Port 1: Dev 6, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 1: Dev 6, If 1, Class=Wireless, Driver=btusb, 12M
        |__ Port 2: Dev 10, If 0, Class=Video, Driver=uvcvideo, 480M
        |__ Port 2: Dev 10, If 1, Class=Video, Driver=uvcvideo, 480M
        |__ Port 3: Dev 7, If 0, Class=Vendor Specific Class, Driver=sbre-usb-i2c, 12M
    |__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=usbfs, 12M

I2C

i2c-0   unknown         SMBus I801 adapter at e000              N/A
i2c-1   i2c             SBRE USB-I2C on port 1.7                I2C adapter

Komisch. Alle Adressen belegt. Kann irgendwie nicht sein, vielleicht haben die jede einzelne LED angeschlossen:-))

sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 
30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 
50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 
70: 70 71 72 73 74 75 76 77

Devicelisten

  • [2] Die Zuordnungsliste ist etwas verwirrend.
  • [3] Schon besser.
  • [4] Nutzen noch ungewiss;-)

Vokabel

Zum weiteren Verstaendnis sind einige Vokabeln nuetzlich, die einem zwangslaeufig in der Literatur begegnen.

Behavior

Choregraphe

  • Box (Diagram, Timeline, Python, Dialog)

ROLL-PITCH-YAW ROLL-NICK-GIER Dabei meint

  • ROLL, das Drehen um die Laengsachse (Hauptrichtung)
  • PITCH, das Drehen um die Querachse (hoch/runter)
  • YAW, das Drehen um die Hochachse

Da man mit Zeigefinger (Laengsachse Y), Daumen (Querachse X) und Mittelfinger (Hochachse Z) der rechten Hand ein kartesischen Koordinatensystems aufspannen kann, ergibt sich ROLL zu Handgelenk drehen, NICK zu Handgelenk Beugung/Streckung und YAW zu Handgelenk Abspreizbewegung. Dummerweise ist in der Literatur zum NAO oft die Hauptrichtung die X-Achse (Daumen), daher muss man die eigene Hand ganz schoen verbiegen:-(

Software

Robot Settings

Die Software wird fuer Linux, Windows 10(!) und MAC (MAedchen Computer) angeboten.

Bei Linux wird Ubuntu 16.04 Xenial Xerus - 64bits only unterstuetzt. Eine Installation auf OpneSuSE 15.3 ist an QT gescheidert. (Nachtrag: Die Version von libz war das Problem. Im lib-Ordner befindet sich die Version 1.2.8. Nachdem ich die Vesion 1.2.11 aus /lib64 umkopiert hatte, noch schnell die Softlinks neu gesetzt und schon lief robot-setting. Gleiches Problem bei choregraphe.)

Also vielleicht auch mal mit in einer VM ausprobieren. Die Anforderungen sind ja minimal und meine 16 Kerne und 48 GB Hauptspeicher haben noch etwas Luft.

Die Anleitung befindet sich hier.

Man soll sich auf der Softbank Account anmelden. Der Link wird umgebogen nach

https://sso.aldebaran-robotics.com/pf/adapter2adapter.ping?TargetResource=https://cloud.aldebaran-robotics.com/
Screenshot 2023-02-18 at 06-32-45 IdP Logout.png

Faengt ja gut an. Nach dem Registieren wird ein Einlogversuch wie folgt quittiert.


Zitat: Das hat bestimmt ein 5-jaehriger Schimpanse programmiert. Ich entschuldige mich ausdruecklich bei allen 5-jaehrigen Schimpansen.

Choregraphe

http://doc.aldebaran.com/2-8/software/choregraphe/choregraphe_overview.html

In der "Kommandozentrale" kann man sich schnell zurechtfinden.

Da hier eine komplette (*) Simulation stattfinden kann. Benoetigt man zum Einstig eigentlich keine Roboter-Hardware.

Um aber in Choregraphe umfangreiche Programme zu "schreiben" kann der Monitor nicht grosz genug sein.

Ich war aber auch schon schnell an der Stelle, wo die Grenzen der Boxer

Hinweise

Im Projekt kann unter Edit->Preferneces->VirtualRobot auf den NAO, oder einen eigenen Roboter umschalten.

Mit der Upload-Funktion Connection->Advanced->File Transfer landen die Daten per SFTP in /home/<username>, bzw. /data/home/<username>.


Aldebaran ist ein Doppelsternsystem in etwa 67 Lichtjahren (20 Parsec) Entfernung. Der Hauptstern ist ein Roter Riese der Spektralklasse K5 und der Leuchtkraftklasse III. Aldebaran ist ein Stern im Sternbild Stier. Der Name stammt aus arabisch الدَّبَران, DMG ad-Dabarān und bedeutet der Folgende, weil der Stern den Plejaden am Himmel zu folgen scheint.

Links

Request for Comments


Kommentar hinzufügen
TippvomTibb freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, registriere dich bitte oder melde dich an.