vault backup: 2025-02-05 14:38:06

This commit is contained in:
2025-02-05 14:38:07 +01:00
parent 6ae96b0862
commit 23fd82117a
3738 changed files with 218546 additions and 24 deletions

View File

@@ -0,0 +1,65 @@
---
aliases:
tags:
- daily
---
# Tasks
- [x] find led boards
- [x] test servo across the brushes
# Planning
#planning #plan/2023/Q4
## Goals
What goals do we want to achieve until the end of the year?
### Delivery Goal
Do a simple but complete demo including hooks, delivery table, drone and small parcel
1. Bring drone, hook, table, light-weight package, tablet with QGC and remote control
2. setup hook, put drone into hook and connect power (nice switch)
3. Wait until drone gives ready signal (RGB LED? sound with motors?). In order to be ready it will RTK GNSS, LTE connection with ground control station
4. Drone opens payload bay (because of switch, or payload handover model or something like this)
5. User can put empty parcel into the payloadbay
6. User walks back (drone blinks orange if person is too close)
7. Once user is 2 m away drone blinks green and closes payload bay
8. It starts to fly to 5m altitude
9. flies to table (known rough location, or high resolution camera)
10. hovers above table for a moment
11. slowly approaches table and opens payload
12. payload ejection
13. payload closing
14. fly back to cruise altitude
15. fly back to hook
16. land in hook if people are not around hook
If the cruise-mode is ready until then we can also do a cruise mode demo:
Instead of having the table close-by we put the table at 500 m distance (have a webcam that films the table) and do the same demo.
### Cruise Mode Goal
1. Get new propulsion system working
- make sure it doesn't vibrate
- measure efficiency with test stand
- go to wind-tunnel to test it in cruise mode
- make sure that the virtual swashplate actuation is working and characterize it.
- make sure that the variable pitch is working
- characterize the slip-ring performance
2. Use PX4 VTOL mode to fly the drone in VTOL: meaning in hover, transition and cruise and back transition
3. Measure endurance (how long can we cruise with a full battery?)
## Work to Do
What is needed in order to achieve those goals?
### Hardware
- [ ] Iterate 2-3 times a full drone build including all our boards.
- [ ] New PDB with battery pack
- [ ] both carrier boards with cooling in place
### Software
#### Low Level Software
- [ ] Control system that can keep its position to 10 cm accuracy for the hook landing. It will need to be able to reject wind gusts properly
#### High Level Software
- [ ] ROS2 system needs a big brush up:
- [ ] Good trajectory planner node
- [ ] high level state machine that can execute different behaviours (behaviour tree)
- [ ] Camera to Vision pipeline: 3d foundation model,
- [ ] node to communicate with ground control station (mavlink router node)
- [ ] node to handle battery communication:

View File

@@ -0,0 +1,20 @@
---
tags:
- daily
date: 2023-10-11
---
## Tasks
- [ ]
## Quick Notes and Thoughts
- Does it make sense to mix languages in the Obsidian vault?
## Learnings
Wir iterieren durch PCB-Versionen ohne sie überhaupt richtig zu testen und zu brauchen, weil eine neue Idee gekommen ist die jetzt implementiert werden muss.
Es ist eine teure und viel zu langsame Methode, um ein Produkt zu entwickeln. Viel besser meiner Meinung nach wäre ein viel zu simpler Prototypen zu entwickeln, wo man sich genug Zeit nimmt um die wichtigen Fragen zu beantworten. Im Fall von der Drohne wäre es zum Beispiel:
- Batteriespannung (6s vs 10s vs...)
- Wie genau wird die Drohne angetrieben? Funktioniert es in allen gewünschten Flugphasen (cruise vs hover)?
Dann als erster Schritt wäre eine Simulation aufzubauen die einfach ist, aber die zeigt
was der Roboter kann, um die künstliche Intelligenz zu zeigen und um gleichzeitig an der Hardware und and der Software zu arbeiten.

View File

@@ -0,0 +1,20 @@
---
tags:
- daily
date: 2023-10-13
---
## Tasks
- [ ] Do review of jerrys code
- [ ] get the demo to work. why is offboard mode not working
- [ ] do a quick dummy project to learn how to implement tests in ros (and cmake)
- [ ] then implement tests for the trajectory generator library (negative values if smaller than 10m)
## Quick Notes
- #todo/p yuka protein article to obisdian
- #todo/p make a list of tags in my main obsidian vault that I can use to organize things
## Learnings
- ich habe keine Ahnung über Drohnenindustrie. Kenne keine Firmen und nur wenig über gesetz. Keine Kürzel etc.
- sabi war wieder hier, spannende lektüre über USA und Sowjetunion. er überlegt sich sehr viel bezüglich volkswirtschaft. Währungsunion: DE profitiert, da falls sie zurück zur Deutschen Mark gehen ist DM stärker als euro. Italien oder Griechenland nicht, sie könnten sich nichts mehr kaufen (sie selbst produzieren auch nichts.)
- ewiges Gespräch über was wir machen sollten mit Firma.

View File

@@ -0,0 +1,13 @@
---
tags:
- daily
date: 2023-10-14
---
## Tasks
- [ ]
## Quick Notes
## Learnings

View File

@@ -0,0 +1,24 @@
---
tags:
- daily
date: 2023-10-16
---
## Tasks
- [ ] Find a way to properly implement the PX4-Commander
## Quick Notes
### PX4-Commander
The idea of this module is that there is one instance running that handles all commands that are being sent to the px4 flight controller. Because as soon as the px4-offboard mode is being used we need to stream commands at a minimum of 2 Hz, else PX4 will fallback to another flightmode and thus we loose control.
If we now want to implement different behaviors that can be combined together, such as a hooklanding, delivery procedure, keep position, loiter, etc. we need a way of sending those commands continuosly without interruption.
There are different approaches on how we could implement this:
1. one central node (px4-commander) that runs its main loop and has multiple action servers, where each action server implements one behavior. The central node then manages those actions and makes sure that only one can be executed at the time (I think of it as if we hand a baton from one action server to the next as in a relay race). If no action is actively running the central node immediately runs a fallback (keep position) to keep the drone in px4-offboard mode.
2. Look at how NAV2 implements this and see if we can copy it. The NAV2 library is implemented well and we should get inspired by it.
#### Thoughts
#osd-thoughts
Ich kann mich nicht spezialisieren. Nach den heutigen Recherchen sehe ich wie kompliziert ROS2 sein kann (und auch wie effizient). Jedoch kratze ich nur immer an der Oberfläche für eine schnelle Implementierung und kann unsere Software nicht gründlich und langfrisitg implementieren.
Ich bin gestresst. Heute habe ich fast alle meine Nägel inkl. Haut abgeknabert. Ich war wie in einer Paralyse und konnte mich nicht dazu bringen irgendetwas zu machen. Ich fühlte mich komplett überwältigt und eingefroren. Ich weiss eigentlich was ich machen sollte, kann mich aber nicht dazu bringen es auszuführen.
## Learnings

View File

@@ -0,0 +1,14 @@
---
tags:
- daily
date: 2023-10-17
---
## Tasks
- [x] Continue with nav3
## Quick Notes
## Learnings
#cpp you need to compile before you run the codes --> do this with a macro not to forget it every time

View File

@@ -0,0 +1,45 @@
---
tags:
- daily
date: 2023-10-18
---
## Tasks
- [ ] Write node that generates Odometry message and topic for the odometry_utils smoother.
- [ ] implement tasks in vscode to run tests efficiently
- [ ] Maybe implement a devcontainer? --> how would you do that with credentials?
- [ ] write obsidian articles about pointers: inspiration here: https://iamsorush.com/posts/weak-pointer-cpp/
- [x] Implement a placeholder class for Costmap, that has the main functions, but always returns collisionfree if asked about collision, etc. --> we will populate it later on.
- [x] then implement the nav3_core/include/nav3_core/behavior.hpp
- [x] then implement the nav3_behaviors package: mostly the timed_behavior.hpp and behavior_server.hpp, but also a single behavior as example: wait.hpp
## Quick Notes
NAV3 is our custom implementation of [[ROS2 - NAV2 Library]]
### Missing for NAV3
- nav3_bringup: a entry point to run the correct packages etc.
- nav3_planner (base impl)
- nav3_controller
- nav3_lifecycle_manager
- nav3_smoother (just immediately return the same path)
- nav3_bt_navigator
- nav3_waypoint_follower
later:
- nav3_voxel_grid
- nav3_costmap_3d
- nav3_rviz_plugins
- nav3_collision_monitor
- nav3_map_server
- nav3_simple_commander
- nav3_system_tests
- navigation3: parent_package
- tools
## Learnings
Caloric intake
- 80 ml milk x2 --> 1.8 * 64kcal = 115.2kcal
- indian food: 1.5 Naan (300kcal) + vegetable curry (est. 700 kcal)
- 1 row chocolate
- apple
- joghurt: 213 kcal
- raclette:

View File

@@ -0,0 +1,65 @@
---
tags:
- daily
date: 2023-10-19
---
## Tasks
- [ ] Write node that generates Odometry message and topic for the odometry_utils smoother.
- [ ] implement tasks in vscode to run tests efficiently
- [ ] Maybe implement a devcontainer? --> how would you do that with credentials?
- [ ] write obsidian articles about pointers: inspiration here: https://iamsorush.com/posts/weak-pointer-cpp/
- [ ] prepare swashplate testing
- [ ] prepare drone for tomorrow
- [ ] call with jerry
- [ ]
Tomorrow:
finish nav3_bt_navigator:
make sure that the behaviortrees that are added contain only BT-nodes that exist
make sure that the default plugin-list only contains BT-nodes that exist
write instructions on how to add a new plugin/bt-node: [[How to add a Behavior Tree Node]] --> it needs to be added to the default list in bt_navigator/bt_navigator.cpp as well.
## Quick Notes
### Talk with Jerry
TODOS
- [ ] ask about proximity cost again
#### 3D map is in C#
**PathfinderDepthValues**
Calculates length of the fruxels (initFixedValues)
Fruxelsystem:
64 Onion layers (index i), first 15 layers are linear, then the length is increased exponentially with a compound factor.
![[Pasted image 20231019124320.png]]
Node means Fruxel.
GetNodePosition: get position of the node/fruxel center relative to the drone center
ProximityCost: [Document](https://onesecinc.atlassian.net/wiki/spaces/MC1/pages/201195521/3D+foundation+model) that defines it (90+sqrt) --> implemented in CalculateProximityCost
GetDistanceForIndex: distance from center to the start
**FruxelNode**
understand x y and z
![[Pasted image 20231019125901.png]]
x is 360°, y is 180°
**FruxelGrid**
This is the 3D-map
GetNode function: takes care of wrapping fruxel indices
3DMapHierarchy is not important for me.
#### Pathfinder is in C++
It is designed as a library --> inigo did use it as well.
Grid.cpp --> fruxelgrid
GridNode.cpp --> FruxelNode
PathFinderController: entry point
## Learnings
## Todo Longterm
- [ ] write down manufacturing steps and products.
- [ ] propeller manufacturing / prototyping
- [ ] carbon fiber parts
- [ ]

View File

@@ -0,0 +1,18 @@
---
tags:
- daily
date: 2023-10-20
---
## Tasks
- [ ] finish nav3_bt_navigator:
- [ ] make sure that the behaviortrees that are added contain only BT-nodes that exist
- [ ] make sure that the default plugin-list only contains BT-nodes that exist
- [ ] write instructions on how to add a new plugin/bt-node: [[How to add a Behavior Tree Node]] --> it needs to be added to the default list in bt_navigator/bt_navigator.cpp as well.
- [ ] make sure drone flies
- [ ]
## Quick Notes
Test sync capabilities
## Learnings

View File

@@ -0,0 +1,14 @@
---
tags:
- daily
date: 2023-10-23
---
## Tasks
- [ ] implement fruxel grid
## Quick Notes
## Learnings
Did I learn something today? Hmm. Not sure.

View File

@@ -0,0 +1,17 @@
---
tags:
- daily
date: 2023-10-24
---
## Planning Tomorrow
- [ ] talk to jerry about the wrapping of indices
- [ ] implement the actual fruxelGrid class
- [ ] use it to do stuff
## Quick Notes
Today I have learned how to implement a fruxel grid and how to wrap the indices.
The fruxel grid will be implemented according to [[Graph Theory]] instead of an actual grid. Because like this the [[A* Search Algorithm]] is easier to implement and also more efficient.
## Learnings

View File

@@ -0,0 +1,56 @@
---
tags:
- daily
date: 2023-10-25
---
## Tasks
- [x] #todo/p Steuerleitfaden 23: 5k von mum
- [ ] #todo/p Steuer begleitdokumente via Obsidian machen. Dann kann ich von überall darauf zugreifen.
- [ ] #todo/p little snitch app on mac --> what network connections are allowed and which ones arent
- [ ] #todo/p use git/gihub to sync and backup
- [ ] #todo/p use nas to backup
- [ ] #todo/p [home-assistant](https://youtu.be/imH01FvTssc?t=201) on NAS
- [ ] #todo/p monica crm on NAS
- [ ] #todo/p web site change detection on NAS
## Quick Notes
## Learnings
### Wrapping
#learning/bite
2D Wrapping of Latitude and Longitude is more complicated than the simple modulus operation as with angles.
This [gist](https://gist.github.com/missinglink/d0a085188a8eab2ca66db385bb7c023a) helped me understand what is happening.
#learning/cpp
- how to compare two files in VSCode ;; right click first: *select for Compare*, 2nd file right click: *Compare with Selected*
<!--SR:!2024-03-11,55,310-->
### Visibility
#learning/bite
If you want to make something visible on any background you can use a harsh contrast change (just like a chess board). On a dark background the white parts will stand out, whereas on a bright background the dark parts will stand out. So you will always be able to see the shape of the object. The same works with neural networks. This was used with our landing hooks
### Lex Fridman Podcast
[Jared Kushner with Lex Fridman](https://lexfridman.com/jared-kushner-transcript)
#quote
> You learn the most about who you want to be and how the world works from your lowest moments. And at those lowest moments, it made me better and it taught me how to be a better friend to people who are in tough situations.
\- Jared Kushner, 2023
#quote
>And I just went into battle mode and I put my armor on and I just ran into it. And for the next two years, every day was painful. I was dealing with banks, the company still had subpoenas, I was still in law school. Id tell my father I wanted to drop out of law school and business school, but he said, “Please dont.”
>...
>And it was just a very, very challenging time. But like I said to you before is that you learn the most about life and you learn the most about humanity and yourself when youre in your most challenging periods.
\- Jared Kushner, 2023
Ich kann nachvollziehen wieso sie das sagen. An deinen tiefsten Punkten bist du verletzlich und denkst viel mehr darüber nach was alles nicht gut läuft. Du merkst vielleicht wie sich andere Leute entgegen deinen Erwartungen verhalten.
___
#quote
>And what happened was is he was walking around the pool and I just started walking with him and he said to me, “Jared, in life sometimes, we get so powerful that we believe that were the dealer.” He says, “But were not the dealer. Gods the dealer. And we have to come down to earth to understand,” like you said. So what I took from that was that my father, with all of his success, had started to believe that maybe certain rules didnt apply to him. And I think that thats where he made a mistake. And I think he had a lot of regret that he made the mistake. And my father is a very humble person. Hes a very moral person.
\- Jared Kushner, 2023
Das ist eine Weise aussage und ich glaube sie trifft auf F zu. Aber ich glaube nicht, das F so reflektiert ist. Wie kann ich mich selber immer wieder daran erinnern, dass mir das nicht passiert?

View File

@@ -0,0 +1,73 @@
---
tags:
- daily
date: 2023-10-26
---
## Tasks
- [ ] #todo/b finish file format implementation (v0.2, unit tests)
- [ ] #todo/b Add automated unit tests in the gitlab
- [ ] #todo/b use the fileformat in the 3d map implementation
- [ ] #todo/p start exam_generator project. Is this a software that can actually make profit?
- [ ] #todo/p mario games auf tutti
- [x] Add v0.2 samples to testing #todo/b ⏫ 📅 2023-10-27 ✅ 2023-10-27
- [x] Implement the gitlab CI for the unit tests of the fileformat project #todo/b 🔽 📅 2023-10-27 ✅ 2023-10-27
## Quick Notes
## Learnings
#learning/investing
- Compound interest is key to building wealth. The average yearly return of the S&P 500 over the last 30 years was 9.9% (or 7.2% inflation-adjusted).
#learning/cpp
* how long is `"hi"` as a char array? ;; Length 3. In addition all char arrays in C and C++ contain the null terminator indicating the end of this string: `"h", "i", "\0"`
<!--SR:!2023-12-10,14,290-->
[[GTest Framework|GoogleTest]] is actually a great method to test your code during development. I should always start with google test instead of a dummy main function that executes stuff and immediately shows if its working or not.
It is also surprisingly easy to get started with the google test library in C++. You just need to define the following [[CMake|CMakeLists.txt]] in your `test` subfolder:
```cmake
# 1. integrate GTest
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.11.0
)
FetchContent_MakeAvailable(googletest)
add_library(GTest::GTest INTERFACE IMPORTED)
target_link_libraries(GTest::GTest INTERFACE gtest_main)
# 2. add test executable
set(test_exe_name ${library_name}_test)
add_executable(${test_exe_name} test_onesec3d_cpp.cpp)
target_link_libraries(${test_exe_name}
PRIVATE
${library_name}
GTest::gtest
GTest::gtest_main
)
add_test(onesec3d_tests ${test_exe_name})
set_tests_properties(onesec3d_tests PROPERTIES
ENVIRONMENT
DATADIR=${CMAKE_CURRENT_SOURCE_DIR}/sample_3d_files/
)
```
Once this is done you can implement your test in the specified executable test file. For example:
```cpp
#include <gtest/gtest.h>
TEST(test_onesec3d, test_read_rewrite_equal_hash)
{
// ... do your testing stuff
// execute tests
ASSERT_EQ(1, 1);
}
```
The `DATADIR` environment variable in `set_test_properties` is a smart way to pass the test folder of the build to the test file in order to use assets such as files etc in your tests.
#learning/cpp this seems a good learning resource for cpp: https://matgomes.com/integrate-google-test-into-cmake/

View File

@@ -0,0 +1,24 @@
---
tags:
- daily
date: 2023-10-27
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [x] Finish integration into 3dmap
- [x] auto testing gitlab-ci
- [x] README update fileformat
- [ ] Think about how to structure the 3dmap array, but still have a nice class representation of the fruxel grid without having to copy paste it. Also make sure you understand how it is passed from the hailonode to the 3dMap node (we do not want to copy anything, but instead use a shared pointer or similar) #todo/b 📅 2023-10-30 ⏫
- [ ]
## Quick Notes
## Learnings
Chat GPT or better said GitHub Copilot really is a great help during coding. Especially if you don't know all the details of a language.

View File

@@ -0,0 +1,25 @@
---
tags:
- daily
date: 2023-10-30
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [x] Do BMS review #todo/b ⏫ 📅 2023-10-30 ✅ 2024-01-04
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,31 @@
---
tags:
- daily
date: 2023-10-31
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
#learning/investing
what is an **equal weight index** ;; it weighs each company of an index by an equal weight instead of their market cap
<!--SR:!2024-03-26,55,310-->
what are the characteristics of an equal weight index compared to a index by market cap? ;; usually higher returns, more volatility. Needs rebalancing
<!--SR:!2024-02-04,4,230-->
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,50 @@
---
tags:
- daily
date: 2023-11-01
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ] email an marc von moustachian: meine geschichte (eur / chf), frage wegen ibkr und VT (in USD?)
## Quick Notes
- blog about artnet controllers: https://www.rose-lighting.com/brief-introduction-for-online-and-offline-led-controller-and-software-for-our-pixel-led-strip/
- alena geschenk? https://learn.adafruit.com/soil-node/assemble
# Daily Recap
## Diskussion
Dannick
- angefangen mit Sunflower Labs
- fehler sfl: zu viele leute angestellt, zu teuer, hohe cashburn rate
- --> mehr leute in Serbien anstellen da günstiger
- sie sind nicht google, können nicht 300k lohn zahlen, da das geld nicht da ist. Startups imitieren Google oft (kultur, gratis kaffee, etc. bringt aber nichts wenn man keine *gelddruckmaschine* erfunden hat wie Google)
- Fehler gemacht mit zollner (nur wegen investors? um zu zeigen, dass es skalierbar ist?)
- andere beispiele:
- jake: zu viele leute eingestellt um investoren glücklich zu machen --> kann er nicht halten --> kündigungswelle
- Wingtra: riesiges team in zürich! Auch viel zu teuer. Offene lohnkultur (D prangert an), da Freiheiten genommen wird Lohn zu verhandeln und wichtige Leute einzustellen.
- D kritik an mir:
- Ich habe chance zu wenig genutzt bei SFL know-how zu holen
- Ich rede viel zu wenig mit ihnen. Frage zu wenig, weiss zu wenig.
- Wer ist Control Engineer bei ihnen?
- Konflikt OneSec zu CF:
- Falls für 200M verkauft: CF sieht geld
- Falls für 20M verkauft: CF sieht kein Geld
- Wer bestimmt Wert der Firma? Wieso steht Wert von ca 10M auf meinem Vertrag? So lange nicht extern mit wirklichem Geld in OSD investiert wurde hat die Firma nicht wirklich so viel Wert. Eigene Einschhätzung ist zu Hoch (D&F überschätzen Wert fix)
- Ich habe ca 200k Lohnausfall gehabt. für 200k hätte ich vor 3 Jahren gesagt das ich mindestens 15% in Aktien will eigentlich eher mehr.
- Jetztige Konditionen sind nicht gut.
- D fragt: besser ich 10k pro Monat oder jemanden weiteres einstellen? Ich: weder noch, bzw beides: ich möchte extern Geld und mehrer Leute einstellen. Inkl. mein Lohn auf 80-90 k (eher 90k)
- Ich D gefragt: wärst du zufrieden mit meinen Bedingungen: hat er sich noch nie gefragt, ausweichend "wir haben anderer Charakter". Aber schlussendlich: "Nein ich wäre nicht zufrieden."
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,28 @@
---
tags:
- daily
date: 2023-11-03
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ] Solve mail problem Alkademiker #todo/p
- [ ] learn how to use shared pointers #todo/b 📅 2023-11-07
- [ ] finish lat/lon wrapping and test it (use ipad images) #todo/b 📅 2023-11-07
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,115 @@
---
tags:
- daily
date: 2023-11-09
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ] Move learnings from the procrastination video and make learning cards #todo/p
## Quick Notes
# Daily Recap
What skills do I have to do a Udemy Course?
I could start learning about a topic and make a udemy course about it
https://www.forbes.com/sites/susanadams/2020/06/17/this-photographer-is-earning-1-million-a-year-teaching-online/?sh=355b773d6255&ref=instructor-academy.onlinecoursehost.com
https://instructor-academy.onlinecoursehost.com/how-much-do-udemy-instructors-make/#:~:text=So%2C%20how%20much%20do%20Udemy,ve%20been%20on%20the%20platform.
## Learnings
### Flow State - Fight Procrastination
[The 15-Second Rule that makes procrastination impossible](https://m.youtube.com/watch?v=EkDxsQRbIwo&pp=ygUII2RvcmlzYW4%3D)
Main reasons of Procrastination:
1. Inertia --> no energy to start in the first place
2. Distraction
3. chronic delay --> always postponing things over and over again
There is a Approach - Avoidance conflict:
There are several triggers to master the approach-avoidance conflict:
#### Flow Cycle
1. Engage: Start to struggle in the first place (jump off the cliff). But for knowledge work it is much more difficult -
2. Struggle: fight for the task to absorb you --> frustration anxiety discomfort: like a warm-up
3. Release: once the fight with the task is over -->pain relief --> endorphins --> feeling good
4. Flow: effortless attention, sense of self evaporates
5. Recovery: rejuvenating, replenishing neurochemistry etc.
In order to engage we need to have more desire than avoid tendency.
So we can either increase desire or decrease avoid tendency.
#### Flow triggers
##### 1. Clear Goals
Not simple goals like run a marathon, but rather a **target for your attention** and **not the overall outcome we want to achieve!**.
Focusing on the the target as in clear goal uses the [[Basal Ganglia]] of the brain, whereas focusing on the outcome uses the [[Frontal Cortex]].
E.g. Focus on putting the ball in the net vs on winning the game.
--> break the task down into micro tasks (they are very easy to do!)
E.g.
1. open laptop
2. open google sheets
3. add the titles
4. ...
5. ...
6. Suddenly you are in the flow
##### 2. Tune challenge-skills Balance
Its about the balancing the perceived challenge and the perceived skill one has to overcome the challenge.
If perceived challenge is too high --> a lot of anxiety and overwhelming
If challenge is too low --> annoying
It should be 4% sweet spot where it slightly outstrips my skill level.
Here are three ways to tune the balance
###### Lower the Hurdle
- start with something simple that builds confidence and momentum for the day.
- The more effort you need to engage the more likely procrastination occurs
- Evolution trained us to use the least amount of energy possible, except in urgent situations --> make it very easy energetically to do tasks in order
- Restructure things to engage with less effort
###### Regulate Time
- For boring tasks like tax declaration limit your planned time to a very short amount --> this makes the challenge more difficult --> flow can occur
- If the challenge of the task is too large: give yourself more time to do it --> time to research and learn, etc. That will effectively lower the challenge and make it more likely to achieve flow.
-
###### Define the Scope
Uncertainty is overwhelming and tilts the balance to anxiety.
What needs to be done?
Why needs it to be done?
Get clarity which makes it easier to engage with the task
##### 3. Bypassing - Response Inhibition
Learn to act goal driven instead of response driven. Similar as in [[7 Habits of Highly effective people]].
Response inhibition: Override a automatic reaction
As soon as emotional areas of the brain take over ([[Amygdala]]), they overwrite the capability to self regulate. --> We experience more anxiety about the negative consequences of our actions and are less able to filter out emotions related to the tasks.
E.g. deciding to jump in a cold river: If you start doubting and considering the negative consequences they become more and more important which will eventually take over and not make the jump
--> you aim to get ahead of the avoid and approach conflict
Sleep to flow strategy. Start to work immediately after sleep. Make the tasks that you've been procrastinating on. They need to be prepared in the evening before such that you can get started immediately with them.
##### 4. Flow Payoff
It is very pleasant to have flow so its something we want to achieve again.
Set your workspace up to achieve flow with certainty --> make sure that there won't be any distractions.
We want to sustain the flowstate long enough to have a high enough payout for my struggles
--> Fix your schedule to have interruptions at the very beginning or the very end. do not mix activities because they will break the flow.
___
Sometime procrasting is ambivalence (having contradictory feelings and ideas about someone or something) --> showing that something maybe is the wrong decision or wrong path
Ambivalence can yield insight and allow to approach things more effectively:
maybe you are
- not aligned with values
- goal stack or intrinsic motivators
- burned out
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,31 @@
---
tags:
- daily
date: 2023-11-10
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ] Learnings von VWRL CHF oder EUR in Artikel schreiben #todo/p
## Quick Notes
# Daily Recap
## Learnings
### Investing
Es kommt nicht darauf an wo ich den ETF kaufe (ob SWX in CHF oder EAM in EUR) der darunterliegende ETF-kurs ensptricht immer dem Wechselkurs. Unterschiedlich hingegen ist die Liquidität (an welchem Exchange wird mehr gehandelt) und die Gebühren von meinem Broker. Die Gebühren muss ich mir genauer anschauen: Wie viel sind Kauf-/ Verkaufsgebühren in SWX in CHF wenn ich einmal 100k verkaufen möchte? Und wie hoch wären die FX-trade Gebühren?
- https://forum.mustachianpost.com/t/vwrl-to-buy-in-chf-or-eur/3621/20
- https://www.nzz.ch/finanzen/bitte-keine-us-aktien-vom-erbonkel-ld.739044
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date: 2023-11-14
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
#learning/dev-process
1. Bevor ich versuche intelligent zu sein und eine automatisierte Test-suite zu schreiben, sollte ich ganz einfache Hypothesen überprüfen. Ich habe heute Koordinaten transformationen gemacht wo ich ein nicht genau definiertes System von Jerry bekommen habe (JSON file mit punkten). Ich habe stunden damit verbracht mein Code anzupassen weil die automatischen Unit Tests nicht funktioniert haben, aber dabei war Jerrys information falsch. Es wäre sehr einfach gewesen das rauszufinden wenn ich mir nur kurz ein paar Punkte genauer angeschaut hätte und +-X, +- Y und +- Z definiert hätte.
2. [[C++]]: #learning/cpp
1. iterator objects are pointers to a element of a container. In order to get the index of an object we can take the iterator and substract the adress of the first element of the container: `it - container.begin()`
2. there are ways to find elements of containers using the standard library: `std::upper_bound`, `std::lower_bound`
```c++
auto it = std::upper_bound(radial_distance_map_.begin(), radial_distance_map_.end(), radius);
if (it == radial_distance_map_.end()) { return false; } // couldn't find the radius
mz = it - radial_distance_map_.begin() - 1; // take element just before the iterator to get the
```
3. I have learned a lot about [Spherical Coordinate systems](https://en.wikipedia.org/wiki/Spherical_coordinate_system) today and how the surface of the globe is not equally separated into surface patches. This can be seen when designing a [[Fruxel Grid]] where the longitude is split up into 128 sections and the latitude is split up into 64 sections (which is basically the equi-rectangular projection). The regions close to the poles are very distorted, since the slices become infinitesimally small. The same phenomena manifests itself in [*km per degree* latitude](https://en.wikipedia.org/wiki/Decimal_degrees#Precision) on the globe. Close to the equator every degree corresponds to 111 km, but in Europe (roughly 45°N ) one degree spans only over 78.7 km.
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,49 @@
---
tags:
- daily
date: 2023-11-16
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ] Make docker based build system: athackster inspired. I want a docker container that uses px4 and ROS2 with Gazebo to run integration tests in simulation. Potentially also for CI purposes. Setup zsh, #todo/b
#### PDB Review
- [x] Set myself up for review:
- [x] prepare docs on pc,
- [x] prepare issues,
- [x] create kiri-diffs
- [x] pull latest changes
- [ ] Get an overview of all requirements of the PDB v3
- [x] cross all sections that have not changed since the last reviewed version v2 (quickly verify in and outputs only)
- [ ] Do detailed planning
- [ ] Verify boost converter
- [ ] look at calculation sheet by vidit
- [ ] verify schematics with datasheet
- [ ]
## Quick Notes
# Daily Recap
## Learnings
### Electronics
#learning/elec
(Dis)Advantages of high frequency buck converters ;; handle dynamic load better, handle transients better, use much less real estate. Are less efficient and thus hotter. See [here](https://www.ti.com/lit/an/slvaed3/slvaed3.pdf?ts=1700128438476).
<!--SR:!2024-02-02,2,230-->
Important Mosfet characteristics ;; RDS(on): efficiency of mosfet, VGS(th): the gate-source threshold voltage defines the minimum voltage needed to turn the mosfet on
<!--SR:!2024-02-10,10,270-->
Mosfet Types ;; N-Channel, P-Channel | depletion mode vs enhancement mode.
<!--SR:!2024-02-11,11,270-->
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,28 @@
---
tags:
- daily
date: 2023-11-20
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
#learning/computer_science
command line tool to analyze storage in terminal ;; `ncdu`
<!--SR:!2024-01-20,4,250-->
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date: 2023-11-21
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# PDB Review Schematic No.2
## Jumper to turn on and off Drone
# Daily Recap
- small review of changes with vidit
- helped Jerry with 3dmap
- implemented the first part of the simulation: visualizing a calculated path and making sure the path calculation works
## Learnings
## Planning of Tomorrow
1. run same as yesterday but with [[ROS2]] debugging: https://gist.github.com/JADC362/a4425c2d05cdaadaaa71b697b674425f
2. Implement lifecycle manager: I want to get to a proper entrypoint
3. implement nav3_bringup for our drone
4. implement a nav3_controller (simple controller just uses the px4 go to location command just as in QGC.)
5. test the controller with a quadcopter in gazebo simulation
6. Use a action from the command line to launch the entire nav3 stack to navigate to the goal in the with the NavigateToPose action.
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,26 @@
---
tags:
- daily
date: 2023-11-22
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
- solve
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,30 @@
---
tags:
- daily
date: 2023-11-22
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
- solve goal checker problem: Pose does not have theta field, but rather orientation quaternion. We can use helper function to convert it to yaw and then use it.
-
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]
```query
tag: list/books
```

View File

@@ -0,0 +1,25 @@
---
tags:
- daily
date: 2023-11-23
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,25 @@
---
tags:
- daily
date: 2023-11-24
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
- Elon Musk [biography](https://www.amazon.com/Elon-Musk-Walter-Isaacson/dp/1982181281) by Walter Isaacson #list/books
-
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,40 @@
---
tags:
- daily
date: 2023-11-28
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
Was mich auch nervt an F:
- überhaupt nicht wissenschaftlich --> nichts wird geloggt, nichts wird aufgeschrieben. Ist alles nur in seinem Kopf
- Messy King. nichts hat seinen Platz. Man kann nicht mit ihm zusammen arbeiten.
## Planning of Tomorrow
Be ready for the discussion with [[Dannick]] and [[Floris]].
1. Have answers for my personal goals
1. Learn to manage a team
2. do mostly software lead -->
3. do a lot of reviews
4. --> CTO like job?
5. What is my goal within the company?
- [ ] Add my 2 cents about hardware planning and how it integrates with software planning
- [ ] Add questions about business planning
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ] Do different obsidian [config folder ](https://forum.obsidian.md/t/plug-ins-on-different-platforms/25796)on [phone](https://www.reddit.com/r/ObsidianMD/comments/14gevcd/obsidian_on_iphone_is_hard_any_tips/) and pc #todo/p
- [ ] [optimize config for phone](https://forum.obsidian.md/t/ios-app-extremely-slow-to-load/67031/2) to do [search](https://www.reddit.com/r/ObsidianMD/comments/ulvt94/how_to_search_effectively_on_obsidian_on_iphone/) and daily note taking, nothing else #todo/p
- [ ] replace all tags with unified tags and list them in the correct file #todo/p

View File

@@ -0,0 +1,25 @@
---
tags:
- daily
date: 2023-11-29
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,27 @@
---
tags:
- daily
date: 2023-11-30
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
- fixed computer issue: no space left in my root partition --> I had to boot from a live usb drive and use gparted to change the partitions.
-
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,28 @@
---
tags:
- daily
date: 2023-12-01
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ] linkedin, dude von gestern #todo/b
- [ ] linkedin general #todo/b
- [ ] review discussion from yesterday #todo/b
- [ ] rethink system: what is the fastest way to get to hookfinder
- [ ] Alkademiker: Was brauche ich von hornbach?
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,51 @@
---
tags:
- daily
date: 2023-12-04
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
## Jerry - Project Manager
> Hey, do you think there is a chance we could get a project manager? I think we could use one! I worked with few great IT project managers, and they really add a lot of value to the team - also they were using great tools and know how to maximize utility of them, like jira etc. I am asking because I think we could avoid many issues in our entire team cooperation, or misunderstandings if there was one good project manager
- no discipline: documenting, making tests (software).
- everyone should be self-disciplined, commits, branching, etc.
- IT-product manager
- Past experience:
- Example:
- Floris says Jerry implement 3d map matrix
- IT project manager is between Floris and Jerry (jerry can be present and give comments etc.) IT project manager understands the lifecycle (software and hardware). Takes goal and divides it into several tickets based on the scope of the project. Also creates subtasks (e.g document of subclasses,). Assigns Jerry to the subtasks.
- Sees gitlab branches (and if its correct) sees commits, assigns someone for review
- He is like a glue: he doesn't code. Understands how IT projects work. His work is to stare at jira all day and see if stuff is delayed / missed, etc.
- 3 good examples by Jerry
- Hamburg Germany BigPoint (gaming web): lead developer: port from flash to unity
- 2 project managers (40 people)
- standups: only things that were important were discussed (not everyone)
- practical example (Jira)
- manag: were filter between bosses and employees --> worked with less pressure
- basically a scrum master.
- Jerry is afraid to ask --> floris is just putting things down to slack (and its never really clear what exactly, etc.)
- [x] Talk to dannick about Jerrys proposal #todo/b ⏫ 📅 2023-12-06 ✅ 2023-12-07
___
# Daily Recap
## Learnings
Learnings Startup #learning/startup
- If I ever have my own company I want to have an open culture, where people can come up with ideas and critique without having to fear anything
- Have an organised workflow: one source of truth: everyone knows where to look up things. Define interdependencies between people (e.g. coordinate systems) in a common place where everyone knows where to find it.
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,25 @@
---
tags:
- daily
date: 2023-12-05
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [x] get NAV3 demo working with px4_offboard node and action commands from terminal #todo/b ⏫ 📅 2023-12-05 ✅ 2023-12-07
- [x] Write hooklanding controller, that sends position commands instead of velocity commands #todo/b 📅 2023-12-08 ✅ 2023-12-12
## Quick Notes
- Ich schulde Dimitri ein Mittagessen #fin/schuldner
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,41 @@
---
tags:
- daily
date: 2023-12-07
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [x] Fix nav3 controller bug #todo/b 📅 2023-12-07 ✅ 2023-12-07
- [ ] Integrate Hooks into the visualization (points and 3d model) #todo/b 📅 2023-12-08
- [ ] integrate hooks into gazebo #todo/b 📅 2023-12-15
- and artificial cameras
- and artificial stitching
- and artificial NN inference
- [ ] fix QoS problem #todo/b 📅 2023-12-07
- [ ] mount cameras on drone to be able to test and visualize the hookfinder tomorrow #todo/b 📅 2023-12-07
- [ ] add new coordinate systems to the urdf tree see [here](https://onesecinc.atlassian.net/wiki/spaces/MC1/pages/324796434/Hookfinder+-+ROS2+Implementation). #todo/b 📅 2023-12-08
- [ ] Make sure that the yaw control works well. #todo/b 📅 2023-12-08
- [x] change from TwistStamped to combined Twist and Pose Stamped? and a bool list for cmd_vel? #todo/b 📅 2023-12-08 ✅ 2023-12-12
## Quick Notes
- Thinking in Bets by Annie Duke - Victor Steiniger #list/books
### Planner Debugging
- [x] The coordinates that are in the action request are not translated correctly (px4 vs ros coordinate system)
- [x] The straightline planner does not include z.
# Daily Recap
-
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,31 @@
---
tags:
- daily
date: 2023-12-11
---
## Tasks
```tasks
due today
```
```tasks
due before today
no scheduled date
not done
sort by priority
```
___
### New Tasks
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,25 @@
---
tags:
- daily
date: 2023-12-12
---
## Tasks
```tasks
due today
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,40 @@
---
tags:
- daily
date: 2023-12-13
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
- Replace a external vision localization system (like [Vicon](https://www.vicon.com/) or [OptiTrack](https://optitrack.com/)) with a much simpler one using only a onboard camera: train a neural network (just as our hookfinder) to recognize an object and determine its exact pose (position and orientation) relative to the camera seeing it. When you know the exact position of the object you can also determine your relative position to it and thus use it as a source of localization. #idea/startup
- Iterative closest point ([[Iterative Closest Point|ICP]]) can be used to estimate the pose of the hook. For this we can use [libpointmatcher](https://github.com/norlab-ulaval/libpointmatcher?tab=readme-ov-file) or [simpleICP](https://github.com/pglira/simpleICP). But for the fist implementation we will just use 3 points and do it statically.
- https://enlightware.ch/ #work/company
- Anybotics #work/company
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,43 @@
---
tags:
- daily
date: 2023-12-14
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
- [ ] A [great article](https://circuitdigest.com/article/tesla-model-s-battery-system-an-engineers-perspective) about [[Electric Vehicle]] battery packs. Specifically about [[Tesla]]'s battery pack. Research this and write article #todo/b
- [Ampirius Technologies](https://amprius.com/) (NYSE:AMPX) battery packs are much better in terms of weight density #stocks/technology
- [ ] Research [income statements](https://ir.amprius.com/financial-information/income-statement) and important tools to do value investing #todo/p
- Livent Corp (NYSE:LTHM) and Albemarle Corporation (NYSE:ALB) are the mining companies behind the lithium for Tesla Batteries. #stocks/commodities
# Daily Recap
## Learnings
-
- [ ] Master Bezier Curves (and splines) (deep understanding) #research #todo/b
- [ ] Resources: This [website](https://pomax.github.io/bezierinfo/#decasteljau), this [youtube video by freya holmer](https://www.youtube.com/watch?v=aVwxzDHniEw&ab_channel=FreyaHolm%C3%A9r) #learning/math
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,43 @@
---
tags:
- daily
date: 2023-12-15
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- wie weiter?
1. problem lösen mit lauchfile (irgendwo ist fehler)
2. Anderer goal checker, der detailierter ist
3. Bug in simplecontroller (siehe papier)
4. Mache ein besserer behaviortree welcher sanft zum start kommt, dann goal checker verfeinert und dann zum Hooklanding wechselt
5. hook bauen und testen (vor 9 Uhr)
6. Mpc controller?
## Quick Notes
- [ ] Backup synology with [zerotier](https://www.youtube.com/watch?v=NB5CQcw1qmg&ab_channel=NickBodmer). Maybe [bridging](https://zerotier.atlassian.net/wiki/spaces/SD/pages/193134593/Bridge+your+ZeroTier+and+local+network+with+a+RaspberryPi) is needed with dad's synology
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,44 @@
---
tags:
- daily
date: 2023-12-18
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
- lange Diskussion mit [[Dannick]] und [[Sabi]]
- western people do not have purpose: materialism (mercedes in my pocket is my goal in life, vs I wanna be a father at 23)
- lost of trust in institutions (goverment, science as a whole): counter argument from my side: money and capitalism corrupts as well and is wrong incentive. Companies own the world, and the world belongs to the people living on it --> there is a a duty not to destroy it or damage it, which is not followed with pure money incentives.
- Dannick lost trust in goverment, because goverment is really bad at directing money to where it has an impact.
- maybe there is a way to have the state direct the money to companies (and thus let companies handle the money) by having bounties on open problems that need solving?
- Am Abend gleich noch einmal
- Musk der fast alle entlässt bei Twitter
- Hedge Fund manager der Firma kauft in NYC und dann alle entlässt im Headquarters
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,42 @@
---
tags:
- daily
date: 2023-12-19
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ] write article about pygps and how the RTK works #todo/b
- [ ] write article about the launch system #todo/b
- [ ] write article about how to setup a cm4 and the entire structure (also make image of cm16 as backup) #todo/b
## Quick Notes
# Daily Recap
- prepared drone for flight
- prepared white drone for hookfinder test (no motors etc.)
- wrote a launch script for the non-simulated drone for outdoor tests
-
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,42 @@
---
tags:
- daily
date: 2024-01-04
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
What are the next steps:
-
# Daily Recap
- Made a backup image of the current cm4 (haven't done that in a long time)
- Added tape to the hook
- printed new hooks
- cut holes into the drone wing
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date: 2024-01-05
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
Planning
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,40 @@
---
tags:
- daily
date: 2024-01-08
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
- talked to vidit about connectors
- talked to ayush about hookfinder (also with jerry at the end) --> conversions are necessary for now, ayush will update how much time is lost doing them and if we want to replace the pipeline at some point or not
- hardware job, fixing drone: the camera slot was not large enough, now the cables pass through the slot nicely, without too much strain.
-
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,36 @@
---
tags:
- daily
date: 2024-01-09
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,36 @@
---
tags:
- daily
date: 2024-01-09
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,45 @@
---
tags:
- daily
date: 2024-01-09
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
Heute Abend:
- Alkademiker Program: Mail check
- Alle Nachrichten beantworten oder als gelesen markieren
- Bergführer anschreiben und Freunde die eventuell mitkommen anschreiben
- Fasnacht LED show (wLed vs Max sini controllers)
- Nachdenken wohnen mit Alena und Reisen
- Tauchdestinationen Spanisch sprechend anschreiben
- Fotos tourenlager
- Jahresplanung
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,37 @@
---
tags:
- daily
date: 2024-01-10
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
- https://www.reddit.com/r/Fire/comments/192k24c/the_first_million_is_the_hardest/
- Compound interest: not only for money but also skills (engineering, management)
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,37 @@
---
tags:
- daily
date: 2024-01-11
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
For my personal Project ([[LightShow]]) [this project](https://github.com/Asa-Nisi-Masa/christmas-tree) could be useful.
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,36 @@
---
tags:
- daily
date: 2024-01-18
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,36 @@
---
tags:
- daily
date: 2024-01-23
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,51 @@
---
tags:
- daily
date: 2024-01-24
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
- [[Floris]] has suggested the book [Rapid Development by McConnell](https://libgen.is/book/index.php?md5=B54C7E454A266942DDC28AF853D629F2) to be a very good book on how to organize software development.
- Fragen an [[Vinnie]]:
- Wieso kann ich port 5006 deny in ufw aber mit 37.1200.177.0:5006 immer noch darauf zugreifen?
- wieso funktioniert testlogs.onesec.com aber foxglove.onesec.com nicht?
- kann ich eine user database haben die zugriff auf verschiedene webapps hat mit demselben login?
- Wie kann ich zugriff über bare IP redirecten zu testlogs.onesec.com (authentifizierungs problem.) Ich habe versucht eine 4XX response zu geben mit listen 5006, aber das ging nicht weil 0.0.0.0:5006 doppelt belegt wurde (wgen proxy_pass?)
```
Jan 24 14:20:01 v2202204173997187481 nginx[6365]: nginx: [emerg] bind() to 0.0.0.0:5006 failed (98: Address already in use)
Jan 24 14:20:01 v2202204173997187481 nginx[6365]: nginx: [emerg] bind() to [::]:5006 failed (98: Address already in use)
Jan 24 14:20:01 v2202204173997187481 nginx[6365]: nginx: [emerg] still could not bind()
```
- Sealife might be an [alternative](https://www.zerotier.com/blog/zerotier-makes-running-private-cloud-storage-more-accessible-and-easier-to/) to Synology Drive
# Daily Recap
## Learnings
Today I've learned about [[Computer Networking]] in computer science by watching [this video](https://www.youtube.com/watch?v=bKFMS5C4CG0&ab_channel=NetworkChuck). It shows how to use [[Docker#Networks]] to isolate or combine different containers that talk to each other and the internet. NetworkChuck uses a [UniFi Router](https://ui.com/cloud-gateways/dream-router).
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,91 @@
---
tags:
- daily
date: 2024-01-25
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ] Research home-lab, FOSS (free and open source software) [apps](https://www.google.com/search?q=best+foss+apps+self+host&sca_esv=601356795&ei=XiyyZcejIOPZ7_UPweyCyAM&ved=0ahUKEwjHypWsn_iDAxXj7LsIHUG2ADkQ4dUDCBA&uact=5&oq=best+foss+apps+self+host&gs_lp=Egxnd3Mtd2l6LXNlcnAiGGJlc3QgZm9zcyBhcHBzIHNlbGYgaG9zdDIHECEYChigATIFECEYnwUyBRAhGJ8FMgUQIRifBUj5JFCoBFj8I3AEeAGQAQGYAdkBoAGVDaoBBjEuMTIuMbgBA8gBAPgBAcICChAAGEcY1gQYsAPCAgUQABiABMICBhAAGBYYHsICChAAGBYYHhgPGArCAggQABgWGB4YD8ICCxAAGIAEGIoFGIYDwgIFECEYoAHCAgQQIRgV4gMEGAAgQYgGAZAGCA&sclient=gws-wiz-serp). or [this list](https://perfectmediaserver.com/04-day-two/top10apps/) #todo/p
## Quick Notes
[[Floris]] gave an update on the new hires
Bayraktar military drones that are used in Ukraine. A lot of applicants have worked there.
### New Hires
- senior c++ engineer: autopilot architect. We design a comprehensive software architecture, that is designed to accomplish the final version of the delivery drone. Pathplanning, foundation model,
- control systems engineer: math and physics role, not software engineer. Design a control system, test it in the simulator. They can focus in their specialty. Goal is to do a control system (global controller) that can do the entire flight envelope. This is using wind-tunnel testing, and other system identification steps to create an accurate model.
- embedded linux engineer: vidit can help with embedded software as well. Embedded linux engineer: experienced. Increase the performance of cm4 image pipeline.
- Project Manager: create schedule and follow it.
We have a lot of certainty: hardware is settled, foundation model, autopilot architecture --> 6 Months plan where classes and everything is defined.
Floris is excited about it, because we stop hacking and start developing a market worthy product.
[[Vidit]] asks where we're going.
- building new drone ([[Dannick]])
- Create videos of
- use videos for business development to launch a pilot project
- get permits for drone operations: area that isn't close to an airport and is not a big city. Some countries are better (Switzerland, Norway, Estonia, Ireland, Australia).
- First operation: select area (probably around current swiss office) with large number of villages and towns to create a large service area with the drone. A lot of speed and range with Amprius areas --> connects a lot of restaurants --> creates huge market.
- We had conversations with founder of food delivery company in (eat.ch). Talked to grocery delivery company in eastern europe, looking for partnership to launch delivery service.
- Markets in Switzerland, Australia, etc. are quite large. Scale-up is possible to 20 million deliveries a year. Then we can certify drone with higher level certificates --> you can extend market to bigger cities.
- Value proposition is obvious: companies spend $10 per delivery and we can do it for $5, we can do it faster and further away --> open new markets.
- Pointless to commercialize the product before accomplishing the basic features (hooklanding, etc).
- videos are going to be made with the smaller drone.
Most important thing this year: Finish the drone.
We don't necessarily need the approval of a big company to launch the service.
Foundation model is used for:
- path planning
- choose delivery surface
- Drone is sitting in hook, waiting for the package --> detect package to know that human is approaching with a payload box --> open payload bay
- many more features can be developed with the 3d map from the foundation model
Remote pilot is removed from the loop --> autonomous system directly.
Amprius cells:
- ladezyklen sind sehr reduziert. --> battery pack nur 1x pro Jahr ersetzen
### LED Project
- mic for my computer (mad-mapper) for sound reactive lights
- buy SN74AHCT125 level shifters and MAX4466 microphones and switch for martin
- buy simple leds incl. batteries for all members für maske
- Make small led project with WLED für meine Maske
- ethernet boards kaufen für esp32
- crossover kabel kaufen
-
Heute abend
- wled testen mit setup im keller und madmapper
- sachen bestellen (siehe oben)
- https://www.youtube.com/watch?v=Zzi5UIGnY2A&ab_channel=ChrisMaher
- Weiter nähen --> mit alena
- see comments in this [vid](https://www.youtube.com/watch?v=_wZEJPShvmI&ab_channel=MakersMashup) for esp32 wled
# Daily Recap
## Learnings
- LED mapping with Artnet, Teensy and MadMapper: Video by [Aidan Lincoln](https://www.youtube.com/watch?v=kbYYC8zcTxE&ab_channel=AidanLincoln)
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro: "1"
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date: 2024-01-30
pomodoro: "5"
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ] Read [this article](https://obsidian.rocks/super-powers-for-obsidian-nine-of-the-best-obsidian-plugins/) and start using the plugins that fit to my workflow #todo/p
- [ ] read [this article]([https://obsidian.rocks/maps-of-content-effortless-organization-for-notes/](https://obsidian.rocks/maps-of-content-effortless-organization-for-notes/)) about MOCs. Do I want to use this?
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro: "7"
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro: "9"
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,40 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
- watched [this video](https://www.youtube.com/watch?v=DM65_JyGxCo&ab_channel=NetworkChuck) about [[Docker Compose]] by Networkchuck. Amazing! This is a skill I want to learn #learning/want-to-learn
-
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,43 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ] zu obsidian daily note 19.2 with jannik:
- [ ] mechanismus um AI-generierte videos von echten zu unterscheiden: vorallem für Beweise, Gerichtsverfahren, etc. #idea/startup
- [ ] [[Meditation]], [[Vipassana]]: Shapings: Atmen ist im jetzt, alles Vergangene ist nicht real, alles Zukünftige ist nicht real. Das einzige im Jetzt ist das jetztige Gefühl vom Atmen, von meinen Sinnen, etc. Alles andere ist eine Illusion. Alle Eindrücke die ich irgendwann einmal hatte sind irgendwo in meinem Kopf gespeichert. Während dem Retreat hatte man viele Flashbacks wo sie hervorgekommen sind.
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,45 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
- [ ] Finish PDB review
- [ ] Finish propulsion harness
- [ ] finish wiring harness
- [ ] tackle drone build
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,39 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
- Try [Canvas](https://www.youtube.com/watch?v=eHI-Szjpafk&ab_channel=VickyZhao%5BBEEAMP%5D) for Concept Maps (can it replace CMapTools?) #todo/p
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,43 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ] Write a [script](https://github.com/tcgoetz/GarminDB) to download my garmin data daily and add it to my daily note. Then add it to my dashboard. #todo/p
- [ ] Maybe use [derive](https://github.com/erik/derive) to generate a heatmap of all my gps tracks. #todo/p
## Quick Notes
- Cool [techblog](https://kognise.dev/#projects) #readinglist/diy
- interesting job: [software engineer Robotics, Neuralink](https://neuralink.com/careers/apply/?gh_jid=5315682003&gh_src=c356a2533us).
### Job Description Neuralink Software Engineer Robotics
[Youtube Description](https://www.youtube.com/watch?v=-gQn-evdsAo&ab_channel=Neuralink).
![[Apply _ Neuralink.pdf]]
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,41 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ] 1. push git changes for payload_controller #todo/b 📅 2024-03-27
- [x] 2. prepare for job interview #todo/b 📅 2024-03-27 ✅ 2024-03-27
- [x] 3. flash new cm4s (record loom video and write article) #todo/b 📅 2024-03-27 ✅ 2024-04-10
- [ ] test them and run the entire dronestack
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,49 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
Muzaffer Job Interview
Positive things:
- Using Linux standard classes to implement new drivers
- pipeline with tcp cameras, gstreamer and opencv
- knows how to use valgrind, gdb: big plus!
- general knowledge of robotic systems: has worked on different aspects of it
questions:
- how well of a C++ programmer is he?
- good use of pointers, shared pointers, etc?
- good use of OOP?
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,44 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ] Talk to Dannick: how to communicate my leave to team?
- [ ] Talk to Floris about hasan and what to prepare
- [ ] make jira for my last month
- [ ] start every day with jira
- [ ] write test-bench documentation
- [ ] payload:
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,59 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
### Physio Update
Hallo Stephanie
Danke für die Behandlung von gestern. Heute morgen habe ich die Übungen gemacht und bin nachher mit dem Fahrrad ins Büro gefahren. Beim Bergauffahren hat es plötzlich angefangen mir im Nacken zu schmerzen (vorher hatte ich gar keine Schmerzen). Und wenn ich nun die Schmerztests mache die wir zusammen gemacht haben habe ich folgende Resultate:
- nach rechts drehen: kein problem
- nach links drehen: ziemliche Schmerzen, blockiert nach etwa der Hälfte
- nach oben kippen: leichte schmerzen
- nach unten kippen: ziemliche Schmerzen auf der linken Seite. Auch blockiert, wegen den Schmerzen
- nach rechts kippen: okay, leichtes ziehen links
- nach links kippen: schmerzen links, weniger als wenn nach links drehen.
Ich werde beobachten wie es sich verhaltet.
Liebe Grüsse
Claudio
### Robotics Companies
- [Dexory](https://www.dexory.com/) A warehouse scanning robot, based in the UK.
### NAS
I want to connect to the same NAS using multiple users (TimeMachineUser for backup and User for media). Just like described in this [post](https://community.synology.com/enu/forum/17/post/85880).
- https://www.reddit.com/r/synology/comments/11ogqr3/multiple_mac_finder_mount_points_over_smb/
-
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,43 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
Try photo prism and photosync
https://www.youtube.com/watch?v=t7ymSBIOJmc&ab_channel=WunderTech
https://www.reddit.com/r/photoprism/comments/14hccav/photoprism_vs_synology_pbotos/
https://github.com/meichthys/foss_photo_libraries
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,57 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
Before next flight:
- [ ] Make sure LTE antenna is working, test speed
- [ ] calib swash, make sure control is working, by testing in altitude mode in hand
- [ ] fix swash prop assembly number two
- [ ] analyze log from thursday (was it a motor problem? broken esc cable)
- [ ] replace broken part in right side volume
- [ ] make sure all the needed files are available on the laptop.
- [ ] make sure batteries, remote, laptop are all charged
- [ ] flash second cm4 with image
- [ ]
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]
Packen:
- [ ] Löteisen + zubehör
- [ ] Batterien + ladegerät
- [ ] mehrere raspis - getestet! LTE testen, antenne gut anmachen in PLB
- [ ] microusb kabel
- [ ] ersatz antennen
- [ ] RC geladen
- [ ] aceton
- [ ] 2 sets bits + schraubenzieher
- [ ] files auf laptop kopieren

View File

@@ -0,0 +1,39 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [ ]
## Quick Notes
# Daily Recap
## Learnings
I have just revisited the wind-tunnel data analysis project and realized something: we did that completely wrong. Someone should have double checked the data-analysis
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,38 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
## Quick Notes
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,51 @@
---
tags:
- daily
date:
"{ date }":
pomodoro:
---
## Tasks
```tasks
due today
```
### Open Tasks
```tasks
due before today
no scheduled date
is not recurring
not done
sort by priority
```
```
```
___
### New Tasks
- [x] introduction ugur
- [x] px4 indi, virtual swashplate, payload controller, drivers
- [x] gazebo simulation
- [ ] Prepare article and hardware for virtual swashplate tester for floris
- [ ] double check long document list: any documentation missing?
- [ ] offboard control
- [ ] software next steps
- [ ] clean computer: any private files?
- [ ] download all workspaces confluence
- [ ] download any google drive files that are important
## Quick Notes
Privat:
- [ ] powerbank kaufen
- [ ] Tauchversicherung
# Daily Recap
## Learnings
## Planning of Tomorrow
### New Tasks for tomorrow
1. change due dates of unfinished tasks today
2. add new tasks:
- [ ]

View File

@@ -0,0 +1,50 @@
```tracker
searchType: frontmatter
searchTarget: pomodoro
folder: 00 Daily
startDate: 2024-01-25
#endDate: 2024-12-30
line:
title: "Pomodoro"
yAxisLabel: '# Pomodoros'
lineColor: "steelblue"
```
```dataviewjs
dv.span("** Pomodoro Sessions **") /* optional ⏹️💤⚡⚠🧩↑↓⏳📔💾📁📝🔄📝🔀⌨️🕸️📅🔍✨ */
const calendarData = {
year: 2024, // (optional) defaults to current year
colors: { // (optional) defaults to green
blue: ["#8cb9ff", "#69a3ff", "#428bff", "#1872ff", "#0058e2"], // first entry is considered default if supplied
green: ["#c6e48b", "#7bc96f", "#49af5d", "#2e8840", "#196127"],
red: ["#ff9e82", "#ff7b55", "#ff4d1a", "#e73400", "#bd2a00"],
orange: ["#ffa244", "#fd7f00", "#dd6f00", "#bf6000", "#9b4e00"],
pink: ["#ff96cb", "#ff70b8", "#ff3a9d", "#ee0077", "#c30062"],
orangeToRed: ["#ffdf04", "#ffbe04", "#ff9a03", "#ff6d02", "#ff2c01"]
},
showCurrentDayBorder: true, // (optional) defaults to true
defaultEntryIntensity: 4, // (optional) defaults to 4
intensityScaleStart: 10, // (optional) defaults to lowest value passed to entries.intensity
intensityScaleEnd: 100, // (optional) defaults to highest value passed to entries.intensity
entries: [], // (required) populated in the DataviewJS loop below
}
//DataviewJS loop
for (let page of dv.pages('"00 Daily"').where(p => p.pomodoro)) {
//dv.span("<br>" + page.file.name) // uncomment for troubleshooting
calendarData.entries.push({
date: page.file.name, // (required) Format YYYY-MM-DD
intensity: page.pomodoro, // (required) the data you want to track, will map color intensities automatically
content: "🏋️", // (optional) Add text to the date cell
color: "red", // (optional) Reference from *calendarData.colors*. If no color is supplied; colors[0] is used
})
}
renderHeatmapCalendar(this.container, calendarData)
```

View File

@@ -0,0 +1,12 @@
![[Pasted image 20240130103300.png]]
> btw, i suspect that the coordconv at the first layer might not be necessary (coord0)
> at the first layer the CNN just does low level feature dedection (detecting edges and so on)
> the coordconv are only helpful for higher level analysis deeper in the model
> at least that's my theory
> also, do i see correctly that after the first layer, there's 1 maxpool that makes it 4x smaller? from 2048x1024 to 512x256?
> or does the first layer use stride 2, and the maxpool only makes it 2x smaller?
> overall the architecture looks good :+1:
> - Comments [[Floris]]

View File

@@ -0,0 +1,13 @@
A loom video instruction can be found [here](https://www.loom.com/share/f6460a1200fe499eb3aae941c8bd8ca8?sid=49451325-5d3a-4953-8e24-7007af44a99e).
# Preparation
1. Decide which image you want to flash to the cm4. All images can be found on the [google drive](https://drive.google.com/drive/folders/1SCE0VCfHIKdJlZBVMUI5AOd8uqdrAA_7) and usually you can find an overview on the [CM4 Images Overview sheet](https://docs.google.com/spreadsheets/d/1hWfCUwhnYKjQz526QUwpVui-eFWYgPfyoRJ40pwvJD8/edit#gid=0). For this example I chose the image `cm16_240104.img.xz`.
2. Decide which physical cm4 board you want to flash the image to. A list of all cm4's that we own can be found in the [CM4 overview sheet](https://docs.google.com/spreadsheets/d/18PtsqKYUrfK0cAAFBfwtgTSo0JnJ0n5Dc3oIjpWry6I/edit#gid=0). For this example we chose the cm4 with ID 14.
1. Be aware that there are two versions of cm4s. The lite version requires a SD-card whereas the EMMC version does not. The flashing instructions are different for the two.
2. The cm4s also come with different RAM and EMMC storage. You can visually inspect the part numbers if you are unsure. E.g. [RAM](https://semiconductor.samsung.com/dram/lpddr/lpddr4/k4f6e304hb-mgcj/), or [EMMC](https://semiconductor.samsung.com/estorage/emmc/emmc-5-1/klmbg2jetd-b041/).
# Flashing
If you have the EMMC version follow the instructions here: https://onesecinc.atlassian.net/wiki/spaces/MC1/pages/35029029/Flash+CM4+EMMC+with+a+new+Image
If you flash a Lite version, plug the SD-card into your development computer and then follow the instructions starting from point 5.
# UID
# Testing

View File

@@ -0,0 +1,5 @@
# Troubleshooting
## Really slow internet
I realized that the [[git]] commands `git fetch` or `git push` were extremely slow (several minutes). And it was because of a slow internet connection. The ping of google.com was like 64000 ms or so. The problem in the end was that the cm4 was using the `wwan0` interface (which is our LTE connection) but the antenna was not connected. I was surprised that it even found a network at all.
The solution was to either connect the antenna, or to take the network down with
`sudo ip link set wwan0 down`.

View File

@@ -0,0 +1,80 @@
In order to finish my job at the end of april, I need to document all the different projects I have worked on and make sure that the relevant information can be accessed without my input.
# Tooling
## OneSecServer
### Foxglove Studio on Server
### Flight Log on Server
## Teststand
## Wind Analysis
## Project Management on git
## 3D Printing
### FDM
### SLA
### SLS
## CNC Machining
# Software Development
## OSD-Autopilot
### Foxglove Bridge / ROSBridge
### GNSS Driver
### LTE Driver
### Bridge
#### Build Problems
#### RTPS vs DDS
### Hooklanding
### NAV2 & Behavior Trees
### Table Follower
## PX4-Autopilot
### Nuttshell and how to develop and debug
see
- [[Nuttshell - NSH]]
- [[Custom uORB Message]]
- [[PX4 Build Instructions]]
### V1.14 and Control Allocation
### OSD Payload Controller
### Magnetic Sensor Drivers
#### Magnetic Encoder Baseclass
#### ASR012
#### AS5047P
### INDI-Controller
### Gazebo Simulation
#### Virtual Swashplate Model
## Automated Testing
## Ubuntu Image
### How to install ROS2
### How to install Arducam Drivers
### How to install Hailo Drivers
# Hardware Development
## Drone Assembly Diagram
## Virtual Swashplate Development
## PCB Development
### Development Process
#### Automated Drive Documents
# Field Testing
## Drone Assembly
## Log Analysis
### OSD Flight Review
### Plotjuggler
## OSD-Autopilot Test Procedure
### How to Run Table Follower
### How to Run the Hooklanding
# Future Planning
A brief overview of things I think are important for the next year or so (similar to the large software list I have shared in december)

View File

@@ -0,0 +1,6 @@
# Unchanged from V2
- temp and humidity sensor
- 3V3 LDO:
- only consumers changed, but is remaining below limit.
- led drivers changed only very little

View File

@@ -0,0 +1,8 @@
[This article](https://opensource.com/article/18/6/embedded-linux-build-tools) summarizes different build tools to get the embedded application working. Currently, we use the last of the four options described: a stripped down desktop distribution.
Also [this video](https://www.youtube.com/watch?v=9vsu67uMcko&ab_channel=DigiKey) by DigiKey series goes into those tools in more detail, mostly yocto.
# Yocto
# Buildroot
# OpenWRT / LEDE

View File

@@ -0,0 +1,3 @@
- [ ] Is SIM-card inserted and correctly oriented?
- [ ] Are Antennas connected securely (GNSS, LTE, LTE Diversity)
- [ ]

View File

@@ -0,0 +1,4 @@
# Assembly
- [ ] Antenna cables need to be fixed to the same frame as the carrierboard, or the cables should be long enough to not be too tight to get ripped out
- [ ] Gnss and Lte should just work without issues and if there is a problem there should be an indicator like a led or a sound (e.g. through motors and px4)
- [ ]

View File

@@ -0,0 +1,5 @@
The Webapp is hosted on our [[OneSec Server#PX4 - Flight Review|VPS server]]. The credentials are:
- user: claudio
- pw: CesOne8143_
# Add a New Log
![[Pasted image 20240320120530.png]]

View File

@@ -0,0 +1,64 @@
We host the server at [netcup - Germany](https://www.netcup.eu/), a company that offers VPS. The IP address of our server is 37.120.177.0.
# Organisation
## Access
The following is the access data to access the server through ssh (part of my `~/.ssh/config` file):
```bash
Host netcup
HostName v2202204173997187481.hotsrv.de
User root
IdentityFile ~/.ssh/netcup_osd_claudio
```
## Setup
Vinnie, Dannick's Friend, helped me with the setup. I leave the bash history and the zsh history files here as a reference.
![[bash_history_netcup]]
![[zsh_history_netcup]]
I have installed `zsh` and `oh-my-zsh` to make the interaction easier
in the cli-history files above you can see how the project got updated, but basically update the project files on a local machine, test everything, push it to gitlab. Then access the server, pull the changes, checkout to the correct version and restart the docker container:
```zsh
docker compose -f docker-compose.dev.yml down docker compose -f docker-compose.dev.yml up -d --build --force-recreate
```
## Structure
The main folder is called osd_apps, which hosts the web-apps that we're running.
We use [[nginx]] as a reverse proxy to serve the different web-apps and [[Docker]] to run the apps in an appropriate container.
We also use certbot (installed through snap) to keep the certifiates up to date.
The [[OneSec - FlightReview|flight review app]] is hosted at the website [testlogs.onesec.com](testlogs.onesec.com). The authentication is done through a nginx configuration. The credentials can be found on the specified article.
### 6tunnel
[6Tunnel](https://github.com/wojtekka/6tunnel) is used to create a translation service for Dannicks NAS. Basically the server (which has a static IPV4 address) forwards requests to a IPV6-address (Dannicks NAS). See history files above for the commands. And make sure that the firewall (`ufw`) allows the correct ports (32400 in Dannicks case).
### Nginx
Nginx is used as a reverse proxy server, that checks incoming traffic and routes it to the correct interface on the server. We can configure it, such that any traffic coming from a certain URI (e.g. testlogs.onesec.com) is rerouted to the localhost:5006. And on this interface we are running a docker container, which hosts the web-app. This means that any traffic coming from testlogs.onesec.com is directed towards the web-app and any other traffic (from the IP for instance) is routed to `/var/www/http` and a static content is served (default nginx stuff). If another app is added we can have an additional port for that as explained in [this article](https://www.digitalocean.com/community/questions/how-to-host-multiple-docker-containers-on-a-single-droplet-with-nginx-reverse-proxy).
### Certbot
Certbot is a tool that manages certificates for our webserver. It has a really good integration with nginx. Some more info can be found [here](https://sirfitz.medium.com/setting-up-an-nginx-instance-with-certbot-and-configuring-it-for-wildcard-subdomains-on-ubuntu-96e413281a99). Especially the cron-job for the autorenewal is handy. But cerbot also has a automated way of handling this, as can be seen in the [instruction set by digital ocean](https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04). Compared to the instructions on the blog article, on our server we've used the following command:
```bash
sudo certbot --nginx -d testlogs.onesec.com
```
### Docker
[[Docker]] is used to isolate multiple web-apps that are running. A few important things are listed here:
- use the `-d` or `--detach` option to let it run in the background even if the terminal is disconnected. This ensures that the webapp is running when the setup process is finished.
# WebApps
## PX4 - Flight Review
A [customized version](https://gitlab.com/onesecdelivery/flight_review_osd) of the official PX4 [flight review](https://github.com/PX4/flight_review) app is hosted there.
# How to add a new WebApp?
1. Go to namecheap.com, login and [add a new A-record.](https://www.namecheap.com/support/knowledgebase/article.aspx/319/2237/how-can-i-set-up-an-a-address-record-for-my-domain/)![[Pasted image 20240123183014.png]]Here you can see that for the subdomain foxglove and testlogs we have an A-Record [^1] to forward to our VPS server (37.120.177.0). Once this is done all traffic gets forwarded to our VPS server where we need to handle it.
2. Access the servers command line through SSH (see instructions above).
3.
# Footnotes
[^1]: An A record **maps a domain name to the IP address (Version 4) of the computer hosting the domain**. An A record uses a domain name to find the IP address of a computer connected to the internet. The A in A record stands for Address.

View File

@@ -0,0 +1,15 @@
Since the entire autopilot is heavily inspired by the [[ROS2 - NAV2 Library]] we also use [[Behaviour Trees]] to implement the autopilot.
All of our simple behaviors are located in the nav3_behavior_tree package under the plugins folder. There are [four types](https://www.behaviortree.dev/docs/learn-the-basics/main_concepts#create-custom-nodes-with-inheritance) of plugins that form the base of behavior trees as basic building blocks.: action, condition, control and decorators.
1. Decide what kind of node you will be adding: we're assuming a control node for the sake of the example
2. write your h-file in *nav3_behavior_tree/include/nav3_behavior_tree/plugins/control*.
1. As an example
2. Inherit from *BT::ControlNode*. (See round_robin_node.hpp as an example)
3. Write the cpp-file in *nav3_behavior_tree/plugins/control/round_robin_node.cpp*
4. Make sure you use the `BT_REGISTER_NODES()` macro to register the node in the behavior tree factory.
4. Add the plugin to the *CMakeLists.txt: nav3_behavior_tree/CMakeLists.txt*
5. Write a test in the following file: *nav3_behavior_tree/test/plugins/control/test_round_robin_node.cpp*
6. Register the test in the following file: *nav3_behavior_tree/test/plugins/control/CMakeLists.txt*
1. Make sure you test all cases that the node uses.
7. Add the new tree node to the library file: *nav3_behavior_tree/nav3_tree_nodes.xml*

View File

@@ -0,0 +1,19 @@
Nav3 is our custom implementation of a navigation library. It is heavily inspired by [[ROS2 - NAV2 Library|NAV2]] which is a standard [[ROS2]] library.
By heavily inspired I mean it is basically copied, and modified.
# Differences
## Costmap_3d
The `nav3_costmap_3d` package is completely rewritten. The only similarity to the original `nav2_costmap_2d` package is that we're using the same API to remain compatible with the rest of the `nav2` library.
Our own costmap_3d implementation uses a fruxel grid instead of voxels.
## Planners
Several planner plugins are missing for now.
## Controllers
Several controller plugins are missing for now.
## Nav3_util
- Added `calculate_linear_speed(Twist)` which is a central util function to calculate speed

View File

@@ -0,0 +1,12 @@
The purpose of using [[Docker]] this is to have a containerized build of the autopilot. This means that any employee can easily get started with development by cloning the vscode-docker-dev repo and open the repo in a containerized mode. This drastically reduces onboarding time and also ensures that everyone is working on the exact same system.
There are a few inspirations to how I want to set this up:
1. Keep in mind that the final code needs to run on the raspberry pi cm4 module, without a docker container because we need hardware access.
2. The containerization can be built in several layers:
1. ros2 production (no simulation tools, this is the closest we get to the rasperry pi --> exports a shell script to install on the rasperry pi.)
2. simulation stack: includes px4-osd that runs the current px4-code and the px4 simulation running in gazebo as well as ros2 to do development
3. testing stack: same as previous stack but includes integration tests: missions to accomplish and writes automated reports if the flights were successful or not (could also upload to a log website)
This is going to be really helpful in the future, because with every commit merge to the main branch, unit-tests, functional tests and integration tests need to pass before a merge can happen.
PX4 already does [extensive testing](https://github.com/PX4/PX4-Autopilot/tree/main/test) within a gazebo simulation. It also includes more elaborated [integration tests](https://github.com/PX4/PX4-Autopilot/tree/main/integrationtests/python_src/px4_it).

View File

@@ -0,0 +1,5 @@
## How to run
1. We need a transform between map and odom: `os2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 1 map odom`
2. We need the px4 simulation running: `source ~/ros2_ws/install/setup.zsh && cd ~/px4-osd && make px4_sitl_default gazebo_osd_mono_copter`
3. We need the RTPS bridge running: `/home/claudio/ros2_ws/install/px4_ros_com/bin/micrortps_agent -t UDP`
4.

View File

@@ -0,0 +1,23 @@
# PX4_MSGS
The [PX4_msgs](https://github.com/PX4/px4_msgs) package is required, because it translates [[Custom uORB Message|uORB]] messages into the ROS2 ecosystem and vice versa. The project contains a `msg` folder, which contains the msg definitions. Usually, those message definitions are autogenerated by [a script](https://github.com/PX4/PX4-Autopilot/blob/v1.13.3/msg/tools/uorb_to_ros_msgs.py) provided by the PX4-Autopilot project.
A build error that has popped up several times is that the messsage definition comments contain `*/` which is misinterpreted by the compiler
Error message:
``` bash
/home/pi/ros2_ws/build/px4_msgs/rosidl_generator_c/px4_msgs/msg/detail/gimbal_v1_command__struct.h:356:3: error: expected identifier or ( before / token
356 | */
| ^
/home/pi/ros2_ws/build/px4_msgs/rosidl_generator_c/px4_msgs/msg/detail/gimbal_v1_command__struct.h:365:3: error: expected identifier or ( before / token
365 | */
```
In order to solve this error, just delete the relevant parts of the comment.
# px4_ros_com
In order to successfully build the `px4_ros_com` package you need to define the following env-variable: `export FASTRTPSGEN_DIR="/usr/local/bin/"`.
Without it it will not work and throw the following error:
```bash
c++: error: /home/pi/ros2_ws/build/px4_ros_com/src/micrortps_agent/microRTPS_agent.cpp: No such file or directory
c++: fatal error: no input files
```

View File

@@ -0,0 +1,36 @@
# Hardware
## Pinout
![[Pasted image 20240229144513.png]]
![[Pasted image 20240229144518.png]]
# Software
1. compile the correct firmware and flash it to the flight controller
2. Setup the correct airframe and calibrate the controller
3. import the last px4-fmuv5 config files and check the correct settings
4. check every peripheral independently.
1. Optical flow
2. pwm outputs (virt swash and servos)
3. rc
4. i2c --> angle sensor
5. telem 1 --> mavlink router
6. telem 2 --> micrortps bridge
7. USB --> flashing, debugging, etc.
## Virtual Swashplate Calibration
Requirements to fulfill before starting the calibration routine:
- Make sure that the motors turn in the correct direction, else swap 2 ESC-Motor cables
- Do this calibration routine with a battery and do not use a power supply. The power supply would limit the current and thus interfere with the swashplate modulation, falsifying all results.
- Wear a bike helmet for protection if you do the manual calibration
1. Set the PARAM1 Tuning channel to a nice continuous potentiometer type knob on your RC: ![[Pasted image 20240304172822.png]]
2. Prepare Parameters to do the calibration routine:
1. Set all `MC_*` parameters to have feedforward only control: Meaning force saving PID values to 0 for all axes (roll, pitch and yaw) and setting the FF parameter to 0.15: ![[Pasted image 20240304173415.png]]
2. Set the drone to ACRO mode
3. Calibrate every virtual swashplate individually (upper and lower, explained for the upper swashplate with ID=0). Repeat for ASR012_VS_EN values for: upper:1, lower: 2, both: 3
1. Enable only the upper swashplate under Q->ASR012->ASR012_VS_EN=1
2. Apply the RC_TO_PARAM option for the Upper Swash Offset parameter (ASR012_0_OFFSET)![[Pasted image 20240304172646.png]]
3. Wear the bike helmet
4. Hold drone in your hand and pitch forward. Turn the knob until the pitch/roll directions you feel correspond to what you command with the stick.
5. Reset RC-To-Param: Tools->Clear All RC to Param

View File

@@ -0,0 +1,43 @@
uORB message are the equivalent of [[ROS2]] messages in the PX4 messaging system. uORB does the same job as the ROS2 middleware system by sharing messages in a public and subscribe system across different modules. A good overview on how uORB works and how to customize it look at the dev-series on [this blog](https://px4.io/px4-uorb-explained-part-1/).
In order to add a custom uORB message that can be used to share information between modules and allow to log data we need to do the following steps:
- add the message definition to `PX4-Autopilot/msg/custom_msg.msg`
- add the timestamp field in the first line, since it is mandatory:
`uint64 timestamp`
- add the message file path to `PX4-Autopilot/msg/CMakeLists.txt` in order to compile the message.
If the message should be used in several independent topics we can add the following line to the message definition:
`# TOPICS topic_name_1 topic_name_2 topic_name_3`
# ROS2 Compatibility
Starting from PX4 v1.14 ROS2 compatibility is native (see [this release article](https://px4.io/px4-autopilot-release-v1-14-what-you-need-to-know)).
In order to use the new uORB message with the ROS2 system on the companion computer you need to enable it on the bridge. In order to do this there are 4 steps required as explained in [this thread](https://github.com/PX4/px4_msgs/issues/7):
1. create the uORB `.msg` file under `PX4-Autopilot/msg/`
2. Generate the ROS `.msg` using the `uorb_to_ros_msgs.py` script and copy it to `px4_msgs` under you colcon/ament workspace
3. Do the changes on both `yaml` files in `PX4-Autopilot/msg/tools` and `px4_ros_com/templates` as you did above
4. Build your colcon/ament workspace with both updated `px4_ros_com` and `px4_msgs`
## Bridge Message Yaml File
The `.yaml` file is located in two locations: under `PX4-Autopilot/msg/tools/` and in `px4_ros_com/templates/` and it needs to be the correct version in the two locations in order for the bridge to work seamlessly. Below you can find a part of such a file ([px4_ros_com](https://github.com/PX4/px4_ros_com/blob/release/1.13/templates/urtps_bridge_topics.yaml) version):
```yaml
- msg: TelemetryStatus #9
receive: true
- msg: Timesync #10
receive: true
send: true
- msg: TrajectoryWaypoint #11
send: true
- msg: VehicleCommand #12
receive: true
- msg: VehicleControlMode #13
send: true
- msg: VehicleLocalPositionSetpoint #14
receive: true
- base: VehicleLocalPositionSetpoint #15
msg: TrajectorySetpoint
receive: true
```
The option `receive: true` means that the bridge shares the messages from the companion computer to the PX4-flight controller, whereas the option `send: true` means that the PX4-flight controller sends the messages to the companion computer. If a two-way communication is desired you can add both options, just like in the example above (`Timesync`).
The PX4-Autopilot version uses the uORB message names (lowercase and underscore), whereas the px4_ros_com version uses the default ROS2 standard for the message definition (CamelCase).
It is **extremely** important that the yaml file definition of those messages matches, else the bridge won't work properly. Specifically, the order of the messages as well. Because in the background, the messages are shared over their id (indicated as a comment in the excerpt above).

View File

@@ -0,0 +1,7 @@
We want to do this in order to control a peripheral actuator such as a winch or a payloadbay.
# PX4 v1.13 and below
At the time of writing we use a modified version of the PX4 v1.13.3, which still uses the (now deprecated) mixing system to allocate control to the different actuators. Unfortunately this makes it quite cumbersome to control. I added a hack to the system, by using the [[Mavlink]] messagePWM
# PX4 v1.14 and above
The new tight [[ROS2]] integration will allow to control peripheral actuators as explained in [this video](https://youtu.be/3zRCIsq_MCE?t=1020).

View File

@@ -0,0 +1,23 @@
The nuttshell is the main shell used in the px4-environment. It can be used to [interactively work with a px4 flight controller](https://docs.px4.io/main/en/debug/consoles.html) to develop and debug. It can be accessed through [QGroundControl](https://docs.px4.io/main/en/debug/mavlink_shell.html#qgroundcontrol-mavlink-console) or [through USB](https://docs.px4.io/main/en/debug/mavlink_shell.html#mavlink-shell-py).
# Commands
An overview of all commands can be found in the [px4-documentation](https://docs.px4.io/main/en/modules/modules_main.html). Interactively you can also send the command `help` to list all available commands.
## listener
`listener uorb_topic_name`
The listener commands allows to debug the uorb message system. It was important to debug the drivers of the magnetic sensors or to debug a working bridge.
## uORB top
`uorb top`
## micrortps_client
`micrortps_client`
# Custom Commands
## osd_payload_control
## indi control
- [ ] Make sure this title is correct #todo/b
## asr012
## a5047p

View File

@@ -0,0 +1 @@
In order to successfully build PX4 for different boards you need to configure them first by running the `boardconfig` option with the command.

View File

@@ -0,0 +1,24 @@
The first quick and dirty implementation was done on the companion computer using a ROS2 Node (see [[Direct Actuator Control from ROS2]]). But this will use too much bandwidth on the datalink between the flight controller and the companion computer.
# PX4 Implementation
We want to be able to open and close the payload bay even if the drone is not armed. Therefore, we need to make use of the pre-arm state that exists in order to check the functionality of non-dangerous [[Actuators |actuators]] (e.g. control surfaces. not motors/propellers). The arm, disarm and pre-arm configuration is explained on the [PX4 user guide](https://docs.px4.io/main/en/advanced_config/prearm_arm_disarm.html).
We want the following parameters:
| Parameter | Description | Value |
| ---- | ---- | ---- |
| COM_PREARM_MODE | ALWAYS | 2 |
| CBRK_IO_SAFETY | No Safety Switch | 22027 |
This puts the drone into the pre-arm state upon boot and allows to move the control surfaces immediately, without engaging the propellers.
## PWM Calibration
The payload servos should be calibrated like any other servo motor. We need to configure the following parameters (assuming the servo is MAIN_5):
| Parameter | Description | Value |
| ---- | ---- | ---- |
| PWM\_MAIN\_DIS5 | PWM value in disarm state | e.g. 1500 |
| PWM\_MAIN\_FAIL5 | PWM Value in failsafe state | e.g 1500 |
| PWM\_MAIN\_MAX5 | Maximum PWM value commanded | e.g. 1958 |
| PWM\_MAIN\_MIN5 | Minimum PWM value commanded | e.g. 867 |
The values are usually experimentally measured using a simple PWM controller (aka. servo tester).
## Payload Controller Module

Some files were not shown because too many files have changed in this diff Show More