First Commit
This commit is contained in:
0
99 Work/0 OneSec/OneSecNotes/Temporary/..md
Normal file
0
99 Work/0 OneSec/OneSecNotes/Temporary/..md
Normal file
23
99 Work/0 OneSec/OneSecNotes/Temporary/Graph Theory.md
Normal file
23
99 Work/0 OneSec/OneSecNotes/Temporary/Graph Theory.md
Normal file
@@ -0,0 +1,23 @@
|
||||
I stumbled across this because I was researching what the most efficient way of implementing our FruxelGrid was. In this [StackOverflow answer](https://stackoverflow.com/a/14579347/7705525) I got pointed to graph theory.
|
||||
|
||||
7 Bridges of Königsberg
|
||||
![[Pasted image 20231023150710.png]]
|
||||
# Definitions
|
||||
|
||||
| Definition | Meaning |
|
||||
| -------------- | -------------------------------------------- |
|
||||
| Node / Vertex | The object doing some work |
|
||||
| Edge | Path between two Nodes |
|
||||
| Node degree | Number of edges that touch the node / vertex |
|
||||
| Graph | Combination of Nodes and Vertices / Nodes |
|
||||
| Eulerian Graph | Exactly zero or two nodes have an odd degree |
|
||||
|
||||
# Rules
|
||||
1. Exactly zero or two vertices can have an odd (=uneven) degree
|
||||
|
||||
# Implementation in [[C++]]
|
||||
1. **direct Translation** of the Definition: create a `std::vector` for a list of vertices and a list of edges. The edges themselves are represented as a `std::pair`
|
||||
2. Adjacency List
|
||||
3. Adjacency Matrix
|
||||
|
||||
![[Pasted image 20231023154352.png]]
|
||||
38
99 Work/0 OneSec/OneSecNotes/Temporary/Planning - 11-2023.md
Normal file
38
99 Work/0 OneSec/OneSecNotes/Temporary/Planning - 11-2023.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Hardware
|
||||
## Electrical Hardware
|
||||
### Testing
|
||||
- Define and run hardware tests for every single board and document it on google drive (with templates).
|
||||
- What are common industry standard hardware tests that we should perform?
|
||||
- If we wanted to sell the drone as a product:
|
||||
- what tests would we need to do?
|
||||
- those tests can indicate what we should be testing
|
||||
- EMI testing:
|
||||
- can EMI cause issues of the drone operation
|
||||
- Vibration testing:
|
||||
- How does the drone operate after 100 Hours of some vibration level?
|
||||
- Are connectors still in place?
|
||||
|
||||
|
||||
# Roles
|
||||
## Hiring
|
||||
- Control Engineer (CH)
|
||||
- Hover, Cruise and transition
|
||||
- use all actuators in unison to achieve a goal
|
||||
- Experience with PX4 is a plus
|
||||
- Embedded microcontroller programming experience
|
||||
- Senior Software Engineer (WORLD)
|
||||
- C++, Linux, ROS2 (even though)
|
||||
- has written well developed software
|
||||
- Full stack web engineer (or on fiverr)
|
||||
- log server
|
||||
- pilot interface
|
||||
- groundstation
|
||||
## Advisors
|
||||
- talk to company that does large drone operation (zipline?)
|
||||
- Quality Assurance?
|
||||
- Make sure that the drone
|
||||
|
||||
# Office in Zurich
|
||||
- Clean & organised
|
||||
- every object has its place (have a sheet where you can find every object)
|
||||
-
|
||||
@@ -0,0 +1,250 @@
|
||||
# General
|
||||
## Development Process
|
||||
- Docker Based Development
|
||||
- Development Containers
|
||||
Build docker container for all engineers to work on the exact same code
|
||||
- include simulation with gazebo, px4, and always the same ROS version.
|
||||
- very easy to setup for new engineers.
|
||||
- Testing Containers:
|
||||
- SITL testing container
|
||||
- runs on gitlab (does not contain visual simulation)
|
||||
- does not contain development tools nor build tools
|
||||
- HITL testing container
|
||||
- use a real drone to do HITL simulation testing
|
||||
- uses our real hardware
|
||||
- Automated Testing
|
||||
- Software
|
||||
- Have unit tests for everything
|
||||
- Have integration tests that run in docker simulated environment
|
||||
- Have hooks that use gitlab to run the tests
|
||||
- Improve on model used in simulation (control engineer)
|
||||
- connect unity with gazebo
|
||||
- Hardware
|
||||
- Future: have a space where drone can actually perform automated tests (hook takeoff)
|
||||
- Drone Software version managing
|
||||
- One overall version
|
||||
- contains subversions for all different systems, including hardware and software.
|
||||
- ESC firmware & configuration file
|
||||
- OSD-software version & confiugration
|
||||
- What exact software version of ROS2 do we use?
|
||||
- PX4-software version & configuration
|
||||
|
||||
# Drone
|
||||
## Low Level
|
||||
### Sensors
|
||||
- Pitot Tube (PX4)
|
||||
- probably fast (plug and play)
|
||||
- most work is integrating it into our flight stack in px4 --> control engineer
|
||||
- ublox driver (ROS)
|
||||
- Add unit tests
|
||||
- Add meta data publishing (how is it usually done in ros)
|
||||
- Add service to get health status message
|
||||
- Add configuration parameters
|
||||
- make sure correct firmware is on gnss module
|
||||
- track antenna: does it work properly?
|
||||
- LTE Driver (ROS)
|
||||
- improve driver to have access to meta data (to be sure about connectivity)
|
||||
- Make sure that VPN works flawlessly
|
||||
- Or another way to work with the ground station server
|
||||
- make sure correct firmware is on module
|
||||
- track antenna: does it work properly?
|
||||
- SIM management
|
||||
- Temperature and Humidity Driver (ROS)
|
||||
- share sensor message at certain frequency
|
||||
- have configuration parameters
|
||||
- BMS Driver (ROS)
|
||||
- share raw bms sensor data to the ROS message bus
|
||||
- have configuration parameters
|
||||
- have services for recalibration, changing charging settings, and others
|
||||
- Parachute system
|
||||
- PX4 Heartbeat signal & driver (PX4)
|
||||
- ROS action to trigger parachute (can also be done remotely)
|
||||
- Optical flow
|
||||
- make sure that it is well calibrated
|
||||
|
||||
# Other Hardware
|
||||
- ESC:
|
||||
- make sure correct firmware is running
|
||||
- observe temperature and current
|
||||
- feedback message to ROS system
|
||||
- parachute board
|
||||
- observe parachute state (GPIO available)
|
||||
- share with ROS system
|
||||
- share with Ground control station
|
||||
- at what location and what time has the parachute been triggered?
|
||||
- has the deployment been successful?
|
||||
- Magnetic sensor board
|
||||
- Add calibration routine --> we want to very easily
|
||||
- Payload
|
||||
- Payload manager:
|
||||
- detect payload
|
||||
- estimate properties of payload (weight, center of mass, etc.)
|
||||
- share properties to control system and battery manager
|
||||
- Payload ejection action (ROS2)
|
||||
- payload reception action (ROS2)
|
||||
- LED system
|
||||
- LED control (ROS2 message to turn on / off)
|
||||
- have a smart camera control instance to *synchronize* the LEDs with the caputring of the camera system
|
||||
- Driver for different LEDs
|
||||
- IR, White via I2C
|
||||
- Armpit LEDs
|
||||
- User Feedback LED
|
||||
- user feedback LED
|
||||
- different color / blink codes
|
||||
- write different actions to request a sequence to be played
|
||||
- Buzzer
|
||||
- parachute auto buzzer
|
||||
- user feedback buzzer
|
||||
### Control
|
||||
- integrate all flaps
|
||||
- integrate state of payloadbay into model
|
||||
- make a detailed and well tested model of drone that can be used in the simulation to accelerate development
|
||||
- integrate variable pitch into the control
|
||||
- actuators
|
||||
- 2 virt swash
|
||||
- 2 variable pitch
|
||||
- 4 flaps
|
||||
- payload bay
|
||||
- payload ejector
|
||||
- Sensors
|
||||
- pitot tube
|
||||
- optical flow
|
||||
- move to px4 v1.14 --> means control allocation instead of mixers
|
||||
- allows to more effectively use all actuators simultaneously
|
||||
- every actuator is defined by forces that it can deliver and thus this system manages a single actuator failure much better than the mixer system
|
||||
- also allows much better ros2 integration with px4
|
||||
- Achieve <10cm hover accuracy
|
||||
- Achieve efficient cruise flight
|
||||
- Achieve reliable transition in both directions
|
||||
- Integrate new S-Rod
|
||||
- Integrate new single blade propeller
|
||||
|
||||
### Other Low Level
|
||||
- remote ID implementation
|
||||
|
||||
## High Level
|
||||
### OSD-Autopilot
|
||||
- Settings Manager
|
||||
- Have one common place to change all settings in the entire system
|
||||
- change PX4 settings through the settings manager
|
||||
- use setting files that define all settings
|
||||
- Battery estimator
|
||||
- use raw data from BMS and mission data from groundstation/px4
|
||||
- how much flight time is left?
|
||||
- at hover
|
||||
- at cruise
|
||||
- empty vs full
|
||||
-
|
||||
- can I get to the homeport safely?
|
||||
- how much charging do we expect at the next restaurant?
|
||||
- needs communication with groundstation and high level planning
|
||||
- Navigation library
|
||||
- A* planning algorithm (copy Jerrys implementation)
|
||||
- unit tests
|
||||
- integration tests
|
||||
- Well tested controller-plugin
|
||||
- Enables us to do trajectory tracking well
|
||||
- probably offload to px4
|
||||
- thus calculate a trajectory (includes derivatives like velocity, acceleration jerk and time based points) from a path that we know is feasible for our drone
|
||||
- Costmap3D / Fruxelgrid
|
||||
- make sure obstacles are well defined in 3d space includi
|
||||
- write proper test functions
|
||||
- make API to get information about the world
|
||||
- Add some sort of memory (buffer? derivative?)
|
||||
- Is an object moving towards me?
|
||||
- Basically we should be able to detect if someone throws a stone at the drone and avoid the stone.
|
||||
- Get inspired by StuffMadeHere trajectory estimation (basketball video or others) to estimate a trajectory of an approaching object
|
||||
- Write more complex behaviors
|
||||
- Hook landing
|
||||
- Hook takeoff
|
||||
- Flat surface Delivery
|
||||
- Ask for pilot assistance
|
||||
- Climate Manager
|
||||
- Data sources
|
||||
- use raw data from temperature sensors
|
||||
- use camera data (through future FruxelGrid updates)
|
||||
- control heating wires in propeller blades and leading edge of the wing
|
||||
- Log Manager
|
||||
- Improve Logging: use C++ instead of python
|
||||
- unify px4-logs with rosbags
|
||||
- is there a better logging method than rosbags?
|
||||
- share low bandwidth log data to groundstation to live plotting with plotjuggler or similar
|
||||
- Bringup manager:
|
||||
- Make sure that the entire software stack is running after boot
|
||||
- run a few hardware / software tests periodically to be sure that everything is running as it should be.
|
||||
- Camera Node:
|
||||
- detect if a camera is down
|
||||
- action to capture an image to a file (maybe used to confirm delivery)
|
||||
- Hailo Node:
|
||||
- hef-file manager
|
||||
- plugin based neural nets?
|
||||
- change nets at runtime
|
||||
- Meta data publishing
|
||||
- health data publishing
|
||||
- Destination finder
|
||||
- panorama to location converter
|
||||
|
||||
### Other High Level
|
||||
- Tele operation node, such that we can use a remote control over LTE instead of radio
|
||||
- Demo library
|
||||
- Demos are basically just another behaviortree with some user interaction
|
||||
# Groundstation
|
||||
- interface to single drone:
|
||||
- communicate new job (incl. job-id)
|
||||
- get updates on job
|
||||
- encrypted communication (ROS? UDP? MAVLINKV2?)
|
||||
- get flight logs continously
|
||||
- throttled
|
||||
- Fleet management:
|
||||
- every drone has UID
|
||||
- and all details stored with it:
|
||||
- current version number (hardware and software)
|
||||
- what type of rasperry pi (UID)
|
||||
- LTE simcard management
|
||||
- RTK correction stream management
|
||||
- maintenance history of every drone
|
||||
- flight log history of every drone
|
||||
- current status of every drone
|
||||
- how many drones are in the air right now?
|
||||
- map with all drones: color coded which ones are flying, color coded which ones are unhealthy
|
||||
- Interface to Delivery app, delivery software, etc.
|
||||
- deciding function if a delivery is possible according to panoramic image (people in the loop?)
|
||||
- routing software
|
||||
- incoming jobs: which drone should do what job
|
||||
- delegation software
|
||||
- how to delegate pilot assistance requests to free pilots?
|
||||
|
||||
# OneSec Server
|
||||
- log server
|
||||
- automatic logupload (px4, rosbag, images?)
|
||||
- daily, weekly, monthly... report in jupyter --> pdf or html
|
||||
- dashboard with number of deliveries / number of flighthours, etc.
|
||||
- debug tools
|
||||
- download specific log
|
||||
- compare all logs of the same vehicle
|
||||
- maintenance server
|
||||
- scheduled and unscheduled maintenance server
|
||||
- detailed instructions (including videos and checklists) on how to do maintenance / debugging / fault finding
|
||||
- email notifications if scheduled maintenance is needed
|
||||
- Business Operations
|
||||
- Delivery App / interface to uber eats
|
||||
- Customer database, handling, etc
|
||||
- address
|
||||
- precise GNSS coordinates after first delivery
|
||||
- panorama image before first delivery (encrypted?)
|
||||
- multiple delivery locations
|
||||
|
||||
# Pilot Interface
|
||||
- reliability
|
||||
- dual power supply
|
||||
- dual internet provider
|
||||
- make sure machine is powerful enough
|
||||
- security:
|
||||
- make sure that some sort of encryption is happening
|
||||
- Teleoperation
|
||||
- visual confirmation
|
||||
- high resolution map with precise coordinates
|
||||
- interface:
|
||||
- to choose delivery location on map
|
||||
- to choose delivery polygons on map
|
||||
-
|
||||
@@ -0,0 +1,24 @@
|
||||
# Documentation
|
||||
- copy Obsidian documentation into confluence
|
||||
- download all confluence as html (all spaces)
|
||||
- finish missing documentation
|
||||
|
||||
# Handover
|
||||
## Hasan
|
||||
## Ugur
|
||||
## Vidit
|
||||
## Ayush
|
||||
## Jerry
|
||||
|
||||
# Computer
|
||||
- [ ] Is everything pushed?
|
||||
|
||||
# Admin
|
||||
- [ ] Vertrag: Geld für Mai (halber Lohn, Ferien, etc), Options, unpaid leave (option contract)
|
||||
- [ ] Passwort übergabe Dannick
|
||||
|
||||
|
||||
This weekend at home:
|
||||
- [ ] script to move all repos to bitbucket
|
||||
- [ ] download all passwords for Dannick
|
||||
- [ ] downlad example report for tests templates on drive
|
||||
0
99 Work/0 OneSec/OneSecNotes/Temporary/UFW.md
Normal file
0
99 Work/0 OneSec/OneSecNotes/Temporary/UFW.md
Normal file
12
99 Work/0 OneSec/OneSecNotes/Temporary/Untitled.md
Normal file
12
99 Work/0 OneSec/OneSecNotes/Temporary/Untitled.md
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
|
||||
Show some tag context
|
||||
|
||||
```dataview
|
||||
list from #learning/bite
|
||||
```
|
||||
|
||||
|
||||
```query
|
||||
#learning/bite
|
||||
```
|
||||
Reference in New Issue
Block a user