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

Vision position estimation fails depending on initial yaw (in Gazebo-SITL) #13116

Closed
michael-p opened this issue Oct 7, 2019 · 8 comments
Closed
Labels

Comments

@michael-p
Copy link

Describe the bug
Changing the initial rotation (yaw) of the copter iris_vision in Gazebo SITL causes the vision position estimation to fail. With different initial yaw like the default in iris_vision.world it works, albeit very shaky.

To Reproduce
Modify iris_vision.world by rotating the model:

[...]
<include>
      <uri>model://iris_vision</uri>
      <!-- Original: <pose>1.01 0.98 0.83 0 0 1.14</pose> -->
      <pose>1.01 0.98 0.83 0 0 -1.5</pose>
</include>
[...]

Run make px4_sitl gazebo_iris_vision, switch to position mode and take off, hover a few meters above ground. After a few seconds the copter flys away full speed, and then the failsafe kicks in and switches it to Altitude mode.
Console output:

INFO  [ecl/EKF] EKF aligned, (pressure height, IMU buf: 14, OBS buf: 9)
INFO  [ecl/EKF] 1432000: EKF commencing external vision position fusion
INFO  [ecl/EKF] 1432000: EKF commencing external vision yaw fusion
INFO  [commander] Takeoff detected
WARN  [commander] Failsafe enabled: no local position

Expected behavior
Not sure, honestly :) Even with the default initial yaw of the model the copter is very unstable so maybe the noise/drift parameters of the Gazebo vision plugin are just too extreme? I don't know. However, I would at least expect the behavior to be independent of the initial yaw of the copter, that is, it should either always work or always fail (after some time maybe).

@TSC21
Copy link
Member

TSC21 commented Oct 7, 2019

@michael-p what version of the Firmware are you using?

@michael-p
Copy link
Author

I tried this with the current master, but was also able to reproduce it with an older version (at commit 190c817).
Sadly the latest stable release 1.9.2 does not compile so I cannot try that.

@julianoes
Copy link
Contributor

Sadly the latest stable release 1.9.2 does not compile so I cannot try that.

Why? You likely just need to remove -Werror.

FYI @kamilritz

@julianoes julianoes added Feature: Vision Vision based flight bug labels Oct 8, 2019
@michael-p
Copy link
Author

Why? You likely just need to remove -Werror.

Yes I believe this was fixed in #12108, that's why I did not open an issue for it.

I just confirmed that in v1.9.2 the problem exists as well, although the console output is slightly different: (the ERROR line is different)

INFO  [commander] Takeoff detected
ERROR [commander] Critical navigation failure! Check sensor calibration
WARN  [commander] Failsafe enabled: no local position

@stale
Copy link

stale bot commented Jan 6, 2020

This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions.

@stale stale bot added the stale label Jan 6, 2020
@mhkabir
Copy link
Member

mhkabir commented Jan 6, 2020

I think I just ran into this as well. Pending further testing. @tzai can you try to reproduce using the iris_vision model in vanilla SITL (no ROS)?

@kamilritz
Copy link
Contributor

I think this should solve the issue: PX4/PX4-SITL_gazebo-classic#399

@stale
Copy link

stale bot commented Apr 26, 2020

This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions.

@stale stale bot added the stale label Apr 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants