Beachte jeweils, dass action_namespace, TelloCommands.TAKEOFF etc. als Konstanten in common folder #19 gespeichert werden und von dorthin importiert.
Keep in mind
The points we sent to the control node coordinates, i.e., the control node then calculates the relative distance and rotation needed to reach that point.
this also means that home coordinates will be (0,0,0)
TODO
[x] test
[x] "Battery check"
example (mocks everything needed): set N=3, finds 2 and then has to return home
[x] when battery lows it executes correctly the return home sequence
[x] sends correct fly home coordinates to control
[x] ReturnHomeDynamicActionClient
[x] the tree ticking terminates
[x] "Rescue victim"
example: N=2, finds 2 and terminates
[x] terminates when all N victims found
[x] mock ActionServers (in same package) for testing purposes
[x] mock commandaction
[x] mock moveaction
[x] create Dockerfile
[x] implement missing logic
[x] #31
[x] edge cases #32
[x] implement missing leaf nodes of the behavior
[x] Path planning #26
[x] Return home #27
[x] #29
[x] merge main after pull request done & issue closed
[x] #34
If needed
[ ] add printing of blackboard variables for debugging purposes (don't delete, just comment out/uncomment based on usage): print(py_trees.blackboard.Blackboard()) - might be enough, but maybe instead use mechanism from py_trees_ros
The Blackboard Exchange wraps a Blackboard with a ROS API to provide easy introspection of a blackboard from outside the tree. ... py-trees-blackboard-watcher command line utility provides a convenient means of interacting with the watching services.
beim Meeting 4.4.2024
22
[x] bespreche mit @SebastianM00968493 was mir @11811341 erklärt hat bzgl. Änderung der Defintion von PlaningMoveAction etc. (siehe Discord dazu und schreibe ergebnisse der Absprache in DIscord channel and into the issue) - sollte schon in #22 stehen, was wir besprochen haben!
Fragen an Prof.
zeige v.a. was du schon hast!
22 unter "Beides" - sollten wir's so lösen oder anderer Vorschlag?
A: machen wir schon so, Control sollte überprüfen bzw. wieder in einem Toleranzbereich die Drohne einbringen
irgendwelche Erfahrungswerte für Zeit von:
defaults.Planning.BT_SETUP_TIMEOUT (sehe in Datei)
A: ändere für jetzt auf 30 sek., sonst per testen herausfinden
ticken von BT (weil's ja von topics abhängt, wobei Batterie haben Sie jede 5 Sek. empfohlen, was aber natürlich zu lange war - somit eine obere Schranke)
A: finde selbst heraus
32 sehen Sie noch welche Edge Cases, die katastrophal für uns wären? (präsentiere bisherige implementierte Lösungen)
27 sollten wir bei diesen Fällen die ganze Anwendung zum Terminieren bringen?
termination von ganzer Anwendung schwer, führe in ein Safe-State (e.g., land)
wir können ohne "Stop above victim" den BT haben (dh. control brauch nicht den command zu unterstützen), weil wir nur nach einem Move auf victim überprüfen? Oder müssen wir ständig auch während des Fliegens auf victims überprüfen und gleich bei einem Fund stoppen und dann weiterfliegen?
können wir bei Aufnahme von einem Frame (als Teil einer Ausführung des Rescue-Subtrees) irgendwelche Annahmen treffen - z.B. das ist nur ein Opfer dort gibt? Dann könnten wir nämlich gleich landen
beim test konnen wir sagen dass wir max 1 opfer pro bild haben wollen
müssen wir (unabhängig von Anzahl von Opfern) direkt neben dem Opfer landen oder reicht's wenn in FOV gelandet wird, wo der Opfer erkannt wurde?
wegen obigem reicht's einfach zu landen (sagen wir mal wir sind in approximity)
Muss die Drohne im gewissen Fällen (wie "Return home" oder nachdem ein Bereich abgedeckt wurde& Drohne zu unerforschten Grenzen soll) sich bei Rückflug innerhalb von Boundaries halten? Das scheint überflussig zu sein, warum könnten wir da nicht einfach direkt nach Hause fliegen? In unserem Use-Case sollte's ja keine katstrophale Obstacles in solcher Nähe von Boundaries geben...
@11811341 können wir benutzen um tracken, was wir noch machen sollen bzw. was wer macht (z.B. durch Linken des Branches oder so), feel free to add anything missing
Beachte jeweils, dass
action_namespace
,TelloCommands.TAKEOFF
etc. als Konstanten incommon
folder #19 gespeichert werden und von dorthin importiert.Keep in mind
The points we sent to the
control
node coordinates, i.e., thecontrol
node then calculates the relative distance and rotation needed to reach that point.TODO
ReturnHomeDynamicActionClient
If needed
print(py_trees.blackboard.Blackboard())
- might be enough, but maybe instead use mechanism from py_trees_rosbeim Meeting 4.4.2024
22
PlaningMoveAction
etc. (siehe Discord dazu und schreibe ergebnisse der Absprache in DIscord channel and into the issue) - sollte schon in #22 stehen, was wir besprochen haben!Fragen an Prof.
22 unter "Beides" - sollten wir's so lösen oder anderer Vorschlag?
defaults.Planning.BT_SETUP_TIMEOUT
(sehe in Datei)32 sehen Sie noch welche Edge Cases, die katastrophal für uns wären? (präsentiere bisherige implementierte Lösungen)
27 sollten wir bei diesen Fällen die ganze Anwendung zum Terminieren bringen?