... | ... | @@ -131,15 +131,34 @@ Once the node is started, the avaible keys to control the drone are presented. F |
|
|
To start the drone, go to QGroundControl, press the `Takeoff` button on the left and confirm by moving the slider on the bottom of the window. Once the drone has reached its hold altitude, click on the flight mode in the top left corner (on the right of the 'Flying' tag) and choose `Offboard`. Now switch back to the terminal with the teleoperation node. When applying the shown controls, the drone moves according to these commands.
|
|
|
|
|
|
## Landing Controller package
|
|
|
This section describes how to start the whole `landing_controller` architecture. At first, set up the pixhawk or the simulation as described in the [Quickstart manual for the velocity_commander](#velocity-commander-only)
|
|
|
This section describes how to start the whole `landing_controller` architecture. At first, set up the pixhawk or the simulation as described in the [Quickstart manual for the velocity_commander](#velocity-commander-only). \
|
|
|
|
|
|
Then execute the corresponding launch file, depending on wether simulation or target application is used:
|
|
|
```
|
|
|
ros2 launch landing_controller simulation.launch.py
|
|
|
ros2 launch landing_controller realworld.launch.py
|
|
|
```
|
|
|
The content of these launch files is discussed [below](#launch-system). \
|
|
|
|
|
|
To simulate the image processing, start the provided node:
|
|
|
```
|
|
|
ros2 run landing_controller test_pub_aruco
|
|
|
```
|
|
|
This simulates the transformation from the camera frame to the aruco marker frame (which is usually generated by the nodes from the `image_processing` package). At the state of writing, the simulated aruco marker moves in a circle around the home position of the drone. The movement of is generated in the `update_marker` method in the `test_pub_aruco.py` file. It could be modified to e.g. random or straight movements. \
|
|
|
|
|
|
Finally, the commanding authority must be given to the Raspberry Pi using QGroundControl as explained in the last chapter (i.e. setting the flight mode to Offboard).
|
|
|
|
|
|
|
|
|
## Full Setup
|
|
|
TODO
|
|
|
When testing the full setup, the `image_processing` nodes and the `landing_controller` nodes are working simultanously, such that the drone can follow the lateral position of the aruco marker. Currently, the camera stream cannot be obtained from the gazebo environment. So, the full setup can only be tested in a real world flight test on the target platform. \
|
|
|
To start the setup, run the `image_processing` node as explained in the [corresponding article](packages/image_processing#example-use). Then start the `landing_controller` nodes as explained in the last section (NOTE: Do not run the `test_pub_aruco` node! Its not needed for this application). \
|
|
|
Finally, start the drone manually and hover over the marker. The `velocity_controller` will print debug messages on the command line as soon as it is able to take over control. Then change the flight mode to `offboard`, using QGroundControl. The drone shall now hover over the aruco marker automatically. If the marker is moved, the drone should follow its movement.
|
|
|
|
|
|
|
|
|
|
|
|
# Launch System
|
|
|
|
|
|
The launch system currently consists of three files in the [corresponding directory](https://git.tu-berlin.de/eriksuer/specialtopics/-/tree/main/src/landing_controller/launch). Their interdependence is shown by the following graph:
|
|
|
This chapter describes, how the provided launch files are used. The launch system currently consists of three files in the [corresponding directory](https://git.tu-berlin.de/eriksuer/specialtopics/-/tree/main/src/landing_controller/launch). Their interdependence is shown by the following graph:
|
|
|
|
|
|
```mermaid
|
|
|
graph TD;
|
... | ... | @@ -157,10 +176,16 @@ 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
|
|
|
# Documentation of nodes
|
|
|
TODO
|
|
|
## Velocity Controller
|
|
|
### Model of controlled system
|
|
|
- Identification as PT1 element
|
|
|
### Determine control devation e
|
|
|
- internal tf tree
|
|
|
- determining error e -> apply control
|
|
|
- determining error e
|
|
|
### Controller
|
|
|
- PI controller
|
|
|
|
|
|
## Velocity Commander
|
|
|
-> no arming nor changing mode |
|
|
\ No newline at end of file |