Skip to content

Commit 4e4f35b

Browse files
authored
Merge branch 'main' into pr-multicopter_altitude_hold_mavsdk_test
2 parents de65d11 + 65a80dc commit 4e4f35b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2261
-1465
lines changed

.github/workflows/flash_analysis.yml

+61-56
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
name: FLASH usage analysis
22

33
permissions:
4+
contents: read
45
pull-requests: write
56
issues: write
67

@@ -87,59 +88,63 @@ jobs:
8788
echo '${{ steps.bloaty-step.outputs.bloaty-summary-map }}' >> $GITHUB_OUTPUT
8889
echo "$EOF" >> $GITHUB_OUTPUT
8990
90-
post_pr_comment:
91-
name: Publish Results
92-
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
93-
needs: [analyze_flash]
94-
env:
95-
V5X-SUMMARY-MAP-ABS: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-summary-map).vm-absolute) }}
96-
V5X-SUMMARY-MAP-PERC: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-summary-map).vm-percentage) }}
97-
V6X-SUMMARY-MAP-ABS: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-summary-map).vm-absolute) }}
98-
V6X-SUMMARY-MAP-PERC: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-summary-map).vm-percentage) }}
99-
if: ${{ github.event.pull_request }}
100-
steps:
101-
- name: Find Comment
102-
uses: peter-evans/find-comment@v3
103-
id: fc
104-
with:
105-
issue-number: ${{ github.event.pull_request.number }}
106-
comment-author: 'github-actions[bot]'
107-
body-includes: FLASH Analysis
108-
109-
- name: Set Build Time
110-
id: bt
111-
run: |
112-
echo "timestamp=$(date +'%Y-%m-%dT%H:%M:%S')" >> $GITHUB_OUTPUT
113-
114-
- name: Create or update comment
115-
# This can't be moved to the job-level conditions, as GH actions don't allow a job-level if condition to access the env.
116-
if: |
117-
steps.fc.outputs.comment-id != '' ||
118-
env.V5X-SUMMARY-MAP-ABS >= fromJSON(env.MIN_FLASH_POS_DIFF_FOR_COMMENT) ||
119-
env.V5X-SUMMARY-MAP-ABS <= fromJSON(env.MIN_FLASH_NEG_DIFF_FOR_COMMENT) ||
120-
env.V6X-SUMMARY-MAP-ABS >= fromJSON(env.MIN_FLASH_POS_DIFF_FOR_COMMENT) ||
121-
env.V6X-SUMMARY-MAP-ABS <= fromJSON(env.MIN_FLASH_NEG_DIFF_FOR_COMMENT)
122-
uses: peter-evans/create-or-update-comment@v4
123-
with:
124-
comment-id: ${{ steps.fc.outputs.comment-id }}
125-
issue-number: ${{ github.event.pull_request.number }}
126-
body: |
127-
## 🔎 FLASH Analysis
128-
<details>
129-
<summary>px4_fmu-v5x [Total VM Diff: ${{ env.V5X-SUMMARY-MAP-ABS }} byte (${{ env.V5X-SUMMARY-MAP-PERC}} %)]</summary>
130-
131-
```
132-
${{ needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-output }}
133-
```
134-
</details>
135-
136-
<details>
137-
<summary>px4_fmu-v6x [Total VM Diff: ${{ env.V6X-SUMMARY-MAP-ABS }} byte (${{ env.V6X-SUMMARY-MAP-PERC }} %)]</summary>
138-
139-
```
140-
${{ needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-output }}
141-
```
142-
</details>
143-
144-
**Updated: _${{ steps.bt.outputs.timestamp }}_**
145-
edit-mode: replace
91+
# TODO:
92+
# This part of the workflow is causing errors, we should find a way to fix this and enable this test again
93+
# Track this issue https://github.com/PX4/PX4-Autopilot/issues/24408
94+
#
95+
#post_pr_comment:
96+
#name: Publish Results
97+
#runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
98+
#needs: [analyze_flash]
99+
#env:
100+
#V5X-SUMMARY-MAP-ABS: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-summary-map).vm-absolute) }}
101+
#V5X-SUMMARY-MAP-PERC: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-summary-map).vm-percentage) }}
102+
#V6X-SUMMARY-MAP-ABS: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-summary-map).vm-absolute) }}
103+
#V6X-SUMMARY-MAP-PERC: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-summary-map).vm-percentage) }}
104+
#if: ${{ github.event.pull_request }}
105+
#steps:
106+
#- name: Find Comment
107+
#uses: peter-evans/find-comment@v3
108+
#id: fc
109+
#with:
110+
#issue-number: ${{ github.event.pull_request.number }}
111+
#comment-author: 'github-actions[bot]'
112+
#body-includes: FLASH Analysis
113+
114+
#- name: Set Build Time
115+
#id: bt
116+
#run: |
117+
#echo "timestamp=$(date +'%Y-%m-%dT%H:%M:%S')" >> $GITHUB_OUTPUT
118+
119+
#- name: Create or update comment
120+
## This can't be moved to the job-level conditions, as GH actions don't allow a job-level if condition to access the env.
121+
#if: |
122+
#steps.fc.outputs.comment-id != '' ||
123+
#env.V5X-SUMMARY-MAP-ABS >= fromJSON(env.MIN_FLASH_POS_DIFF_FOR_COMMENT) ||
124+
#env.V5X-SUMMARY-MAP-ABS <= fromJSON(env.MIN_FLASH_NEG_DIFF_FOR_COMMENT) ||
125+
#env.V6X-SUMMARY-MAP-ABS >= fromJSON(env.MIN_FLASH_POS_DIFF_FOR_COMMENT) ||
126+
#env.V6X-SUMMARY-MAP-ABS <= fromJSON(env.MIN_FLASH_NEG_DIFF_FOR_COMMENT)
127+
#uses: peter-evans/create-or-update-comment@v4
128+
#with:
129+
#comment-id: ${{ steps.fc.outputs.comment-id }}
130+
#issue-number: ${{ github.event.pull_request.number }}
131+
#body: |
132+
### 🔎 FLASH Analysis
133+
#<details>
134+
#<summary>px4_fmu-v5x [Total VM Diff: ${{ env.V5X-SUMMARY-MAP-ABS }} byte (${{ env.V5X-SUMMARY-MAP-PERC}} %)]</summary>
135+
136+
#```
137+
#${{ needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-output }}
138+
#```
139+
#</details>
140+
141+
#<details>
142+
#<summary>px4_fmu-v6x [Total VM Diff: ${{ env.V6X-SUMMARY-MAP-ABS }} byte (${{ env.V6X-SUMMARY-MAP-PERC }} %)]</summary>
143+
144+
#```
145+
#${{ needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-output }}
146+
#```
147+
#</details>
148+
149+
#**Updated: _${{ steps.bt.outputs.timestamp }}_**
150+
#edit-mode: replace

ROMFS/performance-test/CMakeLists.txt

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
############################################################################
2+
#
3+
# Copyright (c) 2025 PX4 Development Team. All rights reserved.
4+
#
5+
# Redistribution and use in source and binary forms, with or without
6+
# modification, are permitted provided that the following conditions
7+
# are met:
8+
#
9+
# 1. Redistributions of source code must retain the above copyright
10+
# notice, this list of conditions and the following disclaimer.
11+
# 2. Redistributions in binary form must reproduce the above copyright
12+
# notice, this list of conditions and the following disclaimer in
13+
# the documentation and/or other materials provided with the
14+
# distribution.
15+
# 3. Neither the name PX4 nor the names of its contributors may be
16+
# used to endorse or promote products derived from this software
17+
# without specific prior written permission.
18+
#
19+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22+
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23+
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26+
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27+
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28+
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29+
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30+
# POSSIBILITY OF SUCH DAMAGE.
31+
#
32+
############################################################################
33+
34+
add_subdirectory(init.d)

src/modules/rover_mecanum/RoverMecanumGuidance/CMakeLists.txt ROMFS/performance-test/init.d/CMakeLists.txt

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
############################################################################
22
#
3-
# Copyright (c) 2024 PX4 Development Team. All rights reserved.
3+
# Copyright (c) 2025 PX4 Development Team. All rights reserved.
44
#
55
# Redistribution and use in source and binary forms, with or without
66
# modification, are permitted provided that the following conditions
@@ -31,8 +31,6 @@
3131
#
3232
############################################################################
3333

34-
px4_add_library(RoverMecanumGuidance
35-
RoverMecanumGuidance.cpp
34+
px4_add_romfs_files(
35+
rcS
3636
)
37-
38-
target_include_directories(RoverMecanumGuidance PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

ROMFS/performance-test/init.d/rcS

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#!/bin/sh
2+
# Un comment and use set +e to ignore and set -e to enable 'exit on error control'
3+
set +e
4+
# Un comment the line below to help debug scripts by printing a trace of the script commands
5+
#set -x
6+
# PX4FMU startup script.
7+
#
8+
# NOTE: environment variable references:
9+
# If the dollar sign ('$') is followed by a left bracket ('{') then the
10+
# variable name is terminated with the right bracket character ('}').
11+
# Otherwise, the variable name goes to the end of the argument.
12+
#
13+
#
14+
# NOTE: COMMENT LINES ARE REMOVED BEFORE STORED IN ROMFS.
15+
#
16+
#------------------------------------------------------------------------------
17+
set R /
18+
19+
#
20+
# Print full system version.
21+
#
22+
ver all
23+
24+
#
25+
# Set the parameter file the board supports params on
26+
# MTD device.
27+
#
28+
if mft query -q -k MTD -s MTD_PARAMETERS -v /fs/mtd_params
29+
then
30+
set PARAM_FILE /fs/mtd_params
31+
fi
32+
33+
#
34+
# Load parameters.
35+
#
36+
# if the board has a storage for (factory) calibration data
37+
if mft query -q -k MTD -s MTD_CALDATA -v /fs/mtd_caldata
38+
then
39+
param load /fs/mtd_caldata
40+
fi
41+
42+
#
43+
# Load parameters.
44+
#
45+
param select $PARAM_FILE
46+
if ! param load
47+
then
48+
param reset_all
49+
fi
50+
51+
#
52+
# Try to mount the microSD card.
53+
#
54+
mount -t vfat /dev/mmcsd0 /fs/microsd
55+
if [ $? = 0 ]
56+
then
57+
echo "SD card mounted at /fs/microsd"
58+
else
59+
echo "No SD card found"
60+
fi
61+
62+
unset R
63+
64+
echo ""
65+
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
66+
echo "!!!!!! This is the PERFORMANCE TESTING firmware! WARNs and ERRORs are expected! !!!!!"
67+
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
68+
echo ""

ROMFS/px4fmu_common/init.d-posix/airframes/4015_gz_r1_rover_mecanum

+28-18
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,38 @@ PX4_SIM_MODEL=${PX4_SIM_MODEL:=r1_rover_mecanum}
1111

1212
param set-default SIM_GZ_EN 1 # Gazebo bridge
1313

14-
# Rover parameters
14+
param set-default NAV_ACC_RAD 0.5
15+
16+
# Mecanum Parameters
1517
param set-default RM_WHEEL_TRACK 0.3
16-
param set-default RM_YAW_RATE_I 0.1
17-
param set-default RM_YAW_RATE_P 0.1
18-
param set-default RM_MAX_ACCEL 3
19-
param set-default RM_MAX_DECEL 5
20-
param set-default RM_MAX_JERK 5
21-
param set-default RM_MAX_SPEED 2
22-
param set-default RM_MAX_THR_SPD 2.2
2318
param set-default RM_MAX_THR_YAW_R 1.2
24-
param set-default RM_YAW_P 5
25-
param set-default RM_YAW_I 0.1
26-
param set-default RM_MAX_YAW_RATE 120
27-
param set-default RM_MAX_YAW_ACCEL 240
28-
param set-default RM_MISS_VEL_GAIN 1
29-
param set-default RM_SPEED_I 0.01
30-
param set-default RM_SPEED_P 0.1
31-
32-
# Pure pursuit parameters
19+
param set-default RM_MISS_SPD_GAIN 1
20+
21+
# Rover Control Parameters
22+
param set-default RO_ACCEL_LIM 3
23+
param set-default RO_DECEL_LIM 5
24+
param set-default RO_JERK_LIM 30
25+
param set-default RO_MAX_THR_SPEED 2.1
26+
27+
# Rover Rate Control Parameters
28+
param set-default RO_YAW_RATE_I 0.1
29+
param set-default RO_YAW_RATE_P 0.1
30+
param set-default RO_YAW_RATE_LIM 120
31+
param set-default RO_YAW_ACCEL_LIM 240
32+
param set-default RO_YAW_DECEL_LIM 1000
33+
34+
# Rover Attitude Control Parameters
35+
param set-default RO_YAW_P 5
36+
37+
# Rover Position Control Parameters
38+
param set-default RO_SPEED_LIM 2
39+
param set-default RO_SPEED_I 0.5
40+
param set-default RO_SPEED_P 1
41+
42+
# Pure Pursuit parameters
43+
param set-default PP_LOOKAHD_GAIN 0.5
3344
param set-default PP_LOOKAHD_MAX 10
3445
param set-default PP_LOOKAHD_MIN 1
35-
param set-default PP_LOOKAHD_GAIN 0.5
3646

3747
# Simulated sensors
3848
param set-default SENS_EN_GPSSIM 1

Tools/ci/generate_board_targets_json.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def process_target(px4board_file, target_name):
6969
group = None
7070

7171
if px4board_file.endswith("default.px4board") or \
72-
px4board_file.endswith("recovery.px4board") or \
72+
px4board_file.endswith("performance-test.px4board") or \
7373
px4board_file.endswith("bootloader.px4board"):
7474
kconf.load_config(px4board_file, replace=True)
7575
else: # Merge config with default.px4board

Tools/kconfig/allyesconfig.py

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
'SYSTEMCMDS_I2CDETECT', # Not supported in SITL
7575
'SYSTEMCMDS_DMESG', # Not supported in SITL
7676
'SYSTEMCMDS_USB_CONNECTED', # Not supported in SITL
77+
'SYSTEMCMDS_MFT_CFG', # Not supported in SITL
7778
'MODULES_SPACECRAFT', # Clashes with Control Allocation (mom's spaghetti code)
7879
]
7980

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
2+
CONFIG_BOARD_ARCHITECTURE="cortex-m7"
3+
CONFIG_BOARD_ETHERNET=y
4+
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS0"
5+
CONFIG_BOARD_SERIAL_GPS2="/dev/ttyS7"
6+
CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS6"
7+
CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS4"
8+
CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS1"
9+
CONFIG_BOARD_SERIAL_EXT2="/dev/ttyS3"
10+
CONFIG_BOARD_ROMFSROOT="performance-test"
11+
CONFIG_DRIVERS_ADC_BOARD_ADC=y
12+
CONFIG_SYSTEMCMDS_DMESG=y
13+
CONFIG_SYSTEMCMDS_GPIO=y
14+
CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y
15+
CONFIG_SYSTEMCMDS_I2CDETECT=y
16+
CONFIG_SYSTEMCMDS_LED_CONTROL=y
17+
CONFIG_SYSTEMCMDS_MFT=y
18+
CONFIG_SYSTEMCMDS_MTD=y
19+
CONFIG_SYSTEMCMDS_MFT_CFG=y
20+
CONFIG_SYSTEMCMDS_PARAM=y
21+
CONFIG_SYSTEMCMDS_PERF=y
22+
CONFIG_SYSTEMCMDS_REBOOT=y
23+
CONFIG_SYSTEMCMDS_SD_BENCH=y
24+
CONFIG_SYSTEMCMDS_SD_STRESS=y
25+
CONFIG_SYSTEMCMDS_SERIAL_TEST=y
26+
CONFIG_SYSTEMCMDS_SYSTEM_TIME=y
27+
CONFIG_SYSTEMCMDS_TOP=y
28+
CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y
29+
CONFIG_SYSTEMCMDS_UORB=y
30+
CONFIG_SYSTEMCMDS_VER=y
31+
CONFIG_SYSTEMCMDS_WORK_QUEUE=y
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
2+
CONFIG_BOARD_ARCHITECTURE="cortex-m7"
3+
CONFIG_BOARD_ETHERNET=y
4+
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS0"
5+
CONFIG_BOARD_SERIAL_GPS2="/dev/ttyS7"
6+
CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS6"
7+
CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS4"
8+
CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS1"
9+
CONFIG_BOARD_SERIAL_EXT2="/dev/ttyS3"
10+
CONFIG_BOARD_ROMFSROOT="performance-test"
11+
CONFIG_DRIVERS_ADC_BOARD_ADC=y
12+
CONFIG_SYSTEMCMDS_DMESG=y
13+
CONFIG_SYSTEMCMDS_GPIO=y
14+
CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y
15+
CONFIG_SYSTEMCMDS_I2CDETECT=y
16+
CONFIG_SYSTEMCMDS_LED_CONTROL=y
17+
CONFIG_SYSTEMCMDS_MFT=y
18+
CONFIG_SYSTEMCMDS_MTD=y
19+
CONFIG_SYSTEMCMDS_MFT_CFG=y
20+
CONFIG_SYSTEMCMDS_PARAM=y
21+
CONFIG_SYSTEMCMDS_PERF=y
22+
CONFIG_SYSTEMCMDS_REBOOT=y
23+
CONFIG_SYSTEMCMDS_SD_BENCH=y
24+
CONFIG_SYSTEMCMDS_SD_STRESS=y
25+
CONFIG_SYSTEMCMDS_SERIAL_TEST=y
26+
CONFIG_SYSTEMCMDS_SYSTEM_TIME=y
27+
CONFIG_SYSTEMCMDS_TOP=y
28+
CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y
29+
CONFIG_SYSTEMCMDS_UORB=y
30+
CONFIG_SYSTEMCMDS_VER=y
31+
CONFIG_SYSTEMCMDS_WORK_QUEUE=y

cmake/kconfig.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if(EXISTS ${BOARD_DEFCONFIG})
3535
# Depend on BOARD_DEFCONFIG so that we reconfigure on config change
3636
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${BOARD_DEFCONFIG})
3737

38-
if(${LABEL} MATCHES "default" OR ${LABEL} MATCHES "recovery" OR ${LABEL} MATCHES "bootloader" OR ${LABEL} MATCHES "canbootloader")
38+
if(${LABEL} MATCHES "default" OR ${LABEL} MATCHES "performance-test" OR ${LABEL} MATCHES "bootloader" OR ${LABEL} MATCHES "canbootloader")
3939
# Generate boardconfig from saved defconfig
4040
execute_process(
4141
COMMAND ${CMAKE_COMMAND} -E env ${COMMON_KCONFIG_ENV_SETTINGS}

0 commit comments

Comments
 (0)