Aller au contenu


Galoula

Inscrit(e) (le) 19 févr. 2018
Déconnecté Dernière activité févr. 23 2018 09:43
-----

#92822 Aspirateur Xiaomi Vacuum V1

Posté par Galoula - 20 février 2018 - 09:00

Bon j'ai surement une bonne nouvelle:

 

Pascal, range ton robot, je me déconnecte de ton interface Web, j'ai trouver un humain, qui vas pouvoir allez chez moi, desactiver mon bordel, allumer mon PC et brancher cette foutue prise USB. (Tiens j'y pense, je devrait peut etre utilise mon Pi ZERO dessus comme roll back ? Humm tiens je vais vous decrire mon idée en live).

 

Donc làa c'est un humain que je controle pour brancher mon bousin, et reprendre la main.

 

L'idée géniale que je viens d'avoir, etait de metre mon PC directement sur le robot (oui les 2metre de cable USB, ca me laisse peut d'espace pour jouer, surtout qu'il aime pas rouler sur les câble cte bestiole ...

 

Donc, je vais alimenter mon Pi0 sur le robot, le brancher un USB, et le connecter à mon SSID WiFi Privé (oui le robot, ayant un cloud, avait un SSID dédier au matos chinois ... Je refuse que du matos non rooté soit connecté à mon LAN PERSO).

 

Pas con hein . :-) Et qui sait, apres faire communiquer le Pi0 avec des capteurs en plus, et la PiCAM, pour avoir plein de choses sur un seul port USB :-)

 

Pour l'instant, je garde surtout la console serie (ADB) en USB, surtout quand dans ADB je peux faire du TCP/IP, et donc même avoir une seconde carte réseau vituelle s'il le faut ...

 

L'humain passe normalement demain début après midi, je decommente mais deux conneries, reboot et voit si ca passe, et je ne toucherais plus aux fichiers de boot, temps que le Pi0 n'est pas en place !




#92786 Aspirateur Xiaomi Vacuum V1

Posté par Galoula - 20 février 2018 - 02:11

Yes le projet avance pas mal, je vais bientôt me séparer du processus "RobotController" pour ne garder plus que player, qui semble être le cœur du robot.

-> Je garde pas mal "RobotController" car il me fournis des log assez complets, et j'en déduit plus facilement ce que je voit quand je trace les processus.

 

Le cloud officiellement, apporte la feignantise aux utilisateurs, mais ici, c'est surtout l'espionnage de dingo que j'ai découvert, TOUTES LES VALEURS DES SENSORS sont uploader dans leur fichu cloud ...

 

J'ai plus aucun lien avec dans l'état actuel, donc les application passent plus, pour le lancer, soit je passe en SSH, soit je passe par mon UI WEB basique.

 

Je voir mettre nodeJS vu qu'as prioris j'en aurait besoin (il ne me reste plus beaucoup de place dans mon "/" mais en bidouillant les partition, je vais peut être m'en sortir (pas encore jouer avec ça, j'ai quand même peur de le briquer !).

 

Refaire le robot, je veux bien, mais j'ai lu que yavait un truc qui s'appelle MCU qui gèrerait le robot et/ou LIDAR (3 processeurs dedans).

 

Moi je ne joue actuellement, que dans le "user land", pour communiquer avec les processus qui gère le robot, je ne joue pas encore directement avec les capteurs.

 

--> Faire un robot de zéro, me semble encore complexe, et là jai une basse assée robuste, et propre pour un débutant :-)

 

De plus il utilise des application qui semblent standard, yas juste cette libNav qui semble totalement proprio.

 

Je vais peut être reéactiver le cloud, our avoir un max de données sur "player" et peux être comprend l'algo (comme j'ai pu déjas voir des trucs avec les bouton home/power sur les strings).

 

J'ai aussi commencer à capter la logique des nom des fichiers dans /tmp/ j'essayerais de faire un résumer de ce que j'en pense.

 

Rien n'es officiel, ce n'est que du reverse engineering de ma part !




#92751 Aspirateur Xiaomi Vacuum V1

Posté par Galoula - 19 février 2018 - 09:21

Youpii !!!

 

J'arrive à faire bouger le robot en mode manuel !

 

Via robot-playerv.

 

Par contre, il faut tuer "RoboController" et garder "player"

 

En méthode arrache voilà comment on s'en sort:

 

service rrwatchdoge stop # kill tous les processus RoboController et player si vous êtes dans la même config que moi
setsid player /opt/rockrobo/cleaner/conf/ruby_chassis.cfg 2> /dev/null& # Lance le truc qui gère la partie robotique
printf "%b" "E\0\1\4v\4\0\0\4\0\0\0\377\376\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" > /tmp/RcMc # Démarre les sensors + lidar
iptables -F # Ouvre tous les ports surtout le 6665

 

Puis sur mon PC:

apt-get install robot-player # installe une interface graphique pour gérer le robot
robot-playerv -h Aspirateur -p 6665 # Remplacez Aspirateur par l'IP du robot

 

Et enfin, dans devices, selectionnez dans "position2d:0" Suscribe et Comand.

 

Deplacez à droite ou a gauche le truc rouge qui viens d'apparaitre pour avancer/reculer et vers haut et bas pour tourner. Par trop pratique, mais c'est déjas un super bon début !

 

Question, pourquoi j'ai position2d:0 et position2d:1 ?

Et j'ai pleins de modules "unsupported" ?

 

Galoula@Vostrof:~$ robot-playerv -h 127.0.0.1 -p 6665
PlayerViewer 3.0.2
Connecting to [127.0.0.1:6665]
playerc warning   : warning : [Player v.3.1.0-svn] connected on [127.0.0.1:6665] with sock 5

Available devices: 127.0.0.1:6665
position3d:2     ruby_compass                            unsupported
position2d:0     ruby_chassis                            ready
position3d:0     ruby_chassis                            unsupported
position3d:4     ruby_chassis                            unsupported
bumper:0         ruby_chassis                            ready
ir:0             ruby_chassis                            ready
sonar:0          ruby_chassis                            ready
ir:1             ruby_chassis                            ready
power:0          ruby_chassis                            ready
ir:2             ruby_chassis                            ready
unknown:0        ruby_chassis                            unsupported
unknown:1        ruby_chassis                            unsupported
unknown:2        ruby_chassis                            unsupported
unknown:0        ruby_chassis                            unsupported
ir:3             ruby_chassis                            ready
ir:4             ruby_chassis                            ready
ir:6             ruby_chassis                            ready
ir:7             ruby_chassis                            ready
ir:8             ruby_chassis                            ready
position3d:1     ruby_chassis                            unsupported
laser:0          ruby_laser                              ready
laser:1          ruby_laser                              ready
laser:2          ruby_laser                              ready
map:0            rrslam                                  ready
position2d:1     rrslam                                  ready
laser:3          rrslam                                  ready
position3d:3     rrslam                                  unsupported
aio:0            DriverTest                              ready
log:0            writelog                                unsupported

 

PS: A priori le truc "player" utilise cette "libNavDriver.so".

-> Ce fichier semble etre celui qui créer les MAPs et gère le retour au dock...




#92735 Aspirateur Xiaomi Vacuum V1

Posté par Galoula - 19 février 2018 - 05:38

C'est fait :-)

 

top - 17:26:14 up 1 day,  2:06,  1 user,  load average: 1.01, 1.06, 1.08
Tasks:  98 total,   1 running,  96 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0.1 us,  0.4 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    510532 total,   469604 used,    40928 free,    28960 buffers
KiB Swap:        0 total,        0 used,        0 free.   181136 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                                                   
30108 root      20   0    2552   1084    752 R   1.0  0.2   0:00.08 top                                                                                                                                                                       
   73 root      20   0       0      0      0 S   0.3  0.0   1:18.76 mmcqd/0                                                                                                                                                                   
  108 root      20   0       0      0      0 S   0.3  0.0   0:05.19 flush-179:0                                                                                                                                                               
  790 root       0 -20  524628 159628   5816 S   0.3 31.3 110:19.06 player                                                                                                                                                                    
 1033 root      -2   0       0      0      0 S   0.3  0.0   3:04.52 ksdioirqd/mmc1                                                                                                                                                            
 1102 root      20   0       0      0      0 S   0.3  0.0   2:17.66 RTW_CMD_THREAD                                                                                                                                                            
26967 root      20   0    9260   2784   2096 S   0.3  0.5   0:01.36 sshd                                                                                                                                                                      
    1 root      20   0    3552   2036    948 S   0.0  0.4   0:05.46 init                                                                                                                                                                      
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.03 kthreadd                                                                                                                                                                  
    3 root      20   0       0      0      0 S   0.0  0.0   0:52.57 ksoftirqd/0                                                                                                                                                               
    6 root      rt   0       0      0      0 S   0.0  0.0   0:08.21 migration/0                                                                                                                                                               
    7 root      rt   0       0      0      0 S   0.0  0.0   0:01.00 watchdog/0                                                                                                                                                                
    8 root      rt   0       0      0      0 S   0.0  0.0   0:07.79 migration/1                                                                                                                                                               
   10 root      20   0       0      0      0 S   0.0  0.0   0:11.88 ksoftirqd/1                                                                                                                                                               
   11 root      rt   0       0      0      0 S   0.0  0.0   0:00.96 watchdog/1                                                                                                                                                                
   12 root      rt   0       0      0      0 S   0.0  0.0   0:07.46 migration/2                                                                                                                                                               
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/2:0                                                                                                                                                               
   14 root      20   0       0      0      0 S   0.0  0.0   0:00.23 ksoftirqd/2                                                                                                                                                               
   15 root      rt   0       0      0      0 S   0.0  0.0   0:00.94 watchdog/2                                                                                                                                                                
   16 root      rt   0       0      0      0 S   0.0  0.0   0:07.94 migration/3                                                                                                                                                               
   17 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/3:0                                                                                                                                                               
   18 root      20   0       0      0      0 S   0.0  0.0   0:00.21 ksoftirqd/3                                                                                                                                                               
   19 root      rt   0       0      0      0 S   0.0  0.0   0:00.94 watchdog/3                                                                                                                                                                
   20 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 cpuset                                                                                                                                                                    
   21 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 khelper

 

root@rockrobo:/opt/rockrobo/cleaner/lib# ps faux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    Feb18   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Feb18   0:52  \_ [ksoftirqd/0]
root         6  0.0  0.0      0     0 ?        S    Feb18   0:08  \_ [migration/0]
root         7  0.0  0.0      0     0 ?        S    Feb18   0:01  \_ [watchdog/0]
root         8  0.0  0.0      0     0 ?        S    Feb18   0:07  \_ [migration/1]
root        10  0.0  0.0      0     0 ?        S    Feb18   0:11  \_ [ksoftirqd/1]
root        11  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [watchdog/1]
root        12  0.0  0.0      0     0 ?        S    Feb18   0:07  \_ [migration/2]
root        13  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [kworker/2:0]
root        14  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [ksoftirqd/2]
root        15  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [watchdog/2]
root        16  0.0  0.0      0     0 ?        S    Feb18   0:07  \_ [migration/3]
root        17  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [kworker/3:0]
root        18  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [ksoftirqd/3]
root        19  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [watchdog/3]
root        20  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [cpuset]
root        21  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [khelper]
root        22  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [kdevtmpfs]
root        23  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [netns]
root        25  0.0  0.0      0     0 ?        S    Feb18   0:10  \_ [kworker/2:1]
root        26  0.0  0.0      0     0 ?        S    Feb18   0:10  \_ [kworker/3:1]
root        27  0.0  0.0      0     0 ?        S    Feb18   0:09  \_ [kworker/1:1]
root        28  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [sync_supers]
root        29  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [bdi-default]
root        30  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [kblockd]
root        31  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [sytem]
root        32  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [khubd]
root        34  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [cfg80211]
root        35  0.0  0.0      0     0 ?        D    Feb18   0:42  \_ [usb-hardware-sc]
root        36  0.0  0.0      0     0 ?        S    Feb18   0:11  \_ [cfinteractive]
root        37  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [kdsm]
root        38  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [rpciod]
root        39  0.0  0.0      0     0 ?        S    Feb18   0:01  \_ [kswapd0]
root        40  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [fsnotify_mark]
root        41  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [nfsiod]
root        42  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [cifsiod]
root        43  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [crypto]
root        59  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [lds_motor_workq]
root        67  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [auto_cpu_hotplu]
root        68  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [wifi_led]
root        71  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [deferwq]
root        72  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [devfreq_wq]
root        73  0.0  0.0      0     0 ?        S    Feb18   1:18  \_ [mmcqd/0]
root        74  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [mmcqd/0boot0]
root        75  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [mmcqd/0boot1]
root        76  0.0  0.0      0     0 ?        S    Feb18   0:03  \_ [jbd2/mmcblk0p9-]
root        77  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [ext4-dio-unwrit]
root       108  0.0  0.0      0     0 ?        S    Feb18   0:05  \_ [flush-179:0]
root       304  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [jbd2/mmcblk0p11]
root       305  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [ext4-dio-unwrit]
root       317  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [jbd2/mmcblk0p10]
root       318  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [ext4-dio-unwrit]
root       322  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [jbd2/mmcblk0p6-]
root       323  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [ext4-dio-unwrit]
root       329  0.0  0.0      0     0 ?        S    Feb18   0:07  \_ [jbd2/mmcblk0p1-]
root       331  0.0  0.0      0     0 ?        S<   Feb18   0:00  \_ [ext4-dio-unwrit]
root      1033  0.1  0.0      0     0 ?        S    Feb18   3:04  \_ [ksdioirqd/mmc1]
root      1101  0.1  0.0      0     0 ?        S    Feb18   3:07  \_ [RTW_XMIT_THREAD]
root      1102  0.1  0.0      0     0 ?        S    Feb18   2:17  \_ [RTW_CMD_THREAD]
root      1103  0.2  0.0      0     0 ?        S    Feb18   3:44  \_ [RTWHALXT]
root      1104  0.0  0.0      0     0 ?        S    Feb18   0:00  \_ [RTWHALXT]
root     19129  0.0  0.0      0     0 ?        S    Feb18   0:02  \_ [kworker/1:2]
root     12294  0.0  0.0      0     0 ?        S    03:20   0:07  \_ [kworker/u:0]
root      1111  0.0  0.0      0     0 ?        S    12:40   0:09  \_ [kworker/u:2]
root     21614  0.0  0.0      0     0 ?        S    17:10   0:00  \_ [kworker/0:0]
root     24841  0.0  0.0      0     0 ?        S    17:16   0:00  \_ [kworker/0:1]
root     28065  0.0  0.0      0     0 ?        S    17:22   0:00  \_ [kworker/0:2]
root         1  0.0  0.3   3552  2036 ?        Ss   Feb18   0:05 /sbin/init
root       229  0.0  0.0   2092   456 ?        S    Feb18   0:00 upstart-udev-bridge --daemon
root       234  0.0  0.2   9068  1068 ?        Ss   Feb18   0:00 /lib/systemd/systemd-udevd --daemon
root       419  0.0  0.1  29356   780 ?        Ssl  Feb18   0:00 /usr/bin/adbd
root       562  0.0  0.1   1804   656 tty4     Ss+  Feb18   0:00 /sbin/getty -8 38400 tty4
root       565  0.0  0.1   1804   656 tty5     Ss+  Feb18   0:00 /sbin/getty -8 38400 tty5
root       571  0.4  0.2   2448  1256 ?        Ss   Feb18   7:36 /bin/bash /usr/bin/logrotate.sh
root     30286  0.0  0.0   1328   232 ?        S    17:26   0:00  \_ sleep 5
root       581  0.0  0.1   1804   656 tty2     Ss+  Feb18   0:00 /sbin/getty -8 38400 tty2
root       586  0.0  0.1   1804   656 tty3     Ss+  Feb18   0:00 /sbin/getty -8 38400 tty3
root       595  0.0  0.1   1804   656 tty6     Ss+  Feb18   0:00 /sbin/getty -8 38400 tty6
root       664  0.0  7.3  40244 37688 ?        S<Lsl Feb18   0:29 WatchDoge /opt/rockrobo/watchdog
root       705  0.0  0.0      0     0 ?        Z    Feb18   0:00  \_ [sysctl] <defunct>
root       688  0.0  0.1   2252   828 ?        Ss   Feb18   0:00 cron
syslog     697  0.0  0.3  30472  1564 ?        Ssl  Feb18   0:09 rsyslogd
root       763  0.0  0.1   1804   656 tty1     Ss+  Feb18   0:00 /sbin/getty -8 38400 tty1
root       765  0.0  0.1   1624   632 ttyS0    Ss+  Feb18   0:00 /sbin/getty -L 115200 ttyS0 vt100
root       782  0.0  0.1   2200   628 ?        S    Feb18   0:00 upstart-file-bridge --daemon
root       785  0.0  0.1   2468   964 ?        S    Feb18   0:00 upstart-socket-bridge --daemon
root       790  7.0 31.2 515820 159628 ?       S<sl Feb18 110:19 player /opt/rockrobo/cleaner/conf/ruby_chassis.cfg
root       838  0.0  0.4  60792  2120 ?        S<sl Feb18   0:01 RoboController
root       840  0.1  0.2  38752  1444 ?        S<sl Feb18   1:43 wlanmgr
root      1105  0.0  0.2   3892  1100 ?        S<s  Feb18   0:16 /sbin/wpa_supplicant -s -B -P /var/run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -c /mnt/data/wlan/wpa_supplicant.conf -C /var/run/wpa_supplicant
root      1267  0.0  0.4   5876  2132 ?        Ss   Feb18   0:00 /usr/sbin/sshd -D
root     26967  0.0  0.5   9260  2784 ?        Ss   15:23   0:01  \_ sshd: root@pts/1    
root     26984  0.0  0.3   2676  1716 pts/1    Ss   15:23   0:00      \_ -bash
root     30287  0.0  0.1   2340   900 pts/1    R+   17:26   0:00          \_ ps faux
root      1414  0.0  0.4   3976  2148 ?        S<s  Feb18   0:01 dhclient wlan0
root     22084  0.0  2.3  88904 11780 ?        Ss   15:14   0:00 /usr/sbin/apache2 -k start
www-data 22087  0.0  1.0  88992  5340 ?        S    15:14   0:00  \_ /usr/sbin/apache2 -k start
www-data 22380  0.0  0.9  88984  5076 ?        S    15:14   0:00  \_ /usr/sbin/apache2 -k start

 

Attention, apache c'est moi qui l'es ajouter, je monte une interface WEB directement dedans :-)

J'aimerais une interface à serveur perso de Pascal (https://www.serveurp...com/?page=robot) comme but final.

 

J'ai virer miio, car proprio, et dépend d'un cloud et application spécifique. (D'ou la création d'une interface web internne !).

 

Alors de mes recherche, il y as plein de fichier pipes dans /tmp.

 

/tmp/McRc servirait pour que le processus RoboController communique avec player (et yas le pie inverse pour que player renvoit à RoboController lol).

 

Jarrive à titile le LIDAR via ce fichier /tmp/McRc (le aire tourner, alors que le rebot est à l’arrêt, et avoir la carte via playerv)

 

J'ai aussi un peu fait joujou dans /tmp/RcNv pour faire des action (je peux kill violamment le robot sans que RoboController le sache)

 

Et pour faire un arret "propre" du robot:

#!/bin/bash
BTN="
 \367\1\4\1s\7\0\0\1\0\0\0A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
 \367\1\4\1t\7\0\0\1\0\0\0\301\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
"
for char in $BTN; do printf "%b" $char >/tmp/McRc; done

 

Et oui, poweroff/reboot, fait desfois des trucs chelou, mais globalement ca passe si vous passer via poweroff et reboot, mais je préfère quand même ma méthode, que je pense plus propre car je simule l’appui long sur le bouton Power)

 

PS:

Remarquez dans mes string à la con:

Power="A" pression / "201" relâchement(court) / "301" relâchement (long)

Home="B" pression / "202" relâchement (court) / "302" relâchement (long)

Les autres bit je ne sait pas à quoi il servent. Mais avec d'autres j'ai la même action.




#92734 Galoula, nouveau :-)

Posté par Galoula - 19 février 2018 - 05:24

Bonjour,

 

Je suis Gaël (Pseudo Galoula), 32ans.

 

Je suis Informaticien, travail beacups sous Linux, donc plutôt bon niveau.

J'aime bien l'électronique la mécanique etc ...

 

Je me suis inscrit, car je me lance dans un projet de modification d'un aspirateur robot Xiaomi (v1).

 

J'ai déjas comme projet, fait la domotique de ma maison (un gros robot n’es ce pas ?), mais elle ne bouge pas, contrairement au robot aspi :-)

 

Voilà !




#92729 Aspirateur Xiaomi Vacuum V1

Posté par Galoula - 19 février 2018 - 04:11

Bonjour à tous.

 

Depuis que j'ai aquis mon Aspirateur Xiaomi, j’attendais de trouver un hack pour le rooter, et voir ce qu'il à dans le ventre ...

 

Ce weekend je suis enfin tombe sur un projet GÉNIAL:

 

https://github.com/dgiese/dustcloud/

 

Il root son Aspirateur, et bingo un Ubuntu complet dedans :-)

 

J'ai évidement sauter dessus, et fait sur le miens, avec succès !

 

J'ai pas mal bidouiller dans le système, pour en premier lieu, le rendre autonome sans AUCUN CLOUD.

 

J'ai donc pas mal dezigguer de processus, modifier des fichiers de configation, et j'ai maintenant une superbe base pour apprendre la robotique. Je pense que pour 250€ avoir cette machine, c'est pas mal du tout non ?

 

Je vous dis tout de suite, je DECOUVRE la robotique, donc je n'y connait pas encore grand choses (mais je suis assez bon sous Linux)

 

Bon voilà, donc en fouinant dedans, je voit le processus "player", qui si j'ai bien compris, et LE truc qui gère les roue, le LIDAR, le sonar, les sondes IR et les bumpers.

 

J'arrive à me connecter dessus avec robot-playerv, et je voit en live ce que fait le robot. Par contre, je n'ai pas encore trouver comment avoir la carte directement dans le logiciel, et surtout, comment le faire "bouger" manuellement (c'est que je je cherche à faire).

 

Donc si vous avez cet aspirateur, foncez, je pense qu'il y as de quoi s'amuser.

 

Pour info voici mon "/opt/rockrobo/watchdog/ProcessList.conf"

#name,cmd,keyprocess,killtimeout,startdelay
#rrlogd,setsid rrlogd /opt/rockrobo/rrlog/rrlog.conf >> /mnt/data/rockrobo/rrlog/rrlog.log 2>&1&,1,300,1
player,setsid player /opt/rockrobo/cleaner/conf/ruby_chassis.cfg&,1,5,1
RoboController,setsid RoboController&,1,3,0
#AppProxy,setsid AppProxy&,0,3,0
wlanmgr,setsid wlanmgr&,0,3,0
#SysUpdate,setsid SysUpdate&,0,3,0
#miio_client,setsid miio_client -d /mnt/data/miio/ >> /mnt/data/rockrobo/rrlog/miio.log 2>&1&,0,1,9
#miio_client_helper_nomqtt.sh,setsid miio_client_helper_nomqtt.sh >> /mnt/data/rockrobo/rrlog/miio.log 2>&1&,0,1,0

RoboController-> Sert à garder les deux bouton Power et Home fonctionnel

player -> C'est avec ça que je veux jouer.

 

Pour le démarrer à distance:

#!/bin/bash
BTN="
 \367\1\4\1\f\0\0\0\1\0\0\0A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
 \367\1\4\1\r\0\0\0\1\0\0\0\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
"
for char in $BTN; do printf "%b" $char >/tmp/McRc; done

Pour le retour station à distance:

#!/bin/bash
BTN="
\367\1\4\1\322\6\0\0\1\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\367\1\4\1\323\6\0\0\1\0\0\0\202\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
"
for char in $BTN; do printf "%b" $char >/tmp/McRc; done

Le image, sont celles que j'ai pû récupérer directement dans /dev/shm du robot quand il fonctionne, je pense que c'est "player" qui les génèrent.

 

Je vous partage ces infos, car j'aimerais pouvoir sur dire d'aller me chercher une bière dans un futur proche :-)

Image(s) jointe(s)

  • image000000.jpg
  • image000001.jpg