PX4 Community Q&A: June 14, 2023

June 14, 2023

Join us

Agenda

  • Community Announcement
  • Community Q&A
  • General Discussions

:loudspeaker: Community Announcement


A.1 :

:people_holding_hands: Community Q&A (No deep technical discussions)


:exclamation: Guideline for asking a Question

  1. Specify what you are trying to achieve
  2. Specify what environment / platform you are using
  3. Prepare a Link or Document to help understand if possible
  4. First, ask the question on Discord or create a Github Issue!
  5. If you take over 5 minutes for the question, please continue in Discord or a Github Issue.

Q.1 : Iridium driver malfunctioning - Ludovic

  • Long duration High altitude balloon test
  • Iridium driver state is switching to idle, hangs, and works, then hangs, and then doesn’t continue functioning.
  • Flight log is 800+ MB, so couldn’t upload to flight review
  • Also, thermistor topics were logged

iridiumsbd_status message stopped, then continued working.

Question: Was the modem actually working?

Is it actually communicating with the modem during the period it ‘hangs’?

Action Item:

  • Figure out the structure of the module handling the iridium module communication & test via hardware on what happens when modem disconnects, etc.
  • Check if there are extra metrics in the modem that can be analyzed in PX4 side, to debug this

Q.2: MAVLink stream of a custom message not working - Ludovic

Currently trying to do check Iridium SBD message via MAVLink stream, as checking the status after downloading uLog is too time consuming.

Discussion:

  • Could try Wireshark for checking if data is coming through at least.

The message: Messages (common) · MAVLink Developer Guide

QGC MAVLink generation part: qgroundcontrol/src/AnalyzeView/MAVLinkInspectorController.cc at aa0f2c61b2c0dbf1913f1f8186312811ca7dbdeb · mavlink/qgroundcontrol · GitHub

Q.3: Precision landing not working - Ivan

  • There are parameters to configure to use precision landing.
  • For some reason, landing target estimator parameter isn’t showing up.

If the precision landing is not working with the drone check for this:

  1. Open QGC
  2. Click on QGC icon on the top right corner
  3. Select Vehicle Setup
  4. Click on Parameters tab from the left column
  5. on the search bar look for SENS_EN_IRLOCK and for LTEST
  6. If none of those shows then it is possible that Landing Target Estimator is not running.

To fix this we will do:

  1. Open QGC
  2. Click on QGC icon on the top left corner
  3. Click on Analyze Tools
  4. Click on MAVLink Console
  5. Create a folder
  mkdir /fs/microsd/etc
  
  1. Create a extras.txt file on the new folder
  echo irlock start -X >> /fs/microsd/etc/extras.txt
  
  echo landing_target_estimator star >> /fs/microsd/etc/extras.txt
  

There’s a workaround solution here for example: irlock doesn't work with the irlock Pixy camera · Issue #10210 · PX4/PX4-Autopilot · GitHub

Feedback: Make sure to also check especially the first pr of these:

For now, irlock & precision landing wasn’t being actively maintained, so it may be broken as well. Also, e.g. landing target estimator probably should be broken out for different sensors (e.g. UWB, Ir lock, etc) - Daniel

Action Item:

  • Ivan will submit the issue to the PX4 repository

This check should access the parameter, hence the parameter should get flaged active and advertised to the ground station:

Q.4: ROS2 multi vehicle simulation - Aly

Using Multi-Vehicle Simulation with ROS 2 | PX4 User Guide (main), the namespaces aren’t configured correctly (separated out).

How environment variables work/ where to find that info?
Link to discord questions: Discord,
Discord

More details: The note in the documentation highlights the issue that the first instance (px4_instance=0) does not have an additional namespace in order to be consistent with the default behavior of the xrce-dds client on a real vehicle. I am using sitl_multiple_run.sh and the issue is sitll present

Question: Where’s the list of topics communicated through DDS?

  • Currently it’s a static YAML file under the dds module.

Also, when using multi-vehicle simulation, the DDS topics list are getting redirected (Standard IO), compared to when doing single vehicle simulation.

Note, getting the PX4 node wrapped properly and removing the multi vehicle script with arbitrary indexing conventions, etc would resolve our pain point long term as well - Daniel

Action Item:

  • Have an issue tracking this by Aly
  • Create CI workflow to make sure we support this multi-vehicle via DDS supported

Q.5: ROS2 Humble and Docker support

Answer: We aim to have them in a single container & switch over to Long term support ROS2 version as well.

This was also discussed here: PX4 Maintainers Call: June 13, 2023

:thinking: General Discussions


D.1 :

1 Like

Hi, we just did a “weather balloon” flight with PX4 a couple of weeks back and had a critical bug in the Iridium driver which result in a failed flight.

In the logs, we can see that the states of the Iridium driver “hang” for about 40 minutes. It then recovers and after a while stop completely. Which you can see in the last graph in the picture:

Here’s the log for anyone that wants to look at it in detail, here’s the link to the log: log_55_2023-5-31-16-04-32.ulg - Google Drive

Sadly, I wasn’t able to upload it to the flight preview website.

There’s the tmp61_thermistor topics that are thermistor inside the gondola to give us better temperature sensing of what’s going on in the gondola.

Basically, I’m kind of asking if anyone has an idea of what might of happen and how to fix it?

Thank you!

Ludovic

1 Like

Hi, I have another question. I’m trying to plot a new MAVLink message inside QGC with the MAVLink Inspector view, but I’m not able to see it on the QGC side.

I have a new MAVLink stream being output on the USB connection on the Pixhawk hardware. And I’ve tested it with another interface to make sure that it is actually publishing data. And I can also see it when I execute the mavlink status streams command:

And I’m sure I need to update the C library that QGC is using so that it will have the proper header to decode the msg. So I executed the python3 -m mavgenerate and generate the header with version 2 in C to the root of the c_library_v2 folder.

Also, my new message is inside common.xml.

Then I simply compile QGC with the docker instruction docker run --rm -v ${PWD}:/project/source -v ${PWD}/build:/project/build qgc-linux-docker. But then when I look into the MAVLink inspector, I’m not seeing anything regarding my streams :frowning: .

There’s this issue that mention it, but there doesn’t seem to have clear answer for me: New MAVLink message implementation to QGroundControl · Issue #2731 · mavlink/qgroundcontrol · GitHub

Any help would be appreciated :slight_smile:!

Thank you again, and sorry if I’m asking too many questions :sweat:.

Ludovic

1 Like