... | ... | @@ -177,11 +177,30 @@ The launch files that are supposed to be called using `ros2 launch` are `simulat |
|
|
This launch file starts all nodes which are independent of the environment (i.e. simulation or realworld). At first the `velocity_controller` and `velocity_commander` are started. Afterwards the launch file calls the rosbag to record all necessary topics. Therefore, the `VelocityCommander` class is examined and all topics which communicate with it are added to the list with the recorded topics.
|
|
|
|
|
|
# Documentation of nodes
|
|
|
TODO
|
|
|
The `landing_controller` package consists of two nodes. Their main function an how they interact with each other is explained in the [Intro](#intro). In the following, they are examined in more detail.
|
|
|
|
|
|
## Velocity Controller
|
|
|
The `velocity_controller` uses the position of the aruco marker and the current attitude which is calculated by the PX4 firmware to determine the control deviation e. This serves as input for the controller, which outputs a velocity command to the PX4. \
|
|
|
In the following sections, a system model of all related parts is build up. Then it is depicted how the control deviation is determined. Finally, the controller itself is laid out and an approach to determine the gains is shown.
|
|
|
|
|
|
### Model of controlled system
|
|
|
The following diagram shows the very simplified feedback loop of the controlled system:
|
|
|
|
|
|
```mermaid
|
|
|
graph LR
|
|
|
ctrl[landing_controller]
|
|
|
px4[PX4 Controller]
|
|
|
dyn[Drone dynamics]
|
|
|
|
|
|
ctrl-->px4-->dyn-->|e|ctrl
|
|
|
```
|
|
|
|
|
|
The `landing_controller` commands a velocity to a cascaded controller in the PX4 Firmware. This generates the command for the motors, which serve as input for the drone dynamics process. The output of this process is the position of the drone, relative to the aruco marker, which is the input for the `landing_controller`. To access the overall dynamics, the PX4 controller and the drone dynamics are approximated by a PT1 element:
|
|
|
|
|
|
$ F_{eu} = \frac{1}{T\cdot s + 1} $
|
|
|
|
|
|
- Identification as PT1 element
|
|
|
### Determine control devation e
|
|
|
### Determine control deviation e
|
|
|
- internal tf tree
|
|
|
- determining error e
|
|
|
### Controller
|
... | ... | |