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

Drone fails mid-air on second run #531

Closed
Yoyasp opened this issue Jan 12, 2020 · 7 comments
Closed

Drone fails mid-air on second run #531

Yoyasp opened this issue Jan 12, 2020 · 7 comments
Milestone

Comments

@Yoyasp
Copy link

Yoyasp commented Jan 12, 2020

My drones seem to be failing mid air when i do a second run.
I use a modified version of the synchronizedSequence example.

When i look at the console output i get the following messages:

sys: The system resumed after watchdog timeout [WARNING]

sys: Assert failed at .//vendor/FreeRTOS/queue.c:1429

The drone falls to the ground and Led 1 starts blinking red in bursts of 5-8 (to fast to count)

Im using a lighthouse deck with 2 V1 basestations, i've tried both methods (with EKF and with crossbeam), i also tried with and without the mellinger controller.

It seems to happening consistently 3 seconds after takeoff (on the second run)

Might have something to do with the latest commit?

@Yoyasp
Copy link
Author

Yoyasp commented Jan 12, 2020

reverting back to: 199e558 does indeed solve the problem.

@krichardsson
Copy link
Contributor

Hi! It is not impossible I messed something up when I converted to static memory. It seems as the assert you hit is in xQueueSemaphoreTake() which indicates that it is a semaphore that causes the problem.

Does it happen to all your Crazyflies at the same time?

Can it be reproduced with the unmodified synchronizedSequence? If not, is is possible for you to share the script you use?

@krichardsson
Copy link
Contributor

I can confirm this problem. How to reproduce:

  1. Modify with the synchronizedSequence script. Remove all but one CF and change the sequence to a bunch gotos for that CF.
  2. Run the script
  3. The CF crashes at .//vendor/FreeRTOS/queue.c:1429 every time

@krichardsson
Copy link
Contributor

It turned out that it was a stack overflow in the high level commander task. #509 moved the task stack from the heap to static memory and this cased an overwrite of the lockTrajBuffer semaphore buffer that is located next to it in the memory map. This can not be a new problem as the stack size has not changed, and it is good that we found it!

@krichardsson krichardsson added this to the next-release milestone Jan 13, 2020
@krichardsson
Copy link
Contributor

@Yoyasp Please verify that it works for you as well

@knmcguire
Copy link
Member

@Yoyasp, can you please confirm so that we can close this issue?

@Yoyasp
Copy link
Author

Yoyasp commented Jan 27, 2020

I've not had the issue since. Not sure how to test it extensively though...

@Yoyasp Yoyasp closed this as completed Jan 27, 2020
cafeciaojoe pushed a commit to cafeciaojoe/crazyflie-firmware that referenced this issue Sep 27, 2024
FlightTab: Remove unused flightmode.ratepid param
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

No branches or pull requests

3 participants