Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use UTM_GLOBAL_POSITION for collision avoidance #12452

Merged
merged 2 commits into from
Jul 16, 2019

Conversation

AmeliaEScott
Copy link
Contributor

@AmeliaEScott AmeliaEScott commented Jul 10, 2019

Based on Issue #11262.

Describe problem solved by the proposed feature
At the moment there is no collision avoidance feature based on position reports from other drones available. The only collision avoidance is done for manned aircraft traffic based on ADSB_VEHICLE message provided by a ADSB receiver connected to FMU.
With considering other drone positions as well for collision avoidance drone operation safety can be significantly improved when multiple drones share the same airspace.
UTM_GLOBAL_POSITION message broadcasted by a drone and implemented with #10873 provides all the necessary information similar to ADSB_VEHICLE.

Describe your preferred solution
Use UTM_GLOBAL_POSITION message similar to ADSB_VEHICLE for collision avoidance. A handler was added to mavlink_receiver.cpp which translates all UTM_GLOBAL_POSITON messages into UOrb transponder_report messages.

Additional context
Cooperative awareness is mandatory in future UTM concepts to allow multiple drone operations within same airspace.

@AmeliaEScott AmeliaEScott force-pushed the pr-global-collision-avoidance branch from 154a664 to f054426 Compare July 10, 2019 13:17
@AmeliaEScott AmeliaEScott force-pushed the pr-global-collision-avoidance branch from f054426 to 91d6513 Compare July 11, 2019 11:25
@AmeliaEScott AmeliaEScott force-pushed the pr-global-collision-avoidance branch from 91d6513 to 803c043 Compare July 11, 2019 12:48
@AmeliaEScott AmeliaEScott force-pushed the pr-global-collision-avoidance branch from 803c043 to 6c04e9a Compare July 11, 2019 14:34
@AmeliaEScott AmeliaEScott marked this pull request as ready for review July 11, 2019 14:53
@AmeliaEScott AmeliaEScott requested review from mcsauder and dagar July 11, 2019 15:31
Copy link
Member

@dagar dagar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The basics here look fine (safe to merge), but I'm not up to speed with the overall design wrt ADSB.

@hamishwillee
Copy link
Contributor

@dagar Essentially ADBS/FLARM have an incoming message with validity flags, position and heading. This is published as a transponder_report topic. In a mission (only) this position and heading is projected onto the expected vehicle altitude (first) and if there is a risk further calculation on x/y paths. There is a configurable RTL, Land, or warning if either within hardcoded 500m. Docs, Code

UTM_GLOBAL_POSITION is a bit like transponder message, but it also includes next waypoint info. All this PR does is fake a transponder message: drop the next waypoint, fake the validity flags, and convert the current position into transponder units/format.

If we aren't ever going to use the next waypoint info and we don't want to be able to differentiate the source of the messages this is all that is needed. Personally I think it is worth changing the topic from transponder_report to something more generic that includes the additional info in UTM_GLOBAL_POSITION and allows you to differentiate between the signal source.

Why? Because I think we might want to provide more stringent handling for ADBS than we do for UTM.

@AmeliaEScott
Copy link
Contributor Author

@dk7xe are you able to review this?

@dk7xe
Copy link
Contributor

dk7xe commented Jul 12, 2019

@dk7xe are you able to review this?

you mean the code? no.. i don't think i'm capable.. i can understand C but being far from calling myself knowledgeable.
My strenghts are project management and flying with fast speed straight/crashing drones ;)

Copy link
Member

@bkueng bkueng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. @ItsTimmy what's the testing level here?

@AmeliaEScott
Copy link
Contributor Author

@bkueng I sent some ADSB_VEHICLE messages and some UTM_GLOBAL_POSITION messages over MAVLink, and used the PX4 console to verify that they were both translated into UOrb transponder_report messages correctly, with the right coordinates and flags.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants