PX4 Supported package - Why Simulink SITL use uORB ground truth?

1 view (last 30 days)
Hello,
When I tried to run Simulink SITL, with upload my own controller in px4, I found that I have to read uorb message with ground truth.
When I read just uorb message, it only reads 0.
Can you explain what groundtruth means and why should I use this instance not just uorb message(e.g. vehicle_local_position, not vehicle_local_position_groundtruth)?
Thank you in advance!

Answers (1)

Arun Mathamkode
Arun Mathamkode on 28 Apr 2023
You should be able to use vehicle_local_position instead of vehicle_local_position_groundtruth as well. I would recommend you try out the controller model described in the PX4 HITL example for SITL as it is a bit better controller than the SITL controller. I also recommend trying out this in R2023a.
  2 Comments
종원 이
종원 이 on 28 Apr 2023
Thank you for your answer!
Well, I did not try HITL yet, but it seems vehicle_local_position should be able to read EKF value if you are right.
But in SITL, the value is always zero while the status is 1 which means new message is keep receiving.
Same thing happens If I change vehicle_local_position in the example, so I think there are some bug in PX4 SITL in reading uorb message at least R2022b version. Can you please check it?
I appreciate with your answer again!
Arun Mathamkode
Arun Mathamkode on 2 May 2023
Can you please check if your estimator is running with out any errors? Are you seeing any errors in the SITL window? As per your description the uORB is never getting published (A value of 0 indicates that the uORB data at the Msg output is the latest, and a value of 1 indicates that the uORB data was received during the previous time step). My best guess is that the estimator is not running properly. You can verify if the uORB getting published using 'listener' command in SITL window.

Sign in to comment.

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!