dimanche 30 août 2020

Minidrone

Et voici quelques liens pour hacker le minidrone de Parrot
 
https://iot.goffinet.org/labs_mini-drone_controller.html

https://developer.parrot.com/docs/SDK3/ARSDK_Protocols.pdf
https://github.com/Parrot-Developers/arsdk-xml/

https://github.com/NodeMCU-Zero/gobot/blob/3c7285942ca0c510e83a14481f006229ed793452/platforms/parrot/minidrone/minidrone_driver.go

https://github.com/fetherston/npm-parrot-minidrone mac only ?

https://github.com/Mechazawa/minidrone-js bluetooth 4 only?

https://github.com/RIAEvangelist/node-parrot-drone wifi only

RX Kite controller

Quand on voit les vidéos de Cory Roeseler, on peut noter la grande barre qu'il utilisait et le fait qu'elle était pourvue d'une manivelle pour permettre de dérouler les lignes (reel ou unreel bar).

 Image

Différents modèles à 2 ou 4 lignes ont été développés à l'époque ou plus tard, notamment par John Bellacera


ReelBar-Orig.jpg

Unreel bar.jpgFlowbee Kite Reel.jpg Bellacera Bar.png

 

Il y a quelques années Dan Tracy de Pacific Sky Power a proposé une barre 4 lignes en crowdfunding sur kickstarter. J'ai été une des rares personnes a participé

1ère mauvaise surprise liée à ma naïveté : j'ai dû payé 88€ de TVA+11€ de droits de douane + 15€ de frais de dédouanement 

La barre est arrivée montée avec une courte notice. La fabrication est clairement artisanale, en tube de pvc et bois (à peu près à mon niveau, c'est pour dire !), mais il y a tout de même un peu de travail que je n'aurais probablement pas fait.


 Deuxième mauvaise surprise : il y a de la colle séchée sur les lignes. Beurk !

 

La troisième mauvaise surprise explique la précédente : plein de colle au fond du tambour, beurk!

 

Bon, ça ne fait pas vraiment plaisir, mais cela n'a pas grande importance.

Par contre, d'autres défaut de conception apparaissent à l'usage. D'abord les lignes qui s'enroulent en dehors du tambour si on ne les tend pas bien. On peut voir cela comme une mauvaise utilisation, mais une meilleure conception devrait permettre d'empêcher ceci, ou de bloquer en aidant à s'en rendre compte.



L'autre problème c'est l'impossibilité d'utiliser le border/choquer tant que toute la longueur des lignes n'est pas déroulée. Cela est peut-être satisfaisant pour certaines ailes très robustes, mais difficile avec celle que je teste (au début une aile à caisson 4 lignes sur 2 poignées qui n'est pas tout à fait adaptée à l'utilisation avec une barre, ou dont il faudrait que les lignes avant soient aussi renvoyés dans des poulies à mi-longueur de la barre.

Un dernier problème avec l'enrouleur est l'absence de frein. Si on lâche la manivelle, ça peut devenir dangereux ! Il y a bien un système de blocage avec un bout, mais son utilisation n'est pas aisée.

Enfin, la barre n'est vraiment pas agréable à l'utilisation. En plus du poids de la barre que l'on peut comprendre, la barre a des sortes de haubans/barre de flèche pour assurer sa rigidité. Cela rend difficile tout mouvement de la barre qui demande un effort important. Cela pourrait à la limite être vu comme un avantage car la barre se remet naturellement à zero degré lorsqu'elle est lâchée.

Pour finir ce piteux état des lieux, le câble métallique torsadé est abimé après 2 ou 3 utilisations seulement.

En conclusion, je ne recommande pas cette barre, mais je dois avouer qu'elle a le mérite d'exister !

 

Test kinect

Voici quelques notes sur des essais d'une kinect que m'avait prétée Stéphane Adam.
 
Installation pour avoir les images kinect arrivant dans python

Voici une video de démo de touch (utilisation de la kinect comme une souris, cela pourrait être utile sur un bateau où les doigts mouillées ne marchent plus sur les écrans touchscreen). Le code est là.

J'ai fait le test, mais ça ne marche pas très bien.
Il faut être à la bonne distance. Les doigts sont vus en double et la captation est perturbée par la lumière du jour (ce qui m'a obligé à fermer mes volets).

Bon sinon, la fonction de tilt automatique sur la kinect est amusante.

Garmin 360

Voici quelques points d'entrée qui j'espère pourront aider quelques souhaitant hacker la caméra virb 360. C'est la caméra 360 que j'utilise pour mes vidéos de kiteboat, ou par cerf-volant.

 

Une fois connecté sur le même réseau que la caméra

sudo apt-get install avahi-discover

avahi-discover

Found service '7390' of type '_garmin-virb._tcp' in domain 'local' on 2.0.

ping 7390.local

64 bytes from Garmin-WiFi (192.168.1.58): icmp_seq=2 ttl=64 time=6.34 ms


J'ai maintenant le nom de ma caméra Garmin-WiFi

A partir du document Camera_network_services_API.pdf

curl --data "{\"command\":\"status\"}" http://Garmin-Wifi/virb

{"apiMin":3,"apiMax":3,"batteryLevel":34.000000,"batteryChargingState":0,"totalSpace":7763124,"availableSpace":6008732,"gpsLatitude":47.214432,"gpsLongitude":-1.540702,"antSensor":0,"btSensor":0,"btHeadset":0,"wifiSensor":0,"recordingTimeRemaining":527,"photosRemaining":1543,"photoCount":0,"recordingTime":0,"wifiSignalStrength":40,"wifiMode":"STA","state":"idle","lastMediaEventTime":3359,"result":1}

curl --data "{\"command\":\"sensors\"}" http://Garmin-Wifi/virb

{"sensors":[
{"name":"InternalGyroX","type":"LOCAL","has_data":"1","units":"Degrees/Second","data_type":"double","data":"4.329268"},
{"name":"InternalGyroY","type":"LOCAL","has_data":"1","units":"Degrees/Second","data_type":"double","data":"0.000000"},
{"name":"InternalGyroZ","type":"LOCAL","has_data":"1","units":"Degrees/Second","data_type":"double","data":"-13.780488"},
{"name":"InternalAccelX","type":"LOCAL","has_data":"1","units":"InstG's","data_type":"double","data":"0.018066"},
{"name":"InternalAccelY","type":"LOCAL","has_data":"1","units":"InstG's","data_type":"double","data":"-0.098633"},
{"name":"InternalAccelZ","type":"LOCAL","has_data":"1","units":"InstG's","data_type":"double","data":"-1.012207"},
{"name":"InternalAccelG","type":"LOCAL","has_data":"1","units":"InstG's","data_type":"double","data":"1.017162"},
{"name":"Altitude","type":"LOCAL","has_data":"1","units":"Meters","data_type":"double","data":"215.007126"}],"result":1}

https://github.com/JanKlopper/garmin-virb/blob/master/virb.py

curl --data "{\"command\":\"livePreview\",\"streamType\":\"rtp\",\"maxResolutionVertical\":\"100\",\"liveStreamActive\":\"1\"}" http://Garmin-Wifi/virb

{"result":1,"url":"rtsp://192.168.1.58/livePreviewStream?maxResolutionVertical=2160&liveStreamActive=1"}

L'url peut-ensuite être mise dans un navigateur qui proposera d'ouvrir le flux avec vlc. La résultion minimale est 360, maximale 2160

J'ai aussi trouvé une appli html permettant de contrôler depuis un pc sans windows, mais je n'ai pas réussi à la faire marcher

https://github.com/skaterlui/VIRBControlUI5

Les données du magnétomètre sont manquantes dans les données json.

Pourtant les données sont bien présentes dans les fichiers .fit. J'ai pu les lire soit à partir de la bibliothèque python fitparse, soit en convertissant les fichiers .fit grâce au SDK ant

sudo java -jar FitCSVTool.jar 2018-03-17-19-38-56.fit


Les données obtenues sont toutefois un peu brutes car elles correspondent aux valeurs des registres (par exemple 32935 est probablement proche de la moitié de 2^16). Les données sont enregistrées toutes les 4ms pour gyro, accéléro et magnéto et toutes les 40ms pour le baromètre dont la résolution en sortie semble limitée à 20cm

Le bruit sur l'accéléro est de l'ordre de 0.01g, celui sur le gyro de l'ordre de 0.3°/s pour une résolution de 0.05°/s. Le signal du capteur d'altitude est régulièrement plat. Cela peut-être lié à un bruit inférieur à la résolution, qui semble cependant variable...

Bebop 2

Je partage ici en vrac quelques liens sur le drone Bebop 2 qui peut servir soit à faire de belles vidéos de kiteboat, soit à découvrir les autopilotes de drones qui pourraient servir de base ou d'exemple pour un autopilot de kite.

Le Bebop 2 est conçu par Parrot et fonctionne très bien avec le logiciel propriétaire Parrot (qui a une API ouverte). Parrot a également ouvert son matériel pour permettre l'utilisation d'autres plateformes. Le drone a pour conséquent été hacké par de nombreuses personnes.

Des indications étaient notamment disponibles sur le side developer de Parrot, mais elles ont malheureusement disparues depuis.

Guide du hackage
http://fargesportfolio.com/wp-content/uploads/2018/01/BeebopHackingGuide1_7_2.pdf

Skycontroller 2
Il s'agit de la télécommande qui grâce à son antenne directive permet de piloter et recevoir la vidéo du drone jusqu'à 2km.
https://www.rcgroups.com/forums/showthread.php?2728773-Official-Parrot-Disco-%2A%2A%2AOwner-s-Thread%2A%2A%2A/page53
https://github.com/jberaud/joystick_remote/issues/2
https://github.com/uavpal/disco-docs/wiki/skycontroller-2 

https://discuss.ardupilot.org/t/controlling-parrot-drones-using-skycontroller2/52647

4G
https://github.com/uavpal/beboptwo4g

Video streaming
https://developer.parrot.com/blog/2016/play-bebop-stream-on-vlc/

Paparazzi

https://www.youtube.com/watch?v=pv0CAQC6iAE


Ardupilot
Compilation  http://ardupilot.org/dev/docs/building-for-bebop-2.html
https://www.youtube.com/watch?v=Ir0DyvlbTM0

https://www.youtube.com/watch?v=HJN_gT1eNDk

https://www.youtube.com/watch?v=jFNdy4UPq_4

https://www.youtube.com/watch?v=lf9X7BZ7XbU

https://www.youtube.com/watch?v=ay0b1HgASM0

ROS

https://www.youtube.com/watch?v=fGKR1G7orKA

https://bebop-autonomy.readthedocs.io/en/latest/

https://docs.google.com/document/d/1oVEO_3HxiXwagmXyrMhh8KIorxdNxHejzwBQ876_fpM/edit

http://debojj.net/downloads/bebop-ros-demo

https://github.com/Michionlion/bebop_teleop

OpenCV
https://www.youtube.com/watch?v=aT_kC5ZE2Oc

PX4

https://docs.px4.io/en/flight_controller/bebop.html
https://www.youtube.com/watch?v=hTVNHlqxWBk

https://www.youtube.com/watch?v=loC3IJpMdNs

https://review.px4.io/plot_app?log=d9bf3e69-ecc5-478c-8713-23581efa84ad

Mètre ruban

(Notes réchauffés d'octobre 2016)

Je fais face à un problème sur les premières versions.

Il y a parfois du mou dans les lignes ce qui conduit à un surpattage.

Ma première parade a été d'utiliser du fil élastique

J'ai d'abord essayé avec du sandow (plus pour faire un border-choquer automatique d'ailleurs).

Afin de choquer sous tension, il fallait mettre les sandows sur les lignes servant à border, donc sur les arrières qui servent aussi au contrôle.

Une conséquence est que le contrôle n'était plus précis (mais possible de rééquilibrer avec un jeu de poulie).

Une autre approche est de mesurer la tension dans les lignes, puis de déclencher un moteur si la tension devient trop faible.

Ou encore de faire tourner en permanence un petit moteur avec un couple faible.

Une autre application est de ramener un cerf-volant monofil à terre en cas de chute de vent avec un système "passif".

Je cherchais donc un moteur à ressort de type moteur à barillet, aussi appelé moteur à force constante. Un tel moteur est difficile à trouver (si ce n'est moteur mécano sur le bon coin). J'ai bien trouvé des pièces sur des sites spécialisés mais pour quelques centaines d'euros, alors que ce que je cherche est intégré dans les laisses rétractables, dans le enrouleur à rappel de fil pour les enclos agricoles, ou simplement dans les mètres rubans.
Le mieux étant peut-être l'enrouleur de fil à linge qui va facilement jusqu'à 30m pour environ 15€.

Aujourd'hui j'ai testé une autre solution avec un simple petit mètre ruban avec enrouleur à ressort.

Mètre ruban métallique de 5m
40g de traction quand la longueur est réduite
200 g de traction quand la longueur est augmentée

Mètre ruban souple de 1.5m
20g
120g

Puissance par m2

On me demande quelle taille de cerf-volant est nécessaire pour tirer un grand bateau.

La question comme ça est un peu vague, il faut donc faire des hypothèses.
Un bon début est peut-être de donner la formule donnant la puissance du vent par 1m2. Cela correspond au flux de l'énergie cinétique du vent à travers 1m2

Une première expression est donc celle de la puissance incidente du vent
1/2*rho*v*S*v^3
Pour un vent de 8m/s (15kt) cela donne une puissance de 275W/m2.
Il faut ensuite considérer la limite de Betz qui donne un "rendement théorique" maximal (16/27) qui est dû au fait que toute l'énergie ne peut pas être récupérée. Cela donnerait une puissance théorique max de 163W/m2. La question est ensuite quelle surface de référence prendre.

Dans le cas d'une éolienne c'est généralement la surface balayée par les pâles qui est considérées. Pour un cerf-volant, il faudrait considérer cette surface également, mais comment la caractériser?

Une deuxième approche est de partir du rapport portance sur traînée. C'est l'approche de Loyd en 1980.
A 15kt, 600m2 produiraient 1MW avec un rapport CL/CD de 5 dans l'idéal, soit un peu moins de 2kW par m2. Plus vraisemblablement on peut retenir 1kW (1.4CV) par m2 pour une aile de kite (bien plus pour une aile rigide).

Pour un petit bateau, 4 à 5m2 peuvent donc remplacer un petit moteur 6CV si le vent est là.

Des calculateurs en ligne permettent d'estimer la vitesse du bateau et peut-être d'extrapoler à de plus grands bateaux !



AWEC 2015 (réchauffé...)

Simulateur de kite

KiteSat

Le proto de Rod Read. Il se plie comme une tente deux secondes

Le cerf-volant, l'aile, le planeur, l'avion wing Tec?

L'aile de TU Delft