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

[flight_plan] add binding to ABI messages from flight plan #2106

Merged
merged 1 commit into from
Aug 23, 2017

Conversation

gautierhattenberger
Copy link
Member

This feature allows to create an automatic binding to a ABI message
while specifying the list of variable names ('_' are ignored).
A local (static) variable is updated to the latest value each time a new
message is received and it can be read in any flight plan instruction.

Example of usage:

please not the in this example, the first and the last variable are
ignored but the number of variable must match the number of fields in
ABI messages description (conf/abi.xml).

An extra attribute 'id' allows to set a specific sender ID (by default
ABI_BROADCAST).

This feature allows to create an automatic binding to a ABI message
while specifying the list of variable names ('_' are ignored).
A local (static) variable is updated to the latest value each time a new
message is received and it can be read in any flight plan instruction.

Example of usage:

 <variables>
  <abi_binding name="VELOCITY_ESTIMATE" vars="_, vx, vy, vz, _"/>
 </variables>

please not the in this example, the first and the last variable are
ignored but the number of variable must match the number of fields in
ABI messages description (conf/abi.xml).

An extra attribute 'id' allows to set a specific sender ID (by default
ABI_BROADCAST).
@knmcguire
Copy link
Contributor

Eventhough I can not review this pull request properly, I did test out this functionality quickly in the flightplan in gazebo, with the AGL abi-message:

<abi_binding name="AGL" vars="height"/>

I created a block with an downlink message just to see if the variable actually updated:

<call_once fun="DOWNLINK_SEND_ESTIMATOR(DefaultChannel, DefaultDevice,&height, &height)"/>


And the value was exactly the same (with a slight delay) as the sonar_distance variable from SONAR telemetry message. So it seems to do the trick.
screenshot from 2017-08-21 22-17-09

@gautierhattenberger gautierhattenberger merged commit da5c424 into master Aug 23, 2017
@gautierhattenberger gautierhattenberger deleted the abi_fp_bindings branch August 23, 2017 11:18
kirkscheper pushed a commit to kirkscheper/paparazzi that referenced this pull request Aug 24, 2017
…#2106)

This feature allows to create an automatic binding to a ABI message
while specifying the list of variable names ('_' are ignored).
A local (static) variable is updated to the latest value each time a new
message is received and it can be read in any flight plan instruction.

Example of usage:

 <variables>
  <abi_binding name="VELOCITY_ESTIMATE" vars="_, vx, vy, vz, _"/>
 </variables>

please not the in this example, the first and the last variable are
ignored but the number of variable must match the number of fields in
ABI messages description (conf/abi.xml).

An extra attribute 'id' allows to set a specific sender ID (by default
ABI_BROADCAST).
noether pushed a commit to noether/paparazzi that referenced this pull request Sep 5, 2017
…#2106)

This feature allows to create an automatic binding to a ABI message
while specifying the list of variable names ('_' are ignored).
A local (static) variable is updated to the latest value each time a new
message is received and it can be read in any flight plan instruction.

Example of usage:

 <variables>
  <abi_binding name="VELOCITY_ESTIMATE" vars="_, vx, vy, vz, _"/>
 </variables>

please not the in this example, the first and the last variable are
ignored but the number of variable must match the number of fields in
ABI messages description (conf/abi.xml).

An extra attribute 'id' allows to set a specific sender ID (by default
ABI_BROADCAST).
knmcguire added a commit to knmcguire/paparazzi that referenced this pull request Sep 7, 2017
[modules] added module to handle the range sensors

[gazebo] added rangesensor init functions to nps_gazebo

[gazebo] added range modules, but gazebo is unable to find it! maybe add range sensors back to the ardrone model directly??

[modules/rangemodules + gazebo] *fixed pointer problem to range sensors
* fixed unresponsive forcefield on the range sensors

[fix-me-style]

[misc] removed debug messages and speed up simulation

Bebop firmware 4.06 seems to work fine (tested with manual flying) (paparazzi#2102)

upgrades to optical flow landing module 2 (paparazzi#2087)

* fix cov method 2 array initialisation for optical flow landing
* add extra divide by 0 checks

update default google map version to latest value

update changelog

[guided] add some defines to set the update flags

[flight_plan] add binding to ABI messages from flight plan (paparazzi#2106)

This feature allows to create an automatic binding to a ABI message
while specifying the list of variable names ('_' are ignored).
A local (static) variable is updated to the latest value each time a new
message is received and it can be read in any flight plan instruction.

Example of usage:

 <variables>
  <abi_binding name="VELOCITY_ESTIMATE" vars="_, vx, vy, vz, _"/>
 </variables>

please not the in this example, the first and the last variable are
ignored but the number of variable must match the number of fields in
ABI messages description (conf/abi.xml).

An extra attribute 'id' allows to set a specific sender ID (by default
ABI_BROADCAST).

[pprzlink] fix cast align warning

[gps] example of broadcasting GPS messages between aircrafts

This is used by the traffic info module to have position of surrounding
aircraft at higher rate and lower latency.
Based on PPRZLINK v2.

Flight plan example for autopilot mode guided (paparazzi#2101)

Use flight plan state machine to control a rotorcraft in guided mode.
Also use ABI messages to send color detection information.

[modules/range_module] fixed broken functions

[abi] added sender IDS and added to abi messages

[flightplan] added abi message forcefield to flight plan guided and tested out: it works!

[abi] change name of sender ID

[modules/sensors] added range sensor to mag_pitot_uart.c

[modules/range_sensor] changed name module

[range sensor] added very simple wall following (goto look at the gains a bit more, too slow)

[wall following] implemented a seperate state machine that interchanges between change heading and wall distance control, because range measurement is coupled between the two and leads to instability (or no control),
Verdict: actually the wall following itself works a lot better... I will try out an different approach

[bug] added forward going block

[bug] implemented very simple algorithm, able to handle circles but not wall corners...

added imav world

[gazebo] changed world file to work with paparazzi

[modules/rangesensor] also changed name within code

[gazebo] added external stereocamera to ardrone model

[gazebo] added stereo camera to nps_fdm_gazebo.cpp and made new airframe file

[conf] made new conf files to seperate all

[gazebo/stereoboard] added code for edgeflow

[stereocam] trying to get the edgeflow forcefield up and running

[stereocam] added forcefield by stereo (not working great...)

[bug] wall following around obstacle ... bit difficult to achieve...

[bug] tried offset navigation tactic, but obstacle detection by stereocamera is very buggy...

[bug] very simple approach for bug algorithm, but still have to implement a wrapping function for pi

[bug airframe] finally got the pi wrapping working

[airframe] pocket drone airframe created

[flash] fix bug lisa mxs flashing

[rangesensors] checked range sensors and they work!

Attitude viz message and no_rc takeoff for indi (paparazzi#2108)

Update firmware to newest version

Made lisa mxs compatible with BMP v2 by disabling voltage sensing.
This required making a seperate board file for the mxs. Hence also changed the ladylisamxs airframe file to use the new board. Also added a cx10 airframe file.

Also change lisa s

added outlier detector to bebop sonar and extended median filter to handle variable size filters (paparazzi#1909)

use pprzlink with stereocam (paparazzi#2107)

[gazebo] fixed environment

[pprzlink] updated all to accomendate the new pprzlink code

[stereocam] updated obstacle avoidance code

[gazebo] copied things from stereocam

[gazebo] added opencv and plotting to gazebo

[stereoboard] tried to fix the derotation problem

[changes]

[stereboard] now possibility to also check old code since that is working better??

[bug] tested out and something that kind of works

[changes] some changes for flight

[gazebo] small changes

[changes]
kirkscheper pushed a commit to tudelft/paparazzi that referenced this pull request Oct 20, 2017
initial files for imav2017

[gazebo/models] added rangesensors to gazebo model

[modules] added module to handle the range sensors

[gazebo] added rangesensor init functions to nps_gazebo

[gazebo] added range modules, but gazebo is unable to find it! maybe add range sensors back to the ardrone model directly??

[modules/rangemodules + gazebo] *fixed pointer problem to range sensors
* fixed unresponsive forcefield on the range sensors

[fix-me-style]

[misc] removed debug messages and speed up simulation

Bebop firmware 4.06 seems to work fine (tested with manual flying) (paparazzi#2102)

upgrades to optical flow landing module 2 (paparazzi#2087)

* fix cov method 2 array initialisation for optical flow landing
* add extra divide by 0 checks

update default google map version to latest value

update changelog

[guided] add some defines to set the update flags

[flight_plan] add binding to ABI messages from flight plan (paparazzi#2106)

This feature allows to create an automatic binding to a ABI message
while specifying the list of variable names ('_' are ignored).
A local (static) variable is updated to the latest value each time a new
message is received and it can be read in any flight plan instruction.

Example of usage:

 <variables>
  <abi_binding name="VELOCITY_ESTIMATE" vars="_, vx, vy, vz, _"/>
 </variables>

please not the in this example, the first and the last variable are
ignored but the number of variable must match the number of fields in
ABI messages description (conf/abi.xml).

An extra attribute 'id' allows to set a specific sender ID (by default
ABI_BROADCAST).

[pprzlink] fix cast align warning

[gps] example of broadcasting GPS messages between aircrafts

This is used by the traffic info module to have position of surrounding
aircraft at higher rate and lower latency.
Based on PPRZLINK v2.

Flight plan example for autopilot mode guided (paparazzi#2101)

Use flight plan state machine to control a rotorcraft in guided mode.
Also use ABI messages to send color detection information.

[modules/range_module] fixed broken functions

[abi] added sender IDS and added to abi messages

[flightplan] added abi message forcefield to flight plan guided and tested out: it works!

[abi] change name of sender ID

[modules/sensors] added range sensor to mag_pitot_uart.c

[modules/range_sensor] changed name module

[range sensor] added very simple wall following (goto look at the gains a bit more, too slow)

[wall following] implemented a seperate state machine that interchanges between change heading and wall distance control, because range measurement is coupled between the two and leads to instability (or no control),
Verdict: actually the wall following itself works a lot better... I will try out an different approach

[bug] added forward going block

[bug] implemented very simple algorithm, able to handle circles but not wall corners...

added imav world

[gazebo] changed world file to work with paparazzi

[modules/rangesensor] also changed name within code

[gazebo] added external stereocamera to ardrone model

[gazebo] added stereo camera to nps_fdm_gazebo.cpp and made new airframe file

[conf] made new conf files to seperate all

[gazebo/stereoboard] added code for edgeflow

[stereocam] trying to get the edgeflow forcefield up and running

[stereocam] added forcefield by stereo (not working great...)

[bug] wall following around obstacle ... bit difficult to achieve...

[bug] tried offset navigation tactic, but obstacle detection by stereocamera is very buggy...

[bug] very simple approach for bug algorithm, but still have to implement a wrapping function for pi

[bug airframe] finally got the pi wrapping working

[airframe] pocket drone airframe created

[flash] fix bug lisa mxs flashing

[rangesensors] checked range sensors and they work!

Attitude viz message and no_rc takeoff for indi (paparazzi#2108)

Update firmware to newest version

Made lisa mxs compatible with BMP v2 by disabling voltage sensing.
This required making a seperate board file for the mxs. Hence also changed the ladylisamxs airframe file to use the new board. Also added a cx10 airframe file.

Also change lisa s

added outlier detector to bebop sonar and extended median filter to handle variable size filters (paparazzi#1909)

use pprzlink with stereocam (paparazzi#2107)

[gazebo] fixed environment

[pprzlink] updated all to accomendate the new pprzlink code

[stereocam] updated obstacle avoidance code

[gazebo] copied things from stereocam

[gazebo] added opencv and plotting to gazebo

[stereoboard] tried to fix the derotation problem

[changes]

[stereboard] now possibility to also check old code since that is working better??

[bug] tested out and something that kind of works

[changes] some changes for flight

[gazebo] small changes

[changes]

hff working well with stereocamera with no gps

update messages to same as stereocam

replace gazebo alt with pprz cmd

[ins] fixed horizontal float filter bug
[gazebo] removed hard hacks from gazebo for stereocam
[guidance] updated flightplan and fixed the guided throttle

[edgeflow] fixed distance measurement

[flightplan] changes to make the pocketdrone fly

[gazebo] fixed some small mistakes of the rebase and added the obstacle avoidance to pprz

[misc]
* Tried out new flight plan
* Added stereocamera array read inside stereocam
git commit -m [misc]

[imav2017]
*fixed obstacle detection bug
*Added flight plan to pocket drone origami

[flightplan] fixed constant turn bug

[misc]
[conf] added conf folder just for imav, and made an new imav flight plan for the obstacle field
[gate] added gate fly through to imav flight plan. In simulation, it does not seem to detect the window though..

[flight plan] fix typo

[flightplan] fixed bugfix in flightplan

[flightplan] tried out new obstacle strategy. still need some tweeking

[misc]
* Tried out new flight plan, simulation kind of works but the rotation is terrible...
* added snapshot to the hff

[flight plan] treid out new obstacle field avoidance, actually does not work as well as the previous

[flightplans] moved to different directory

* added procedures for the indoor avoidance task

[gate] added debugging tools in simulation for the gate detection.

[misc] added snapshot position correctly to hff (not tested yet...
* Gate detection now works better
*NEXT STEP: derotation on lisa mxs is not workin properly. pprzlink does seem to work and I do not see issues on the simulation... what could it be

updated optical flow and hff implementation

reserect old vision and add dropping module

Slamdunk guided navigation (#42)

* ARTag markers

* Add new message REMOTE_GPS_LOCAL and way to parse it

Made for indoor navigation in wide space

* [pprzlink] Added REMOTE_GPS_LOCAL message

* New airframe + small fixes

* Slamdunk GPS and avoidance

Real full commit

* Repush of each actual changes

Fighting with Git isn't an easy thing

* Undoing TUDelft merge

* [Slamdunk] Last updates

working blob detector

blob detector updated

tried to update code to run sim, not compiling yet

smiulator compiling again!

try to fix size divergence nans

Fixed the double flow vector problem - but only before optical flow tracking

all seems to be working now
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants