Portál AbcLinuxu, 8. května 2025 06:54
Jak spustit automatizaci po zajeti do stanice vim.........
................Tam by ale bylo nutne checkovat, zda je robot v dokovaci stanici. A to vuec netusim
nóó tak to víš nebo nevíš????????? :O :O
ty to jako detekuješ třeba nějak kamerkou/senzorem zvnějšku nebo to ten robůtek umí jakoby nějak sám vodsebe poznat a umí sám třeba udělat nějakej příkaz když zajede do tý dokovací stanice?? :O :O pokud to umí poznat nějak a ten příkaz je furt stejnej tak je imho blbost nato brát ssh a mit to závislí na nějakým dalším stroji :O ;D
tak jako tak si ty příkazy v robůtkoj napiš jako bash skriptík hele jestli to sou furt stejný příkazy nóó a pak skriptík buď pouštěj z nějaký ty 'automatizace' v robůtkoj nóó nebo třeba skrz to ssh jestli to nejde řešit jinak :O :O
uživatel kterej to bude pouštět bude muset mit práva nato udělat ten reboot hele (misto shutdown piš reboot)
#!/usr/bin/env bash # je nutný furt nazačátku dělat to chmod na složce?? mysim že ne :O :O # tamto mv a cp si myslim že de nahradit pomocí kopírování s přepsáním :O ;D # reboot se udělá jenom když první příkaz jakože to cp uspěje ale asi bude potřeba cp -f /mnt/data/rockrobo/backup/last_map /mnt/data/rockrobo/ && reboot
btw tendleten robůtek by jako měl mit nějakej svuj komunikační protokol hele a třeba by toho šlo ňák využít ale tomu nerozumim :D
hlídat nabíjení by moh bejt dobrej hack jak to jakoby vobejít jestli si to robot neumí jinak pohlídat to že je zaparkovanej jakoby v tom svým 'domečku' :D ;D
slabina tohodletoho řešení je když třeba vypadne eletrika nebo tak něco ale toby zas jako nemusel bejt až takovej problem prostě byho to restartovalo :O :O
takže třeba takle nějak nekonečnej hlídací skriptík
#!/usr/bin/env bash # pomocná proměná 'robot_byl_mimo_domecek' která si pamatuje jestli už robot vyjel z domečku # předpokládám že výchozí stav je žeje robot ve svým domečku a nabíjí se # a eště teda jakoby nebyl mimo ten svuj nabíjecí 'domeček' robot_byl_mimo_domecek=0 #nekonečnej cyklus while true do # on_ac_power nám vrací jedničku když je 'počítač' strčenej dozásuvky a nulu když jede z baterek # https://linux.die.net/man/1/on_ac_power if on_ac_power; then # pokud je proměná 'robot_byl_mimo_domecek' rovna jedičce if [ $robot_byl_mimo_domecek -eq 1 ]; then #robot se nabíjí a už byl mimo domeček -> chápem to jakože přijel zpátky do svýho domečku # a mužem udělat tamto přepsání mapy a reboot cp -f /mnt/data/rockrobo/backup/last_map /mnt/data/rockrobo/ && reboot fi else #pokud se nenabíjí tak asi vodjel z domečku robot_byl_mimo_domecek=1 fi #pět sekund počkáme a uděláme cyklus znova a tak dál a tak dál prostě furt donekonečna sleep 5 done
nóó a protože ubuntu 14 nemá systemd ale nějakej takovej ten starověkej initd nóó tak si nejsem uplně jistá jak jako ten skriptík správně pustit jako service nebo co tam v tom initd maj aby to hlídalo když třeba nějak skriptík spadne a znova hoto pustilo :O :O :/ :/
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.