vault backup: 2026-03-30 18:45:34

Affected files:
.obsidian/workspace.json
8 Places/BusinessesDrawing 2023-10-12 16.01.52.excalidraw.md
This commit is contained in:
2026-03-30 18:45:34 +02:00
parent 6af7c7e720
commit 3aa2abc0ae
2 changed files with 88 additions and 579 deletions

View File

@@ -97,12 +97,12 @@
"state": {
"type": "markdown",
"state": {
"file": "2 Personal/Home Lab/Homelab.md",
"file": "2 Personal/Home Lab/NAS/Virtual Machine Hosting.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Homelab"
"title": "Virtual Machine Hosting"
}
},
{
@@ -403,7 +403,8 @@
"vantage-obsidian:Vantage - Advanced search builder": false,
"templater-obsidian:Templater": false,
"obsidian-git:Open Git source control": false,
"markdown-importer:Open format converter": false
"markdown-importer:Open format converter": false,
"periodic-notes:Open today": false
}
},
"floating": {
@@ -488,15 +489,24 @@
}
]
},
"active": "45138afa5cf89635",
"active": "f33efed5601c1085",
"lastOpenFiles": [
"2 Personal/Home Lab/NAS/Maintenance Plan.md",
"2 Personal/Home Lab/NAS/Photo Apps.md",
"2 Personal/Home Lab/MAC/Software Management on MacOS.md",
"Dashboard Canvas.canvas",
"Dashboard.md",
"8 Places/BusinessesDrawing 2023-10-12 16.01.52.excalidraw.md",
"2 Personal/Wohnen/Rezepte/Ideen für Vorratskammer.md",
"2 Personal/Wohnen/Pflanzen.md",
"2 Personal/Wohnen/Einrichtungsideen.md",
"2 Personal/Home Lab/Homelab.md",
"2 Personal/Lists/Business Ideas.md",
"2 Personal/Home Lab/NextiShareBot.md",
"0 Journal/0 Daily/2026-03-18.md",
"2 Personal/Home Lab/Baerhalten/Home Assistant.md",
"Attachments/ESPSomfyRTS 2026-03-17T16_05_06.backup",
"2 Personal/Home Lab/Baerhalten/Home Assistant -> InfluxDB -> Grafana setup and debugging notes.md",
"2 Personal/Lists/Business Ideas.md",
"0 Journal/0 Daily/2026-01-29.md",
"Temporary/Untitled 4.md",
"99 Work/Jobhunt/OneSec Experience on LinkedIn.md",
@@ -509,14 +519,6 @@
"Temporary/My Health Products.md",
"0 Journal/0 Daily/2026-01-28.md",
"2 Personal/Lists/Packlisten/Packliste - Skitour.md",
"0 Journal/0 Daily/2026-01-27.md",
"Temporary/Madgwick Filter.md",
"0 Journal/0 Daily/2026-01-24.md",
"Temporary/Ralph Wiggum Technique for AI Coding.md",
"2 Personal/Home Lab/NAS/Backup Strategy.md",
"0 Journal/0 Daily/2026-01-10.md",
"Temporary/Material Damping.md",
"Temporary/Friction Damping.md",
"Attachments/Pasted image 20260121121234.png",
"Attachments/ESPSomfyRTS 2026-01-18T16_26_16.backup",
"Attachments/Pasted image 20260118150817.png",
@@ -536,7 +538,6 @@
"Attachments/Pasted image 20250922115441.png",
"7 People/0_People.base",
"Attachments/image 21.jpg",
"Dashboard Canvas.canvas",
"99 Work/0 OneSec/OneSecNotes/30 Engineering Skills/Computer Science/Untitled.canvas",
"8 Work/OneSecNotes/Temporary/Untitled.canvas"
]

View File

@@ -7,7 +7,9 @@ tags: [excalidraw]
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
# Text Elements
# Excalidraw Data
## Text Elements
PX4 Info Node ^SHjaC7GH
getCurrentPose ^bntLlwqf
@@ -40,572 +42,78 @@ MoveSmoothActionServer ^jNLQaaLq
MoveSmoothAction ^jLt0dnKk
# Embedded files
## Embedded Files
53a29778b62e67d5d6ee80cf34453e58bcb88187: [[Pasted Image 20231012160459_976.png]]
%%
# Drawing
```json
{
"type": "excalidraw",
"version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.9.20",
"elements": [
{
"type": "rectangle",
"version": 70,
"versionNonce": 1706906056,
"isDeleted": false,
"id": "2x2FIJ03wD79stOrQPI2T",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 563.2296109199522,
"y": -641.5260467529299,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 664.8743286132816,
"height": 818.5408325195318,
"seed": 1357369544,
"groupIds": [
"eTVsuRlQRF9sgbnV876J0",
"lE9VKsMY2iriwU-c_Iog-"
],
"frameId": null,
"roundness": {
"type": 3
},
"boundElements": [],
"updated": 1697119406023,
"link": null,
"locked": false
},
{
"type": "rectangle",
"version": 91,
"versionNonce": 1557106360,
"isDeleted": false,
"id": "wgrd0rloD6B_tv4cvqt1Q",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 658.3203702402645,
"y": -595.8825224970703,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 480.7786254882816,
"height": 60.85806274414085,
"seed": 1672494792,
"groupIds": [
"eTVsuRlQRF9sgbnV876J0",
"lE9VKsMY2iriwU-c_Iog-"
],
"frameId": null,
"roundness": {
"type": 3
},
"boundElements": [
{
"type": "text",
"id": "SHjaC7GH"
}
],
"updated": 1697119406023,
"link": null,
"locked": false
},
{
"type": "text",
"version": 60,
"versionNonce": 1153423560,
"isDeleted": false,
"id": "SHjaC7GH",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 767.9396481943663,
"y": -587.9534911249999,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 261.5400695800781,
"height": 45,
"seed": 1070409160,
"groupIds": [
"eTVsuRlQRF9sgbnV876J0",
"lE9VKsMY2iriwU-c_Iog-"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1697119406023,
"link": null,
"locked": false,
"fontSize": 36,
"fontFamily": 1,
"text": "PX4 Info Node",
"rawText": "PX4 Info Node",
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "wgrd0rloD6B_tv4cvqt1Q",
"originalText": "PX4 Info Node",
"lineHeight": 1.25,
"baseline": 31
},
{
"id": "RRuBk1mpSeCly4Kvfa79J",
"type": "diamond",
"x": 556.250027179718,
"y": -474.53338623046875,
"width": 340.2777099609375,
"height": 94.3055419921875,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [
"lE9VKsMY2iriwU-c_Iog-"
],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 131086280,
"version": 102,
"versionNonce": 1247606712,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "bntLlwqf"
}
],
"updated": 1697119406023,
"link": null,
"locked": false
},
{
"id": "bntLlwqf",
"type": "text",
"x": 650.629536151886,
"y": -439.9570007324219,
"width": 151.3798370361328,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [
"lE9VKsMY2iriwU-c_Iog-"
],
"frameId": null,
"roundness": null,
"seed": 1735610568,
"version": 73,
"versionNonce": 1339654088,
"isDeleted": false,
"boundElements": null,
"updated": 1697119406023,
"link": null,
"locked": false,
"text": "getCurrentPose",
"rawText": "getCurrentPose",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"baseline": 17,
"containerId": "RRuBk1mpSeCly4Kvfa79J",
"originalText": "getCurrentPose",
"lineHeight": 1.25
},
{
"type": "rectangle",
"version": 50,
"versionNonce": 1609226952,
"isDeleted": false,
"id": "4QXgkAkRFkLPAcD8t0Sgc",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -650.6871371269228,
"y": -597.4427185058596,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 664.8743286132816,
"height": 818.5408325195318,
"seed": 2101748664,
"groupIds": [
"Hul-uvlemt_cI9_Fp3WrH"
],
"frameId": null,
"roundness": {
"type": 3
},
"boundElements": [
{
"type": "text",
"id": "5knELniv"
}
],
"updated": 1697123064116,
"link": null,
"locked": false
},
{
"type": "text",
"version": 228,
"versionNonce": 307511752,
"isDeleted": false,
"id": "5knELniv",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -645.6871371269228,
"y": -592.4427185058596,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 552.638427734375,
"height": 420,
"seed": 691596472,
"groupIds": [
"Hul-uvlemt_cI9_Fp3WrH"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1697123064116,
"link": null,
"locked": false,
"fontSize": 28,
"fontFamily": 1,
"text": "\n\n\n\n- handle_goal\n- handle_cancel\n- handle_accepted\n\nThe important part is execute:\n- for loop through trajectory and send \noffboard commands to px4\n",
"rawText": "\n\n\n\n- handle_goal\n- handle_cancel\n- handle_accepted\n\nThe important part is execute:\n- for loop through trajectory and send offboard commands to px4\n",
"textAlign": "left",
"verticalAlign": "top",
"containerId": "4QXgkAkRFkLPAcD8t0Sgc",
"originalText": "\n\n\n\n- handle_goal\n- handle_cancel\n- handle_accepted\n\nThe important part is execute:\n- for loop through trajectory and send offboard commands to px4\n",
"lineHeight": 1.25,
"baseline": 409
},
{
"type": "rectangle",
"version": 68,
"versionNonce": 553175240,
"isDeleted": false,
"id": "q_MPWFFrVxrxtrzAUTaaJ",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -555.5963778066103,
"y": -551.1047057246094,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 480.7786254882816,
"height": 60.85806274414085,
"seed": 1038783928,
"groupIds": [
"Hul-uvlemt_cI9_Fp3WrH"
],
"frameId": null,
"roundness": {
"type": 3
},
"boundElements": [
{
"type": "text",
"id": "jNLQaaLq"
}
],
"updated": 1697123064116,
"link": null,
"locked": false
},
{
"type": "text",
"version": 41,
"versionNonce": 393506760,
"isDeleted": false,
"id": "jNLQaaLq",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -528.4351381825868,
"y": -543.175674352539,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 426.4561462402344,
"height": 45,
"seed": 8330936,
"groupIds": [
"Hul-uvlemt_cI9_Fp3WrH"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1697123064116,
"link": null,
"locked": false,
"fontSize": 36,
"fontFamily": 1,
"text": "MoveSmoothActionServer",
"rawText": "MoveSmoothActionServer",
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "q_MPWFFrVxrxtrzAUTaaJ",
"originalText": "MoveSmoothActionServer",
"lineHeight": 1.25,
"baseline": 31
},
{
"id": "T_jgB4iG3mlWPyahBp9rA",
"type": "image",
"x": -1216.7221102714539,
"y": -607.1722717285156,
"width": 349,
"height": 358,
"angle": 0,
"strokeColor": "transparent",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 1488109256,
"version": 105,
"versionNonce": 76913080,
"isDeleted": false,
"boundElements": null,
"updated": 1697119498449,
"link": null,
"locked": false,
"status": "pending",
"fileId": "53a29778b62e67d5d6ee80cf34453e58bcb88187",
"scale": [
1,
1
]
},
{
"type": "rectangle",
"version": 127,
"versionNonce": 605752520,
"isDeleted": false,
"id": "oKD7end-LC_VdRYXouRuv",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -659.7703280448916,
"y": 338.61279296874955,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 664.8743286132816,
"height": 818.5408325195318,
"seed": 193154488,
"groupIds": [
"n-mVf4NySQdfVIenFRlup"
],
"frameId": null,
"roundness": {
"type": 3
},
"boundElements": [
{
"type": "text",
"id": "CMXgBmzj"
}
],
"updated": 1697122375648,
"link": null,
"locked": false
},
{
"type": "text",
"version": 735,
"versionNonce": 534342856,
"isDeleted": false,
"id": "CMXgBmzj",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -654.7703280448916,
"y": 343.61279296874955,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 653.0186767578125,
"height": 595,
"seed": 172021432,
"groupIds": [
"n-mVf4NySQdfVIenFRlup"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1697122769534,
"link": null,
"locked": false,
"fontSize": 28,
"fontFamily": 1,
"text": "\n\n\n\n- This class implements the Action client that \nsets the goal, and has the callbacks for \nreceiving feedback and the result. It inherits \nfrom the baseclass RosActionNode which itself\ninherits from the Behaviortree library, meaning \nit implement a Behaviortree action.\n\n- parent class calls setGoal and then\n\n- Uses the client to call the server through \nasync_send_goal\n\n",
"rawText": "\n\n\n\n- This class implements the Action client that sets the goal, and has the callbacks for receiving feedback and the result. It inherits from the baseclass RosActionNode which itself inherits from the Behaviortree library, meaning it implement a Behaviortree action.\n\n- parent class calls setGoal and then\n\n- Uses the client to call the server through async_send_goal\n\n",
"textAlign": "left",
"verticalAlign": "top",
"containerId": "oKD7end-LC_VdRYXouRuv",
"originalText": "\n\n\n\n- This class implements the Action client that sets the goal, and has the callbacks for receiving feedback and the result. It inherits from the baseclass RosActionNode which itself inherits from the Behaviortree library, meaning it implement a Behaviortree action.\n\n- parent class calls setGoal and then\n\n- Uses the client to call the server through async_send_goal\n\n",
"lineHeight": 1.25,
"baseline": 584
},
{
"type": "rectangle",
"version": 143,
"versionNonce": 672151224,
"isDeleted": false,
"id": "j7vPLVyvo3dYqfyv5dahM",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -563.2908968495792,
"y": 386.33972176562474,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 480.7786254882816,
"height": 60.85806274414085,
"seed": 1248149432,
"groupIds": [
"n-mVf4NySQdfVIenFRlup"
],
"frameId": null,
"roundness": {
"type": 3
},
"boundElements": [
{
"type": "text",
"id": "jLt0dnKk"
}
],
"updated": 1697122374080,
"link": null,
"locked": false
},
{
"type": "text",
"version": 119,
"versionNonce": 927506360,
"isDeleted": false,
"id": "jLt0dnKk",
"fillStyle": "hachure",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -480.59964318746967,
"y": 394.26875313769517,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 315.3961181640625,
"height": 45,
"seed": 1007978680,
"groupIds": [
"n-mVf4NySQdfVIenFRlup"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1697122374080,
"link": null,
"locked": false,
"fontSize": 36,
"fontFamily": 1,
"text": "MoveSmoothAction",
"rawText": "MoveSmoothAction",
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "j7vPLVyvo3dYqfyv5dahM",
"originalText": "MoveSmoothAction",
"lineHeight": 1.25,
"baseline": 31
}
],
"appState": {
"theme": "light",
"viewBackgroundColor": "#ffffff",
"currentItemStrokeColor": "#1e1e1e",
"currentItemBackgroundColor": "transparent",
"currentItemFillStyle": "hachure",
"currentItemStrokeWidth": 1,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 1,
"currentItemFontSize": 20,
"currentItemTextAlign": "left",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"scrollX": 2797.031155109408,
"scrollY": 1374.2330627441424,
"zoom": {
"value": 0.4999999999999996
},
"currentItemRoundness": "round",
"gridSize": null,
"gridColor": {
"Bold": "#C9C9C9FF",
"Regular": "#EDEDEDFF"
},
"currentStrokeOptions": null,
"previousGridSize": null,
"frameRendering": {
"enabled": true,
"clip": true,
"name": true,
"outline": true
}
},
"files": {}
}
## Drawing
```compressed-json
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=
```
%%