PX4 Community Q&A: March 01, 2023

March 01, 2023

Join us

Agenda

  • Community Announcement
  • Community Q&A
  • General Discussions

:loudspeaker: Community Announcement


A.1: 2022 Yearly Report from Dronecode Foundation (@rroche)

Thank you to all contributors & community members!

A.2: v1.13.3 Release Coordination

ONLY BUGFIXES AND CRITICAL CHANGES

: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 : Reposition command is not working

@mwbb is working on implementing MAV_CMD_DO_REPOSITION with this script and the drone just drifts away to one side with MPC_XY_VEL_MAX. What could be goin wrong here?

master.mav.command_long_send(
    master.target_system,
    master.target_component,
    mavutil.mavlink.MAV_CMD_DO_REPOSITION,
    5,220, 0, 0, 35.144746, 33.905092, 4,0)

log: https://review.px4.io/plot_app?log=e3c4ef83-c874-47de-b0f9-f0b85ab61a1d

Answer: Check the command_long, definition. The parameter in the script is all shifted by 1 each. Remove the 0 at the end & add the confirmation parameter before the actual data (7 parameters)

Q.2 : When is stable 1.14 coming?

@mwbb is there a current stable release commit for 1.14? Or overall, would be awesome to know if there is a plan for a release anytime soon?

Todos: have project board / asking devs which feature should be included, and clarify what 1.14 would need to have. Ask each maintainer on release-blocking PR.

Initial project board for 1.14 release started: PX4 v1.14 Release · GitHub

  • Note: needs to have clear definition on feature sets (Daniel), we should be careful about that

Q.3 : Throw to launch feature - Michal

@mbarcis I’m working on the throw-launch feature [[WIP] throw launch by zeroos · Pull Request #21170 · PX4/PX4-Autopilot · GitHub] and I wanted to ask if it’s a welcome contribution to the project and if the direction I’m pursuing to implement it is valid.

Currently trying to achieve ‘dropping the drone and making it fly’. Anyone interested?

Current implementation is having it work as a forced ‘killswitch’, until the vehicle enters the freefall condition, when the killswitch (actuator lockdown) gets disengaged, thus allowing arming the motors.

Answer: Cool idea! Let’s get it safe to operate (reduce false positives). Should check whether the actuator lockdown is interfering with the parachute triggering code.

Action Item: @mbarcis, Please upload a log! Videos can optionally be shared (would be interesting)

Q.4 : Control allocator passthrough control signal - @Jun_En_Low

I’m using a pixracer + Upboard companion computer setup to test a supervised learning controller that outputs direct motor values. The companion computer outputs the motor values (0-1) which I am trying to pass directly to the motors.

Is it possible to configure the control allocator to allow for such a passthrough? Ideally, I’d want to be able to switch between regular control and this direct control for safety reasons but getting something running quick (and dirty if necessary) would already be a great start.

Answer: Daniel talked with him, using Micro DDS.

Note: In the past we didn’t encourage using direct actuator control via MAVLink, but now with DDS sub-milliseconds delay is promising for direct actuator control via offboard.

Q.5: Saving IMU Calibration data in EEPROM connected via SPI - @Brett_Fotheringham

I’m working with a PX4 custom board design that has the IMU on an external board. We’re now in a place where we are using PX4’s thermal calibration for our IMU/Barometer. The feature I’m working on is saving those calibration parameters to a SPI EEPROM chip on the external IMU board (rather than the FRAM) so they stay with the board if replaced, or calibrated on an external fixture etc.

Questions: Would the best way to do this be to extend PX4 MTD to handle SPI EEPROM chips? Has anyone tried or done this before? Does the community have any interest in this?

Original discord message: Discord

Answer: Find a similar interface example to implement it. Check how FMUv6x has MTD calibration mounting & scripting (rcS).

Q.6: Status of implementing a Service in PX4

If available, it would have been nice to arm vehicle & change modes, etc.

Answer: blocking implementation would cause problems. Making it easy to use (including work queue, etc) would be important. It would be definitely nice to have.

Related: [RFC] parameters: new parameter server backend by dagar · Pull Request #20773 · PX4/PX4-Autopilot · GitHub

Draft PR in the past: uORB Service feature by junwoo091400 · Pull Request #19921 · PX4/PX4-Autopilot · GitHub

Steps going forward:

  1. We can stick with generating 2 (request & response) messages out of a single service file (as in draft PR)
  2. We can check how ROS actually implements service to change the architecture if needed

If interested, let @junwoo0914 and @dagar !

:thinking: General Discussions


D.1 : MicroDDS IP Address Parameter suggestion

Answer: We can pack in the IP in the int 32 data structure for now. Encoding it as int32 via CLI / QGC would be awkward though.

Action Item: @Benja will create a PR for this!

D.2: PR review for LiDar driver

Action Item: Add it to any board to test whether it actually compiles. Nothing is blocking the PR from getting merged.

D.3: Metadata deployment Github Action broken

Actions · PX4/PX4-Autopilot · GitHub?

  • Most likely the flash overflow.
  • We shouldn’t merge when the CI is failing!

Related Issue:

Issue created:

Action Item: Junwoo will check on the tailsitter SITL test failure issue & breakdown.

Hello there!

I’m using a pixracer + Upboard companion computer setup to test a supervised learning controller that outputs direct motor values. The companion computer outputs the motor values (0-1) which I am trying to pass directly to the motors. Is it possible to configure the control allocator to allow for such a passthrough? Ideally, I’d want to be able to switch between regular control and this direct control for safety reasons but getting something running quick (and dirty if necessary) would already be a great start. Thanks in advance!

JunEn

1 Like

Hey! I’m posting my question here, not sure if it will be seen. Context follows:

I’m working with a PX4 custom board design that has the IMU on an external board. We’re now in a place where we are using PX4’s thermal calibration for our IMU/Barometer. The feature I’m working on is saving those calibration parameters to a SPI EEPROM chip on the external IMU board (rather than the FRAM) so they stay with the board if replaced, or calibrated on an external fixture etc.

Questions: Would the best way to do this be to extend PX4 MTD to handle SPI EEPROM chips? Has anyone tried or done this before? Does the community have any interest in this?

Additional Announcements

Aerial Robotics Meeting from ROS Community - March 21, 2023 @ 7am PT
The ROS community is hosting a meeting for aerial robotics developers, there are many PX4 members of that community it would be great if we can all join. You can find the invite don’t he dronecode calendar below.

microdds client: add Agent IP as PX4 parameter