Compare commits

..

1 Commits

Author SHA1 Message Date
Daniel Agar b499b53cc1 [DO NOT MERGE] test param save from HPWORK 2021-03-25 15:33:01 -04:00
551 changed files with 6110 additions and 9987 deletions
+9 -6
View File
@@ -9,10 +9,10 @@ pipeline {
script { script {
def build_nodes = [:] def build_nodes = [:]
def docker_images = [ def docker_images = [
armhf: "px4io/px4-dev-armhf:2021-04-29", armhf: "px4io/px4-dev-armhf:2021-02-04",
arm64: "px4io/px4-dev-aarch64:2021-04-29", arm64: "px4io/px4-dev-aarch64:2021-02-04",
base: "px4io/px4-dev-base-bionic:2021-04-29", base: "px4io/px4-dev-base-bionic:2021-02-04",
nuttx: "px4io/px4-dev-nuttx-focal:2021-04-29", nuttx: "px4io/px4-dev-nuttx-focal:2021-02-04",
snapdragon: "lorenzmeier/px4-dev-snapdragon:2020-04-01" snapdragon: "lorenzmeier/px4-dev-snapdragon:2020-04-01"
] ]
@@ -46,7 +46,9 @@ pipeline {
"cuav_can-gps-v1_default", "cuav_can-gps-v1_default",
"cuav_nora_default", "cuav_nora_default",
"cuav_x7pro_default", "cuav_x7pro_default",
"cubepilot_cubeorange_console",
"cubepilot_cubeorange_default", "cubepilot_cubeorange_default",
"cubepilot_cubeyellow_console",
"cubepilot_cubeyellow_default", "cubepilot_cubeyellow_default",
"holybro_can-gps-v1_canbootloader", "holybro_can-gps-v1_canbootloader",
"holybro_can-gps-v1_default", "holybro_can-gps-v1_default",
@@ -54,7 +56,6 @@ pipeline {
"holybro_kakutef7_default", "holybro_kakutef7_default",
"holybro_pix32v5_default", "holybro_pix32v5_default",
"modalai_fc-v1_default", "modalai_fc-v1_default",
"modalai_fc-v1_rtps",
"mro_ctrl-zero-f7_default", "mro_ctrl-zero-f7_default",
"mro_ctrl-zero-f7-oem_default", "mro_ctrl-zero-f7-oem_default",
"mro_ctrl-zero-h7_default", "mro_ctrl-zero-h7_default",
@@ -76,6 +77,7 @@ pipeline {
"px4_fmu-v2_fixedwing", "px4_fmu-v2_fixedwing",
"px4_fmu-v2_multicopter", "px4_fmu-v2_multicopter",
"px4_fmu-v2_rover", "px4_fmu-v2_rover",
"px4_fmu-v2_test",
"px4_fmu-v3_default", "px4_fmu-v3_default",
"px4_fmu-v4_cannode", "px4_fmu-v4_cannode",
"px4_fmu-v4_default", "px4_fmu-v4_default",
@@ -94,6 +96,7 @@ pipeline {
"px4_fmu-v5x_base_phy_DP83848C", "px4_fmu-v5x_base_phy_DP83848C",
"px4_fmu-v5x_default", "px4_fmu-v5x_default",
"px4_fmu-v6u_default", "px4_fmu-v6u_default",
"px4_fmu-v6u_test",
"px4_fmu-v6x_default", "px4_fmu-v6x_default",
"px4_io-v2_default", "px4_io-v2_default",
"spracing_h7extreme_default", "spracing_h7extreme_default",
@@ -130,7 +133,7 @@ pipeline {
// TODO: actually upload artifacts to S3 // TODO: actually upload artifacts to S3
// stage('S3 Upload') { // stage('S3 Upload') {
// agent { // agent {
// docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } // docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
// } // }
// options { // options {
// skipDefaultCheckout() // skipDefaultCheckout()
+177 -130
View File
@@ -7,12 +7,12 @@ pipeline {
parallel { parallel {
stage("cubepilot_cubeorange_test") { stage("cubepilot_cubeorange_console") {
stages { stages {
stage("build cubepilot_cubeorange_test") { stage("build cubepilot_cubeorange_console") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -22,10 +22,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make cubepilot_cubeorange_test' sh 'make cubepilot_cubeorange_console'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cubepilot_cubeorange_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cubepilot_cubeorange_console'
} }
post { post {
always { always {
@@ -42,9 +42,9 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'cubepilot_cubeorange_test' unstash 'cubepilot_cubeorange_console'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cubepilot_cubeorange_test/cubepilot_cubeorange_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cubepilot_cubeorange_console/cubepilot_cubeorange_console.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
@@ -52,12 +52,12 @@ pipeline {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 2000"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 2000"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/cubepilot_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -84,12 +84,12 @@ pipeline {
} }
} }
stage("cuav_x7pro_test") { stage("cuav_x7pro_default") {
stages { stages {
stage("build cuav_x7pro_test") { stage("build cuav_x7pro_default") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -99,10 +99,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make cuav_x7pro_test' sh 'make cuav_x7pro_default'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cuav_x7pro_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cuav_x7pro_default'
} }
post { post {
always { always {
@@ -119,21 +119,21 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'cuav_x7pro_test' unstash 'cuav_x7pro_default'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cuav_x7pro_test/cuav_x7pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cuav_x7pro_default/cuav_x7pro_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 2000"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -160,12 +160,64 @@ pipeline {
} }
} }
stage("px4_fmu-v3_test") { // stage("px4_fmu-v2_test") {
// stages {
// stage("build px4_fmu-v2_test") {
// agent {
// docker {
// image 'px4io/px4-dev-nuttx-focal:2020-09-14'
// args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
// }
// }
// steps {
// sh 'export'
// sh 'make distclean'
// sh 'ccache -s'
// sh 'git fetch --tags'
// sh 'make px4_fmu-v2_test'
// sh 'make sizes'
// sh 'ccache -s'
// stash includes: 'build/px4_fmu-v2_test/px4_fmu-v2_test.elf', name: 'px4_fmu-v2_test'
// }
// post {
// always {
// sh 'make distclean'
// }
// }
// } // stage build
// stage("test") {
// agent {
// label 'px4_fmu-v2'
// }
// stages {
// stage("flash") {
// steps {
// sh 'export'
// sh 'find /dev/serial'
// unstash 'px4_fmu-v2_test'
// // flash board and watch bootup
// sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v2_test/px4_fmu-v2_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
// }
// }
// stage("reset") {
// steps {
// cleanupFTDI();
// }
// }
// }
// options {
// timeout(time: 90, unit: 'MINUTES')
// }
// }
// }
// }
stage("px4_fmu-v3_default") {
stages { stages {
stage("build px4_fmu-v3_test") { stage("build px4_fmu-v3_default") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -175,10 +227,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make px4_fmu-v3_test' sh 'make px4_fmu-v3_default'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v3_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v3_default'
} }
post { post {
always { always {
@@ -195,21 +247,21 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'px4_fmu-v3_test' unstash 'px4_fmu-v3_default'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_test/px4_fmu-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_default/px4_fmu-v3_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -236,12 +288,12 @@ pipeline {
} }
} }
stage("px4_fmu-v4_test") { stage("px4_fmu-v4_default") {
stages { stages {
stage("build px4_fmu-v4_test") { stage("build px4_fmu-v4_default") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -251,10 +303,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make px4_fmu-v4_test' sh 'make px4_fmu-v4_default'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4_default'
} }
post { post {
always { always {
@@ -271,21 +323,20 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'px4_fmu-v4_test' unstash 'px4_fmu-v4_default'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_test/px4_fmu-v4_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_default/px4_fmu-v4_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -312,12 +363,12 @@ pipeline {
} }
} }
stage("px4_fmu-v4pro_test") { stage("px4_fmu-v4pro_default") {
stages { stages {
stage("build px4_fmu-v4pro_test") { stage("build px4_fmu-v4pro_default") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -327,10 +378,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make px4_fmu-v4pro_test' sh 'make px4_fmu-v4pro_default'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4pro_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4pro_default'
} }
post { post {
always { always {
@@ -347,21 +398,21 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'px4_fmu-v4pro_test' unstash 'px4_fmu-v4pro_default'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_test/px4_fmu-v4pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_default/px4_fmu-v4pro_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -388,12 +439,12 @@ pipeline {
} }
} }
stage("px4_fmu-v5_test") { stage("px4_fmu-v5_default") {
stages { stages {
stage("build px4_fmu-v5_test") { stage("build px4_fmu-v5_default") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -403,10 +454,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make px4_fmu-v5_test' sh 'make px4_fmu-v5_default'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_default'
} }
post { post {
always { always {
@@ -423,21 +474,21 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'px4_fmu-v5_test' unstash 'px4_fmu-v5_default'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_test/px4_fmu-v5_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_default/px4_fmu-v5_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -469,7 +520,7 @@ pipeline {
stage("build px4_fmu-v5_debug") { stage("build px4_fmu-v5_debug") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -510,14 +561,13 @@ pipeline {
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -549,7 +599,7 @@ pipeline {
stage("build px4_fmu-v5_optimized") { stage("build px4_fmu-v5_optimized") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -587,13 +637,12 @@ pipeline {
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -625,7 +674,7 @@ pipeline {
stage("build px4_fmu-v5_stackcheck") { stage("build px4_fmu-v5_stackcheck") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -666,14 +715,13 @@ pipeline {
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0"' // limit cpu usage sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -700,12 +748,12 @@ pipeline {
} }
} }
stage("modalai_fc-v1_test") { stage("modalai_fc-v1_default") {
stages { stages {
stage("build modalai_fc-v1_test") { stage("build modalai_fc-v1_default") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -715,10 +763,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make modalai_fc-v1_test' sh 'make modalai_fc-v1_default'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'modalai_fc-v1_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'modalai_fc-v1_default'
} }
post { post {
always { always {
@@ -735,21 +783,20 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'modalai_fc-v1_test' unstash 'modalai_fc-v1_default'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_test/modalai_fc-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_default/modalai_fc-v1_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic vtol standardulticopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -776,12 +823,12 @@ pipeline {
} }
} }
stage("holybro_durandal-v1_test") { stage("holybro_durandal-v1_default") {
stages { stages {
stage("build holybro_durandal-v1_test") { stage("build holybro_durandal-v1_default") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -791,10 +838,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make holybro_durandal-v1_test' sh 'make holybro_durandal-v1_default'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'holybro_durandal-v1_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'holybro_durandal-v1_default'
} }
post { post {
always { always {
@@ -811,21 +858,24 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'holybro_durandal-v1_test' unstash 'holybro_durandal-v1_default'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/holybro_durandal-v1_test/holybro_durandal-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/holybro_durandal-v1_default/holybro_durandal-v1_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set DSHOT_CONFIG 600"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 4000"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_USE_IO 0"' // for dshot
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -853,12 +903,12 @@ pipeline {
} }
} }
stage("nxp_fmuk66-v3_test") { stage("nxp_fmuk66-v3_default") {
stages { stages {
stage("build nxp_fmuk66-v3_test") { stage("build nxp_fmuk66-v3_default") {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2020-09-14'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
@@ -868,10 +918,10 @@ pipeline {
sh 'make distclean' sh 'make distclean'
sh 'ccache -s' sh 'ccache -s'
sh 'git fetch --tags' sh 'git fetch --tags'
sh 'make nxp_fmuk66-v3_test' sh 'make nxp_fmuk66-v3_default'
sh 'make sizes' sh 'make sizes'
sh 'ccache -s' sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'nxp_fmuk66-v3_test' stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'nxp_fmuk66-v3_default'
} }
post { post {
always { always {
@@ -888,21 +938,20 @@ pipeline {
steps { steps {
sh 'export' sh 'export'
sh 'find /dev/serial' sh 'find /dev/serial'
unstash 'nxp_fmuk66-v3_test' unstash 'nxp_fmuk66-v3_default'
// flash board and watch bootup // flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_test/nxp_fmuk66-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_default/nxp_fmuk66-v3_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
} }
} }
stage("configure") { stage("configure") {
steps { steps {
// configure // configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
} }
} }
stage("status") { stage("status") {
@@ -978,7 +1027,6 @@ void statusFTDI() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel_fifo"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel_fifo"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_baro"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_baro"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_combined"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_combined"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gps"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro_fifo"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro_fifo"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_mag"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_mag"'
@@ -990,7 +1038,6 @@ void statusFTDI() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_acceleration"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_acceleration"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_velocity"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_velocity"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_attitude"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_attitude"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_gps_position"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu_status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu_status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_local_position"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_local_position"'
+1 -1
View File
@@ -2,7 +2,7 @@
// https://github.com/microsoft/vscode-dev-containers/tree/v0.134.0/containers/cpp // https://github.com/microsoft/vscode-dev-containers/tree/v0.134.0/containers/cpp
{ {
"name": "px4-dev-nuttx", "name": "px4-dev-nuttx",
"image": "px4io/px4-dev-nuttx-focal:2021-04-29", "image": "px4io/px4-dev-nuttx-focal:2021-02-04",
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ], "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
+1 -1
View File
@@ -28,7 +28,7 @@ jobs:
"parameters_metadata", "parameters_metadata",
] ]
container: container:
image: ghcr.io/px4/px4-dev:2021-05-06 image: px4io/px4-dev-nuttx-focal:2021-02-04
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: px4io/px4-dev-clang:2021-04-29 container: px4io/px4-dev-clang:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: px4io/px4-dev-armhf:2021-04-29 container: px4io/px4-dev-armhf:2021-02-04
strategy: strategy:
matrix: matrix:
config: [ config: [
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: px4io/px4-dev-aarch64:2021-04-29 container: px4io/px4-dev-aarch64:2021-02-04
strategy: strategy:
matrix: matrix:
config: [ config: [
+8 -16
View File
@@ -4,7 +4,6 @@ on:
push: push:
branches: branches:
- 'master' - 'master'
- 'github-actions'
pull_request: pull_request:
branches: branches:
- '*' - '*'
@@ -12,39 +11,34 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-nuttx-focal:2021-02-04
strategy: strategy:
matrix: matrix:
config: [ config: [
airmind_mindpx-v2_default, airmind_mindpx-v2_default,
ark_can-flow_canbootloader, ark_can-flow_canbootloader,
ark_can-flow_debug,
ark_can-flow_default, ark_can-flow_default,
av_x-v1_default, av_x-v1_default,
bitcraze_crazyflie21_default, bitcraze_crazyflie21_default,
bitcraze_crazyflie_default, bitcraze_crazyflie_default,
cuav_can-gps-v1_canbootloader, cuav_can-gps-v1_canbootloader,
cuav_can-gps-v1_debug,
cuav_can-gps-v1_default, cuav_can-gps-v1_default,
cuav_nora_default, cuav_nora_default,
cuav_x7pro_default, cuav_x7pro_default,
cubepilot_cubeorange_console,
cubepilot_cubeorange_default, cubepilot_cubeorange_default,
cubepilot_cubeorange_test, cubepilot_cubeyellow_console,
cubepilot_cubeyellow_default, cubepilot_cubeyellow_default,
cubepilot_cubeyellow_test,
cubepilot_io-v2_default,
holybro_can-gps-v1_canbootloader, holybro_can-gps-v1_canbootloader,
holybro_can-gps-v1_debug,
holybro_can-gps-v1_default, holybro_can-gps-v1_default,
holybro_durandal-v1_default, holybro_durandal-v1_default,
holybro_kakutef7_default, holybro_kakutef7_default,
holybro_pix32v5_default, holybro_pix32v5_default,
modalai_fc-v1_default, modalai_fc-v1_default,
modalai_fc-v1_rtps,
mro_ctrl-zero-f7-oem_default,
mro_ctrl-zero-f7_default, mro_ctrl-zero-f7_default,
mro_ctrl-zero-h7-oem_default, mro_ctrl-zero-f7-oem_default,
mro_ctrl-zero-h7_default, mro_ctrl-zero-h7_default,
mro_ctrl-zero-h7-oem_default,
mro_pixracerpro_default, mro_pixracerpro_default,
mro_x21-777_default, mro_x21-777_default,
mro_x21_default, mro_x21_default,
@@ -55,31 +49,31 @@ jobs:
nxp_fmuk66-v3_rtps, nxp_fmuk66-v3_rtps,
nxp_fmuk66-v3_socketcan, nxp_fmuk66-v3_socketcan,
nxp_fmurt1062-v1_default, nxp_fmurt1062-v1_default,
nxp_ucans32k146_canbootloader,
nxp_ucans32k146_default, nxp_ucans32k146_default,
nxp_ucans32k146_canbootloader,
omnibus_f4sd_default, omnibus_f4sd_default,
px4_fmu-v2_default, px4_fmu-v2_default,
px4_fmu-v2_fixedwing, px4_fmu-v2_fixedwing,
px4_fmu-v2_multicopter, px4_fmu-v2_multicopter,
px4_fmu-v2_rover, px4_fmu-v2_rover,
px4_fmu-v2_test,
px4_fmu-v3_default, px4_fmu-v3_default,
px4_fmu-v4_cannode, px4_fmu-v4_cannode,
px4_fmu-v4_default, px4_fmu-v4_default,
px4_fmu-v4pro_default, px4_fmu-v4pro_default,
px4_fmu-v5_ctrlalloc, px4_fmu-v5_ctrlalloc,
px4_fmu-v5_debug,
px4_fmu-v5_default, px4_fmu-v5_default,
px4_fmu-v5_fixedwing, px4_fmu-v5_fixedwing,
px4_fmu-v5_multicopter, px4_fmu-v5_multicopter,
px4_fmu-v5_optimized, px4_fmu-v5_optimized,
px4_fmu-v5_rover, px4_fmu-v5_rover,
px4_fmu-v5_rtps, px4_fmu-v5_rtps,
px4_fmu-v5_stackcheck,
px4_fmu-v5_uavcanv0periph, px4_fmu-v5_uavcanv0periph,
px4_fmu-v5_uavcanv1, px4_fmu-v5_uavcanv1,
px4_fmu-v5x_base_phy_DP83848C, px4_fmu-v5x_base_phy_DP83848C,
px4_fmu-v5x_default, px4_fmu-v5x_default,
px4_fmu-v6u_default, px4_fmu-v6u_default,
px4_fmu-v6u_test,
px4_fmu-v6x_default, px4_fmu-v6x_default,
px4_io-v2_default, px4_io-v2_default,
spracing_h7extreme_default, spracing_h7extreme_default,
@@ -124,8 +118,6 @@ jobs:
run: make ${{matrix.config}} bloaty_symbols || true run: make ${{matrix.config}} bloaty_symbols || true
- name: make ${{matrix.config}} bloaty_templates - name: make ${{matrix.config}} bloaty_templates
run: make ${{matrix.config}} bloaty_templates || true run: make ${{matrix.config}} bloaty_templates || true
- name: make ${{matrix.config}} bloaty_ram
run: make ${{matrix.config}} bloaty_ram || true
- name: make ${{matrix.config}} bloaty_compare_master - name: make ${{matrix.config}} bloaty_compare_master
run: make ${{matrix.config}} bloaty_compare_master || true run: make ${{matrix.config}} bloaty_compare_master || true
- name: ccache post-run - name: ccache post-run
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-nuttx-focal:2021-02-04
strategy: strategy:
matrix: matrix:
config: [ config: [
-31
View File
@@ -1,31 +0,0 @@
name: Build and publish Docker image
on:
push:
branches:
- 'master'
- 'github-actions'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64
push: true
tags: |
px4/px4-dev:latest
ghcr.io/px4/px4-dev:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
+1 -1
View File
@@ -23,7 +23,7 @@ jobs:
needs: enumerate_targets needs: enumerate_targets
strategy: strategy:
matrix: ${{fromJson(needs.enumerate_targets.outputs.matrix)}} matrix: ${{fromJson(needs.enumerate_targets.outputs.matrix)}}
container: px4io/px4-dev-${{ matrix.container }}:2021-04-29 container: px4io/px4-dev-${{ matrix.container }}:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
@@ -0,0 +1,131 @@
name: MAVROS Avoidance Tests
on:
push:
branches:
- 'master'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- {test_file: "mavros_posix_test_avoidance.test", vehicle: "iris_obs_avoid", mission: "avoidance", build_type: "RelWithDebInfo"}
- {test_file: "mavros_posix_test_safe_landing.test", vehicle: "iris_obs_avoid", mission: "MC_safe_landing", build_type: "RelWithDebInfo"}
container:
image: px4io/px4-dev-ros-melodic:2021-02-04
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 5" >> ~/.ccache/ccache.conf
echo "max_size = 100M" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: check environment
run: |
export
ulimit -a
- name: Build PX4 and sitl_gazebo
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
ccache -z
make px4_sitl_default
make px4_sitl_default sitl_gazebo
ccache -s
- name: Core dump settings
run: |
ulimit -c unlimited
echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
- name: Run SITL tests
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
export
./test/rostest_avoidance_run.sh ${{matrix.config.test_file}} mission:=${{matrix.config.mission}} vehicle:=${{matrix.config.vehicle}} || true
- name: Look at core files
if: failure()
run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
- name: Upload px4 coredump
if: failure()
uses: actions/upload-artifact@v2-preview
with:
name: coredump
path: px4.core
# - name: ecl EKF analysis
# if: always()
# run: ./Tools/ecl_ekf/process_logdata_ekf.py ~/.ros/log/*/*.ulg
- name: Upload logs to flight review
if: always()
run: ./Tools/upload_log.py -q --description "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID}" --feedback "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID} ${GITHUB_REPOSITORY} ${GITHUB_REF}" --source CI ~/.ros/log/*/*.ulg
- name: Upload px4 binary
if: failure()
uses: actions/upload-artifact@v2
with:
name: binary
path: build/px4_sitl_default/bin/px4
- name: Store PX4 log
if: failure()
uses: actions/upload-artifact@v2
with:
name: px4_log
path: ~/.ros/log/*/*.ulg
- name: Store ROS log
if: failure()
uses: actions/upload-artifact@v2
with:
name: ros_log
path: ~/.ros/**/rostest-*.log
# Report test coverage
- name: Upload coverage
if: contains(matrix.config.build_type, 'Coverage')
run: |
git config --global credential.helper "" # disable the keychain credential helper
git config --global --add credential.helper store # enable the local store credential helper
echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
mkdir -p coverage
lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
- name: Upload coverage information to Codecov
if: contains(matrix.config.build_type, 'Coverage')
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: mavros_avoidance
file: coverage/lcov.info
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
#- {vehicle: "tiltrotor", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"} #- {vehicle: "tiltrotor", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
container: container:
image: px4io/px4-dev-ros-melodic:2021-04-29 image: px4io/px4-dev-ros-melodic:2021-02-04
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
+1 -1
View File
@@ -20,7 +20,7 @@ jobs:
#- {test_file: "mavros_posix_tests_offboard_rpyrt_ctl.test", vehicle: "iris", build_type: "RelWithDebInfo"} #- {test_file: "mavros_posix_tests_offboard_rpyrt_ctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
container: container:
image: px4io/px4-dev-ros-melodic:2021-04-29 image: px4io/px4-dev-ros-melodic:2021-02-04
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
+7 -7
View File
@@ -11,7 +11,7 @@ jobs:
airframe: airframe:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-base-focal:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
@@ -26,7 +26,7 @@ jobs:
module: module:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-base-focal:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
@@ -41,7 +41,7 @@ jobs:
parameter: parameter:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-base-focal:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
@@ -65,7 +65,7 @@ jobs:
uorb_graph: uorb_graph:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-nuttx-focal:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
@@ -80,7 +80,7 @@ jobs:
micrortps_agent: micrortps_agent:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-base-focal:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
@@ -94,7 +94,7 @@ jobs:
ROS_msgs: ROS_msgs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-base-focal:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
@@ -107,7 +107,7 @@ jobs:
ROS2_bridge: ROS2_bridge:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/px4/px4-dev:2021-05-06 container: px4io/px4-dev-base-focal:2021-02-04
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
with: with:
+3 -3
View File
@@ -20,7 +20,7 @@ jobs:
- {latitude: "29.660316", longitude: "-82.316658", altitude: "30", build_type: "RelWithDebInfo", model: "tailsitter" } # Florida - {latitude: "29.660316", longitude: "-82.316658", altitude: "30", build_type: "RelWithDebInfo", model: "tailsitter" } # Florida
- {latitude: "47.397742", longitude: "8.545594", altitude: "488", build_type: "Coverage", model: "standard_vtol" } # Zurich - {latitude: "47.397742", longitude: "8.545594", altitude: "488", build_type: "Coverage", model: "standard_vtol" } # Zurich
container: container:
image: px4io/px4-dev-simulation-focal:2021-04-29 image: px4io/px4-dev-simulation-focal:2021-02-04
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
@@ -28,9 +28,9 @@ jobs:
token: ${{ secrets.ACCESS_TOKEN }} token: ${{ secrets.ACCESS_TOKEN }}
- name: Download MAVSDK - name: Download MAVSDK
run: wget "https://github.com/mavlink/MAVSDK/releases/download/v$(cat test/mavsdk_tests/MAVSDK_VERSION)/mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb" run: wget https://github.com/mavlink/MAVSDK/releases/download/v0.36.0/mavsdk_0.36.0_ubuntu20.04_amd64.deb
- name: Install MAVSDK - name: Install MAVSDK
run: dpkg -i "mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb" run: dpkg -i mavsdk_0.36.0_ubuntu20.04_amd64.deb
- name: Prepare ccache timestamp - name: Prepare ccache timestamp
id: ccache_cache_timestamp id: ccache_cache_timestamp
+3 -7
View File
@@ -33,7 +33,7 @@
[submodule "src/modules/micrortps_bridge/micro-CDR"] [submodule "src/modules/micrortps_bridge/micro-CDR"]
path = src/modules/micrortps_bridge/micro-CDR path = src/modules/micrortps_bridge/micro-CDR
url = https://github.com/PX4/Micro-CDR.git url = https://github.com/PX4/Micro-CDR.git
branch = master branch = px4
[submodule "platforms/nuttx/NuttX/nuttx"] [submodule "platforms/nuttx/NuttX/nuttx"]
path = platforms/nuttx/NuttX/nuttx path = platforms/nuttx/NuttX/nuttx
url = https://github.com/PX4/NuttX.git url = https://github.com/PX4/NuttX.git
@@ -59,11 +59,7 @@
url = https://github.com/UAVCAN/public_regulated_data_types.git url = https://github.com/UAVCAN/public_regulated_data_types.git
[submodule "src/drivers/uavcannode_gps_demo/public_regulated_data_types"] [submodule "src/drivers/uavcannode_gps_demo/public_regulated_data_types"]
path = src/drivers/uavcannode_gps_demo/public_regulated_data_types path = src/drivers/uavcannode_gps_demo/public_regulated_data_types
url = https://github.com/UAVCAN/public_regulated_data_types.git url = https://github.com/UAVCAN/public_regulated_data_types
[submodule "src/drivers/uavcannode_gps_demo/libcanard"] [submodule "src/drivers/uavcannode_gps_demo/libcanard"]
path = src/drivers/uavcannode_gps_demo/libcanard path = src/drivers/uavcannode_gps_demo/libcanard
url = https://github.com/UAVCAN/libcanard.git url = https://github.com/UAVCAN/libcanard
[submodule "src/drivers/uavcan_v1/legacy_data_types"]
path = src/drivers/uavcan_v1/legacy_data_types
url = https://github.com/px4/public_regulated_data_types/
branch = legacy
+7 -12
View File
@@ -96,26 +96,21 @@ CONFIG:
buildType: MinSizeRel buildType: MinSizeRel
settings: settings:
CONFIG: cuav_x7pro_default CONFIG: cuav_x7pro_default
cubepilot_cubeorange_test: cubepilot_cubeorange_default:
short: cubepilot_cubeorange short: cubepilot_cubeorange
buildType: MinSizeRel buildType: MinSizeRel
settings: settings:
CONFIG: cubepilot_orange_test CONFIG: cubepilot_orange_default
cubepilot_cubeyellow_default:
short: cubepilot_cubeyellow
buildType: MinSizeRel
settings:
CONFIG: cubepilot_cubeyellow_default
emlid_navio2_default: emlid_navio2_default:
short: emlid_navio2 short: emlid_navio2
buildType: MinSizeRel buildType: MinSizeRel
settings: settings:
CONFIG: emlid_navio2_default CONFIG: emlid_navio2_default
holybro_can-gps-v1_canbootloader:
short: holybro_can-gps-v1_canbootloader
buildType: MinSizeRel
settings:
CONFIG: holybro_can-gps-v1_canbootloader
holybro_can-gps-v1_default:
short: holybro_can-gps-v1_default
buildType: MinSizeRel
settings:
CONFIG: holybro_can-gps-v1_default
holybro_durandal-v1_default: holybro_durandal-v1_default:
short: holybro_durandal-v1 short: holybro_durandal-v1
buildType: MinSizeRel buildType: MinSizeRel
-2
View File
@@ -185,8 +185,6 @@ if((CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "Coverage")
set(MAX_CUSTOM_OPT_LEVEL -O0) set(MAX_CUSTOM_OPT_LEVEL -O0)
elseif(CMAKE_BUILD_TYPE MATCHES "Sanitizer") elseif(CMAKE_BUILD_TYPE MATCHES "Sanitizer")
set(MAX_CUSTOM_OPT_LEVEL -O1) set(MAX_CUSTOM_OPT_LEVEL -O1)
elseif(CMAKE_BUILD_TYPE MATCHES "Release")
set(MAX_CUSTOM_OPT_LEVEL -O3)
else() else()
if(px4_constrained_flash_build) if(px4_constrained_flash_build)
set(MAX_CUSTOM_OPT_LEVEL -Os) set(MAX_CUSTOM_OPT_LEVEL -Os)
-29
View File
@@ -1,29 +0,0 @@
#
# PX4 development environment
#
FROM ubuntu:20.04
LABEL maintainer="Daniel Agar <daniel@agar.ca>"
COPY Tools/setup/ubuntu.sh /tmp/ubuntu.sh
COPY Tools/setup/requirements.txt /tmp/requirements.txt
RUN DEBIAN_FRONTEND=noninteractive /tmp/ubuntu.sh --no-sim-tools \
&& apt-get -y autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
# create user with id 1001 (jenkins docker workflow default)
RUN useradd --shell /bin/bash -u 1001 -c "" -m user && usermod -a -G dialout user
ENV CCACHE_UMASK=000
ENV PATH="/usr/lib/ccache:$PATH"
# SITL UDP PORTS
EXPOSE 14556/udp
EXPOSE 14557/udp
# create and start as LOCAL_USER_ID
COPY Tools/setup/entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["/bin/bash"]
Vendored
+15 -19
View File
@@ -15,7 +15,7 @@ pipeline {
// stage('Catkin build on ROS workspace') { // stage('Catkin build on ROS workspace') {
// agent { // agent {
// docker { // docker {
// image 'px4io/px4-dev-ros-melodic:2021-04-29' // image 'px4io/px4-dev-ros-melodic:2021-02-04'
// args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE' // args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
// } // }
// } // }
@@ -56,7 +56,7 @@ pipeline {
stage('Colcon build on ROS2 workspace') { stage('Colcon build on ROS2 workspace') {
agent { agent {
docker { docker {
image 'px4io/px4-dev-ros2-foxy:2021-04-29' image 'px4io/px4-dev-ros2-foxy:2021-02-04'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
} }
} }
@@ -85,11 +85,10 @@ pipeline {
stage('Airframe') { stage('Airframe') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh 'make distclean' sh 'make distclean'
sh 'git fetch --all --tags'
sh 'make airframe_metadata' sh 'make airframe_metadata'
dir('build/px4_sitl_default/docs') { dir('build/px4_sitl_default/docs') {
archiveArtifacts(artifacts: 'airframes.md, airframes.xml') archiveArtifacts(artifacts: 'airframes.md, airframes.xml')
@@ -105,15 +104,14 @@ pipeline {
stage('Parameter') { stage('Parameter') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh 'make distclean' sh 'make distclean'
sh 'git fetch --all --tags'
sh 'make parameters_metadata' sh 'make parameters_metadata'
dir('build/px4_sitl_default/docs') { dir('build/px4_sitl_default/docs') {
archiveArtifacts(artifacts: 'parameters.md, parameters.xml, parameters.json.xz') archiveArtifacts(artifacts: 'parameters.md, parameters.xml, params.json.xz')
stash includes: 'parameters.md, parameters.xml, parameters.json.xz', name: 'metadata_parameters' stash includes: 'parameters.md, parameters.xml, params.json.xz', name: 'metadata_parameters'
} }
} }
post { post {
@@ -125,11 +123,10 @@ pipeline {
stage('Module') { stage('Module') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh 'make distclean' sh 'make distclean'
sh 'git fetch --all --tags'
sh 'make module_documentation' sh 'make module_documentation'
dir('build/px4_sitl_default/docs') { dir('build/px4_sitl_default/docs') {
archiveArtifacts(artifacts: 'modules/*.md') archiveArtifacts(artifacts: 'modules/*.md')
@@ -146,14 +143,13 @@ pipeline {
stage('uORB graphs') { stage('uORB graphs') {
agent { agent {
docker { docker {
image 'px4io/px4-dev-nuttx-focal:2021-04-29' image 'px4io/px4-dev-nuttx-focal:2021-02-04'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
} }
} }
steps { steps {
sh 'export' sh 'export'
sh 'make distclean' sh 'make distclean'
sh 'git fetch --all --tags'
sh 'make uorb_graphs' sh 'make uorb_graphs'
dir('Tools/uorb_graph') { dir('Tools/uorb_graph') {
archiveArtifacts(artifacts: 'graph_px4_sitl.json') archiveArtifacts(artifacts: 'graph_px4_sitl.json')
@@ -176,7 +172,7 @@ pipeline {
stage('Userguide') { stage('Userguide') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh('export') sh('export')
@@ -206,7 +202,7 @@ pipeline {
stage('QGroundControl') { stage('QGroundControl') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh('export') sh('export')
@@ -234,7 +230,7 @@ pipeline {
stage('microRTPS agent') { stage('microRTPS agent') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh('export') sh('export')
@@ -264,7 +260,7 @@ pipeline {
stage('PX4 ROS msgs') { stage('PX4 ROS msgs') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh('export') sh('export')
@@ -293,7 +289,7 @@ pipeline {
stage('PX4 ROS2 bridge') { stage('PX4 ROS2 bridge') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh('export') sh('export')
@@ -336,7 +332,7 @@ pipeline {
stage('S3') { stage('S3') {
agent { agent {
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' } docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
} }
steps { steps {
sh('export') sh('export')
@@ -346,7 +342,7 @@ pipeline {
withAWS(credentials: 'px4_aws_s3_key', region: 'us-east-1') { withAWS(credentials: 'px4_aws_s3_key', region: 'us-east-1') {
s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'airframes.xml', path: 'Firmware/master/') s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'airframes.xml', path: 'Firmware/master/')
s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'parameters.xml', path: 'Firmware/master/') s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'parameters.xml', path: 'Firmware/master/')
s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'parameters.json.xz', path: 'Firmware/master/') s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'params.json.xz', path: 'Firmware/master/')
} }
} }
when { when {
+2 -3
View File
@@ -303,7 +303,7 @@ check_%:
@echo @echo
uorb_graphs: uorb_graphs:
@./Tools/uorb_graph/create.py --src-path src --exclude-path src/examples --exclude-path src/lib --file Tools/uorb_graph/graph_full @./Tools/uorb_graph/create.py --src-path src --exclude-path src/examples --file Tools/uorb_graph/graph_full
@$(MAKE) --no-print-directory px4_fmu-v2_default uorb_graph @$(MAKE) --no-print-directory px4_fmu-v2_default uorb_graph
@$(MAKE) --no-print-directory px4_fmu-v4_default uorb_graph @$(MAKE) --no-print-directory px4_fmu-v4_default uorb_graph
@$(MAKE) --no-print-directory px4_sitl_default uorb_graph @$(MAKE) --no-print-directory px4_sitl_default uorb_graph
@@ -469,7 +469,6 @@ validate_module_configs:
clean: clean:
@rm -rf "$(SRC_DIR)"/build @rm -rf "$(SRC_DIR)"/build
@git submodule foreach git clean -df
submodulesclean: submodulesclean:
@git submodule foreach --quiet --recursive git clean -ff -x -d @git submodule foreach --quiet --recursive git clean -ff -x -d
@@ -487,7 +486,7 @@ gazeboclean:
distclean: gazeboclean distclean: gazeboclean
@git submodule deinit -f . @git submodule deinit -f .
@git clean -ff -x -d -e ".cproject" -e ".idea" -e ".project" -e ".settings" -e ".vscode" @git clean -ff -x -d -e ".project" -e ".cproject" -e ".idea" -e ".settings" -e ".vscode"
# Help / Error # Help / Error
# -------------------------------------------------------------------- # --------------------------------------------------------------------
+15 -16
View File
@@ -17,7 +17,7 @@ PX4 is highly portable, OS-independent and supports Linux, NuttX and QuRT out of
* [VTOL](https://docs.px4.io/master/en/frames_vtol/) * [VTOL](https://docs.px4.io/master/en/frames_vtol/)
* [Autogyro](https://docs.px4.io/master/en/frames_autogyro/) * [Autogyro](https://docs.px4.io/master/en/frames_autogyro/)
* [Rover](https://docs.px4.io/master/en/frames_rover/) * [Rover](https://docs.px4.io/master/en/frames_rover/)
* many more experimental types (Blimps, Boats, Submarines, High altitude balloons, etc) * many more experimental types (Blimps, Boats, Submarines, Autogyros, etc)
* Releases: [Downloads](https://github.com/PX4/PX4-Autopilot/releases) * Releases: [Downloads](https://github.com/PX4/PX4-Autopilot/releases)
@@ -85,24 +85,23 @@ See also [maintainers list](https://px4.io/community/maintainers/) (px4.io) and
This repository contains code supporting Pixhawk standard boards (best supported, best tested, recommended choice) and proprietary boards. This repository contains code supporting Pixhawk standard boards (best supported, best tested, recommended choice) and proprietary boards.
### Pixhawk Standard Boards ### Pixhawk Standard Boards
* FMUv6X and FMUv6U (STM32H7, 2021) * FMUv2
* Various vendors will provide FMUv6X and FMUv6U based designs Q3/2021 * [Pixhawk](https://docs.px4.io/master/en/flight_controller/pixhawk.html)
* FMUv5 and FMUv5X (STM32F7, 2019/20) * [Pixfalcon](https://docs.px4.io/master/en/flight_controller/pixfalcon.html)
* [Pixhawk 4 (FMUv5)](https://docs.px4.io/master/en/flight_controller/pixhawk4.html) * FMUv3
* [Pixhawk 4 mini (FMUv5)](https://docs.px4.io/master/en/flight_controller/pixhawk4_mini.html)
* [CUAV V5+ (FMUv5)](https://docs.px4.io/master/en/flight_controller/cuav_v5_plus.html)
* [CUAV V5 nano (FMUv5)](https://docs.px4.io/master/en/flight_controller/cuav_v5_nano.html)
* [Auterion Skynode (FMUv5X)](https://docs.px4.io/master/en/flight_controller/auterion_skynode.html)
* FMUv4 (STM32F4, 2015)
* [Pixracer](https://docs.px4.io/master/en/flight_controller/pixracer.html)
* [Pixhawk 3 Pro](https://docs.px4.io/master/en/flight_controller/pixhawk3_pro.html)
* FMUv3 (STM32F4, 2014)
* [Pixhawk 2](https://docs.px4.io/master/en/flight_controller/pixhawk-2.html) * [Pixhawk 2](https://docs.px4.io/master/en/flight_controller/pixhawk-2.html)
* [Pixhawk Mini](https://docs.px4.io/master/en/flight_controller/pixhawk_mini.html) * [Pixhawk Mini](https://docs.px4.io/master/en/flight_controller/pixhawk_mini.html)
* [CUAV Pixhack v3](https://docs.px4.io/master/en/flight_controller/pixhack_v3.html) * [CUAV Pixhack v3](https://docs.px4.io/master/en/flight_controller/pixhack_v3.html)
* FMUv2 (STM32F4, 2013) * FMUv4 (STM32F4)
* [Pixhawk](https://docs.px4.io/master/en/flight_controller/pixhawk.html) * [Pixracer](https://docs.px4.io/master/en/flight_controller/pixracer.html)
* [Pixfalcon](https://docs.px4.io/master/en/flight_controller/pixfalcon.html) * [Pixhawk 3 Pro](https://docs.px4.io/master/en/flight_controller/pixhawk3_pro.html)
* FMUv5 (STM32F7)
* [Pixhawk 4](https://docs.px4.io/master/en/flight_controller/pixhawk4.html)
* [Pixhawk 4 mini](https://docs.px4.io/master/en/flight_controller/pixhawk4_mini.html)
* [CUAV V5+](https://docs.px4.io/master/en/flight_controller/cuav_v5_plus.html)
* [CUAV V5 nano](https://docs.px4.io/master/en/flight_controller/cuav_v5_nano.html)
* FMUv6X and FMUv6U (STM32H7)
* Various vendors will provide FMUv6X and FMUv6U based designs Q2/2021
### Manufacturer and Community supported ### Manufacturer and Community supported
* [Holybro Durandal](https://docs.px4.io/master/en/flight_controller/durandal.html) * [Holybro Durandal](https://docs.px4.io/master/en/flight_controller/durandal.html)
+9
View File
@@ -76,6 +76,15 @@ unset BOARD_RC_DEFAULTS
# #
rgbled start -X -q rgbled start -X -q
rgbled_ncp5623c start -X -q rgbled_ncp5623c start -X -q
rgbled_pwm start
if param greater -s LIGHT_EN_BLINKM 0
then
if blinkm start -X
then
blinkm systemstate
fi
fi
# #
# board sensors: rc.sensors # board sensors: rc.sensors
@@ -34,9 +34,6 @@
add_subdirectory(airframes) add_subdirectory(airframes)
px4_add_romfs_files( px4_add_romfs_files(
px4-rc.params
px4-rc.simulator
px4-rc.mavlink
rc.replay rc.replay
rcS rcS
) )
@@ -10,39 +10,43 @@
. ${R}etc/init.d/rc.mc_defaults . ${R}etc/init.d/rc.mc_defaults
. ${R}etc/init.d/rc.ctrlalloc . ${R}etc/init.d/rc.ctrlalloc
param set-default MPC_USE_HTE 0 if [ $AUTOCNF = yes ]
then
param set MPC_USE_HTE 0
param set-default VM_MASS 1.5 param set VM_MASS 1.5
param set-default VM_INERTIA_XX 0.03 param set VM_INERTIA_XX 0.03
param set-default VM_INERTIA_YY 0.03 param set VM_INERTIA_YY 0.03
param set-default VM_INERTIA_ZZ 0.05 param set VM_INERTIA_ZZ 0.05
param set-default CA_AIRFRAME 0 param set CA_AIRFRAME 0
param set-default CA_METHOD 1 param set CA_METHOD 1
param set-default CA_ACT0_MIN 0.0 param set CA_ACT0_MIN 0.0
param set-default CA_ACT1_MIN 0.0 param set CA_ACT1_MIN 0.0
param set-default CA_ACT2_MIN 0.0 param set CA_ACT2_MIN 0.0
param set-default CA_ACT3_MIN 0.0 param set CA_ACT3_MIN 0.0
param set-default CA_ACT0_MAX 1.0 param set CA_ACT0_MAX 1.0
param set-default CA_ACT1_MAX 1.0 param set CA_ACT1_MAX 1.0
param set-default CA_ACT2_MAX 1.0 param set CA_ACT2_MAX 1.0
param set-default CA_ACT3_MAX 1.0 param set CA_ACT3_MAX 1.0
param set-default CA_MC_R0_PX 0.1515 param set CA_MC_R0_PX 0.1515
param set-default CA_MC_R0_PY 0.245 param set CA_MC_R0_PY 0.245
param set-default CA_MC_R0_CT 6.5 param set CA_MC_R0_CT 6.5
param set-default CA_MC_R0_KM 0.05 param set CA_MC_R0_KM 0.05
param set-default CA_MC_R1_PX -0.1515 param set CA_MC_R1_PX -0.1515
param set-default CA_MC_R1_PY -0.1875 param set CA_MC_R1_PY -0.1875
param set-default CA_MC_R1_CT 6.5 param set CA_MC_R1_CT 6.5
param set-default CA_MC_R1_KM 0.05 param set CA_MC_R1_KM 0.05
param set-default CA_MC_R2_PX 0.1515 param set CA_MC_R2_PX 0.1515
param set-default CA_MC_R2_PY -0.245 param set CA_MC_R2_PY -0.245
param set-default CA_MC_R2_CT 6.5 param set CA_MC_R2_CT 6.5
param set-default CA_MC_R2_KM -0.05 param set CA_MC_R2_KM -0.05
param set-default CA_MC_R3_PX -0.1515 param set CA_MC_R3_PX -0.1515
param set-default CA_MC_R3_PY 0.1875 param set CA_MC_R3_PY 0.1875
param set-default CA_MC_R3_CT 6.5 param set CA_MC_R3_CT 6.5
param set-default CA_MC_R3_KM -0.05 param set CA_MC_R3_KM -0.05
fi
set MIXER direct set MIXER direct
@@ -7,6 +7,8 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
param set-default EKF2_RNG_AID 1 if [ $AUTOCNF = yes ]
param set-default EKF2_RNG_A_HMAX 10 then
param set EKF2_RNG_AID 1
param set EKF2_RNG_A_HMAX 10
fi
@@ -8,12 +8,15 @@
. ${R}etc/init.d/rc.mc_defaults . ${R}etc/init.d/rc.mc_defaults
# EKF2: Multi GPS blending (as the model has 2 GPS's) if [ $AUTOCNF = yes ]
param set-default SENS_GPS_MASK 7 then
param set-default TRIG_INTERFACE 3 # EKF2: Multi GPS blending (as the model has 2 GPS's)
param set-default TRIG_MODE 4 param set EKF2_GPS_MASK 7 # Uses speed, hpos and vpos accuracy
param set-default MNT_MODE_IN 4 param set TRIG_INTERFACE 3
param set-default MNT_MODE_OUT 2 param set TRIG_MODE 4
param set-default MNT_DO_STAB 2 param set MNT_MODE_IN 4
param set MNT_MODE_OUT 2
param set MNT_DO_STAB 2
fi
set MIXER quad_x set MIXER quad_x
@@ -7,14 +7,16 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
# EKF2 if [ $AUTOCNF = yes ]
param set-default EKF2_AID_MASK 2 then
param set-default EKF2_EVP_NOISE 0.05 # EKF2
param set-default EKF2_EVA_NOISE 0.05 param set EKF2_AID_MASK 2
param set EKF2_EVP_NOISE 0.05
param set EKF2_EVA_NOISE 0.05
# LPE: Flow-only mode # LPE: Flow-only mode
param set-default LPE_FUSION 242 param set LPE_FUSION 242
param set-default LPE_FAKE_ORIGIN 1 param set LPE_FAKE_ORIGIN 1
param set-default MPC_ALT_MODE 2
param set MPC_ALT_MODE 2
fi
@@ -7,9 +7,12 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
# enable fusion of landing target velocity if [ $AUTOCNF = yes ]
param set-default LTEST_MODE 1 then
param set-default PLD_HACC_RAD 0.1 # enable fusion of landing target velocity
param set LTEST_MODE 1
param set PLD_HACC_RAD 0.1
fi
# Start up Landing Target Estimator module # Start up Landing Target Estimator module
landing_target_estimator start landing_target_estimator start
@@ -7,5 +7,7 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
param set-default LPE_FUSION 242 if [ $AUTOCNF = yes ]
then
param set LPE_FUSION 242
fi
@@ -7,13 +7,15 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
# EKF2: Vision position and heading if [ $AUTOCNF = yes ]
param set-default EKF2_AID_MASK 24 then
param set-default EKF2_EV_DELAY 5 # EKF2: Vision position and heading
param set EKF2_AID_MASK 24
param set EKF2_EV_DELAY 5
# LPE: Vision + baro # LPE: Vision + baro
param set-default LPE_FUSION 132 param set LPE_FUSION 132
# AEQ: External heading set to use vision input
param set-default ATT_EXT_HDG_M 1
# AEQ: External heading set to use vision input
param set ATT_EXT_HDG_M 1
fi
@@ -7,7 +7,10 @@
. ${R}etc/init.d/rc.mc_defaults . ${R}etc/init.d/rc.mc_defaults
param set-default MC_PITCHRATE_P 0.1 if [ $AUTOCNF = yes ]
param set-default MC_ROLLRATE_P 0.1 then
param set MC_PITCHRATE_P 0.1
param set MC_ROLLRATE_P 0.1
fi
set MIXER quad_x set MIXER quad_x
@@ -7,6 +7,8 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
param set-default COM_OBS_AVOID 1 if [ $AUTOCNF = yes ]
param set-default MPC_XY_CRUISE 5.0 then
param set COM_OBS_AVOID 1
param set MPC_XY_CRUISE 5.0
fi
@@ -7,12 +7,15 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
# EKF2 if [ $AUTOCNF = yes ]
param set-default EKF2_AID_MASK 2 then
param set-default SENS_FLOW_ROT 0 # EKF2
param set EKF2_AID_MASK 2
param set SENS_FLOW_ROT 0
# LPE: Flow-only mode # LPE: Flow-only mode
param set-default LPE_FUSION 242 param set LPE_FUSION 242
param set-default LPE_FAKE_ORIGIN 1 param set LPE_FAKE_ORIGIN 1
param set-default MPC_ALT_MODE 2 param set MPC_ALT_MODE 2
fi
@@ -7,6 +7,9 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
# EKF2: Vision velocity and heading if [ $AUTOCNF = yes ]
param set-default EKF2_AID_MASK 272 then
param set-default EKF2_EV_DELAY 5 # EKF2: Vision velocity and heading
param set EKF2_AID_MASK 272
param set EKF2_EV_DELAY 5
fi
@@ -7,5 +7,8 @@
. ${R}etc/init.d-posix/airframes/10016_iris . ${R}etc/init.d-posix/airframes/10016_iris
# EKF2: Multi GPS blending if [ $AUTOCNF = yes ]
param set-default SENS_GPS_MASK 7 then
# EKF2: Multi GPS blending
param set EKF2_GPS_MASK 7 # Uses speed, hpos and vpos accuracy
fi
@@ -5,13 +5,16 @@
. ${R}etc/init.d/rc.uuv_defaults . ${R}etc/init.d/rc.uuv_defaults
#Set data link loss failsafe mode (0: disabled) if [ $AUTOCNF = yes ]
param set-default NAV_DLL_ACT 0 then
#Set data link loss failsafe mode (0: disabled)
param set NAV_DLL_ACT 0
# disable circuit breaker for airspeed sensor # disable circuit breaker for airspeed sensor
param set-default CBRK_AIRSPD_CHK 162128 param set CBRK_AIRSPD_CHK 162128
#param set CBRK_GPSFAIL 240024 #param set CBRK_GPSFAIL 240024
fi
set MAV_TYPE 12 set MAV_TYPE 12
param set MAV_TYPE ${MAV_TYPE} param set MAV_TYPE ${MAV_TYPE}
@@ -5,13 +5,16 @@
. ${R}etc/init.d/rc.uuv_defaults . ${R}etc/init.d/rc.uuv_defaults
#Set data link loss failsafe mode (0: disabled) if [ $AUTOCNF = yes ]
param set-default NAV_DLL_ACT 0 then
#Set data link loss failsafe mode (0: disabled)
param set NAV_DLL_ACT 0
# disable circuit breaker for airspeed sensor # disable circuit breaker for airspeed sensor
param set-default CBRK_AIRSPD_CHK 162128 param set CBRK_AIRSPD_CHK 162128
#param set CBRK_GPSFAIL 240024 #param set CBRK_GPSFAIL 240024
fi
set MAV_TYPE 12 set MAV_TYPE 12
param set MAV_TYPE ${MAV_TYPE} param set MAV_TYPE ${MAV_TYPE}
@@ -5,11 +5,15 @@
. ${R}etc/init.d/rc.uuv_defaults . ${R}etc/init.d/rc.uuv_defaults
#Set data link loss failsafe mode (0: disabled) if [ $AUTOCNF = yes ]
param set-default NAV_DLL_ACT 0 then
#Set data link loss failsafe mode (0: disabled)
param set NAV_DLL_ACT 0
# disable circuit breaker for airspeed sensor # disable circuit breaker for airspeed sensor
param set-default CBRK_AIRSPD_CHK 162128 param set CBRK_AIRSPD_CHK 162128
fi
set PWM_OUT 12345678 set PWM_OUT 12345678
set MIXER_FILE etc/mixers-sitl/vectored6dof_sitl.main.mix set MIXER_FILE etc/mixers-sitl/vectored6dof_sitl.main.mix
@@ -5,50 +5,54 @@
. ${R}etc/init.d/rc.fw_defaults . ${R}etc/init.d/rc.fw_defaults
param set-default EKF2_ARSP_THR 8 if [ $AUTOCNF = yes ]
param set-default EKF2_FUSE_BETA 1 then
param set-default EKF2_MAG_ACCLIM 0 param set EKF2_ARSP_THR 8
param set-default EKF2_MAG_YAWLIM 0 param set EKF2_FUSE_BETA 1
param set EKF2_MAG_ACCLIM 0
param set EKF2_MAG_YAWLIM 0
param set-default FW_LND_AIRSPD_SC 1 param set FW_LND_AIRSPD_SC 1
param set-default FW_LND_ANG 8 param set FW_LND_ANG 8
param set-default FW_THR_LND_MAX 0 param set FW_THR_LND_MAX 0
param set-default FW_L1_PERIOD 12 param set FW_L1_PERIOD 12
param set-default FW_MAN_P_MAX 30 param set FW_MAN_P_MAX 30
param set-default FW_PR_I 0.4 param set FW_PR_I 0.4
param set-default FW_PR_P 0.9 param set FW_PR_P 0.9
param set-default FW_PR_FF 0.2 param set FW_PR_FF 0.2
param set-default FW_PSP_OFF 2 param set FW_PSP_OFF 2
param set-default FW_P_LIM_MAX 32 param set FW_P_LIM_MAX 32
param set-default FW_P_LIM_MIN -15 param set FW_P_LIM_MIN -15
param set-default FW_RR_FF 0.1 param set FW_RR_FF 0.1
param set-default FW_RR_P 0.3 param set FW_RR_P 0.3
param set-default FW_THR_MAX 0.6 param set FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05 param set FW_THR_MIN 0.05
param set-default FW_THR_CRUISE 0.25 param set FW_THR_CRUISE 0.25
param set-default FW_T_ALT_TC 2 param set FW_T_ALT_TC 2
param set-default FW_T_CLMB_MAX 8 param set FW_T_CLMB_MAX 8
param set-default FW_T_HRATE_FF 0.5 param set FW_T_HRATE_FF 0.5
param set-default FW_T_SINK_MAX 2.7 param set FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2 param set FW_T_SINK_MIN 2.2
param set-default FW_T_TAS_TC 2 param set FW_T_TAS_TC 2
param set-default FW_W_EN 1 param set FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30 param set MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 30 param set MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15 param set NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2 param set NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50 param set NAV_LOITER_RAD 50
param set-default RWTO_TKOFF 1 param set RWTO_TKOFF 1
fi
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom set MIXER custom
@@ -5,8 +5,10 @@
. ${R}etc/init.d-posix/airframes/1030_plane . ${R}etc/init.d-posix/airframes/1030_plane
# Camera trigger interface is MAVLink if [ $AUTOCNF = yes ]
param set-default TRIG_INTERFACE 3 then
# Camera trigger interface is MAVLink
# Distance trigger mode enabled param set TRIG_INTERFACE 3
param set-default TRIG_MODE 4 # Distance trigger mode enabled
param set TRIG_MODE 4
fi
@@ -5,5 +5,8 @@
. ${R}etc/init.d-posix/airframes/1030_plane . ${R}etc/init.d-posix/airframes/1030_plane
param set-default RWTO_TKOFF 0 if [ $AUTOCNF = yes ]
then
param set RWTO_TKOFF 0
fi
@@ -5,5 +5,8 @@
. ${R}etc/init.d-posix/airframes/1030_plane . ${R}etc/init.d-posix/airframes/1030_plane
param set-default FW_LND_USETER 1 if [ $AUTOCNF = yes ]
then
param set FW_LND_USETER 1
fi
@@ -5,55 +5,54 @@
. ${R}etc/init.d/rc.fw_defaults . ${R}etc/init.d/rc.fw_defaults
param set-default EKF2_ARSP_THR 8 if [ $AUTOCNF = yes ]
param set-default EKF2_FUSE_BETA 1 then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
#param set EKF2_MAG_ACCLIM 0
#param set EKF2_MAG_YAWLIM 0
param set-default FW_LND_AIRSPD_SC 1.1 param set FW_LND_AIRSPD_SC 1.1
param set-default FW_LND_ANG 5 param set FW_LND_ANG 5
param set-default FW_THR_LND_MAX 0 param set FW_THR_LND_MAX 0
param set-default FW_LND_HHDIST 30 param set FW_LND_HHDIST 30
param set-default FW_LND_FL_PMIN 9.5 param set FW_LND_FL_PMIN 9.5
param set-default FW_LND_FL_PMAX 20 param set FW_LND_FL_PMAX 20
param set-default FW_LND_FLALT 5 param set FW_LND_FLALT 5
param set-default FW_LND_TLALT 15 param set FW_LND_TLALT 15
param set-default FW_L1_PERIOD 25 param set FW_L1_PERIOD 25
param set-default FW_P_TC 0.4 param set FW_P_TC 0.4
param set-default FW_PR_FF 0.40 param set FW_PR_FF 0.40
param set-default FW_PR_I 0.05 param set FW_PR_I 0.05
param set-default FW_PR_P 0.05 param set FW_PR_P 0.05
param set-default FW_R_TC 0.45 param set FW_R_TC 0.45
param set-default FW_RR_FF 0.40 param set FW_RR_FF 0.40
param set-default FW_RR_I 0.132 param set FW_RR_I 0.132
param set-default FW_RR_P 0.085 param set FW_RR_P 0.085
param set-default FW_W_EN 1 param set FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30 param set MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 20 param set MIS_TAKEOFF_ALT 20
param set-default MIS_DIST_1WP 2500 param set MIS_DIST_1WP 2500
param set-default MIS_DIST_WPS 10000 param set MIS_DIST_WPS 10000
param set-default NAV_ACC_RAD 15 param set NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2 param set NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50 param set NAV_LOITER_RAD 50
param set-default RWTO_TKOFF 1 param set RWTO_TKOFF 1
#param set FW_THR_SLEW_MAX 0.3 # fix takeoff failure for JSBsim in autonomous mission mode.
# fix takeoff failure for JSBsim in autonomous mission mode. param set RWTO_MAX_PITCH 20
#param set FW_THR_SLEW_MAX 0.3 param set RWTO_MAX_ROLL 10
#param set RWTO_MAX_THR 0.6 # fix takeoff failure for JSBsim in autonomous mission mode.
param set-default RWTO_MAX_PITCH 20 param set RWTO_PSP 8
param set-default RWTO_MAX_ROLL 10 param set RWTO_AIRSPD_SCL 1.8
# fix takeoff failure for JSBsim in autonomous mission mode.
#param set-default RWTO_MAX_THR 0.6
param set-default RWTO_PSP 8
param set-default RWTO_AIRSPD_SCL 1.8
fi
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom set MIXER custom
@@ -5,54 +5,54 @@
. ${R}etc/init.d/rc.fw_defaults . ${R}etc/init.d/rc.fw_defaults
param set-default EKF2_ARSP_THR 8 if [ $AUTOCNF = yes ]
param set-default EKF2_FUSE_BETA 1 then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
#param set EKF2_MAG_ACCLIM 0
#param set EKF2_MAG_YAWLIM 0
param set-default FW_LND_AIRSPD_SC 1.1 param set FW_LND_AIRSPD_SC 1.1
param set-default FW_LND_ANG 5 param set FW_LND_ANG 5
param set-default FW_THR_LND_MAX 0 param set FW_THR_LND_MAX 0
param set-default FW_LND_HHDIST 30 param set FW_LND_HHDIST 30
param set-default FW_LND_FL_PMIN 9.5 param set FW_LND_FL_PMIN 9.5
param set-default FW_LND_FL_PMAX 20 param set FW_LND_FL_PMAX 20
param set-default FW_LND_FLALT 5 param set FW_LND_FLALT 5
param set-default FW_LND_TLALT 15 param set FW_LND_TLALT 15
param set-default FW_L1_PERIOD 25 param set FW_L1_PERIOD 25
param set-default FW_P_TC 0.4 param set FW_P_TC 0.4
param set-default FW_PR_FF 0.40 param set FW_PR_FF 0.40
param set-default FW_PR_I 0.05 param set FW_PR_I 0.05
param set-default FW_PR_P 0.05 param set FW_PR_P 0.05
param set-default FW_R_TC 0.45 param set FW_R_TC 0.45
param set-default FW_RR_FF 0.40 param set FW_RR_FF 0.40
param set-default FW_RR_I 0.132 param set FW_RR_I 0.132
param set-default FW_RR_P 0.085 param set FW_RR_P 0.085
param set-default FW_W_EN 1 param set FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30 param set MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 20 param set MIS_TAKEOFF_ALT 20
param set-default MIS_DIST_1WP 2500 param set MIS_DIST_1WP 2500
param set-default MIS_DIST_WPS 10000 param set MIS_DIST_WPS 10000
param set-default NAV_ACC_RAD 15 param set NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2 param set NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50 param set NAV_LOITER_RAD 50
param set-default RWTO_TKOFF 1 param set RWTO_TKOFF 1
#param set FW_THR_SLEW_MAX 0.3 # fix takeoff failure for JSBsim in autonomous mission mode.
param set RWTO_MAX_PITCH 20
param set RWTO_MAX_ROLL 10
#param set RWTO_MAX_THR 0.6 # fix takeoff failure for JSBsim in autonomous mission mode.
param set RWTO_PSP 8
param set RWTO_AIRSPD_SCL 1.8
# fix takeoff failure for JSBsim in autonomous mission mode. fi
#param set FW_THR_SLEW_MAX 0.3
param set-default RWTO_MAX_PITCH 20
param set-default RWTO_MAX_ROLL 10
# fix takeoff failure for JSBsim in autonomous mission mode.
#param set RWTO_MAX_THR 0.6
param set-default RWTO_PSP 8
param set-default RWTO_AIRSPD_SCL 1.8
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom set MIXER custom
@@ -5,39 +5,43 @@
. ${R}etc/init.d/rc.fw_defaults . ${R}etc/init.d/rc.fw_defaults
param set-default EKF2_ARSP_THR 8 if [ $AUTOCNF = yes ]
param set-default EKF2_FUSE_BETA 1 then
param set-default EKF2_MAG_ACCLIM 0 param set EKF2_ARSP_THR 8
param set-default EKF2_MAG_YAWLIM 0 param set EKF2_FUSE_BETA 1
param set EKF2_MAG_ACCLIM 0
param set EKF2_MAG_YAWLIM 0
param set-default FW_LND_AIRSPD_SC 1 param set FW_LND_AIRSPD_SC 1
param set-default FW_LND_ANG 8 param set FW_LND_ANG 8
param set-default FW_THR_LND_MAX 0 param set FW_THR_LND_MAX 0
param set-default FW_L1_PERIOD 15 param set FW_L1_PERIOD 15
param set-default FW_P_TC 0.5 param set FW_P_TC 0.5
param set-default FW_PR_FF 0.40 param set FW_PR_FF 0.40
param set-default FW_PR_I 0.05 param set FW_PR_I 0.05
param set-default FW_PR_P 0.05 param set FW_PR_P 0.05
param set-default FW_R_TC 0.7 param set FW_R_TC 0.7
param set-default FW_RR_FF 0.20 param set FW_RR_FF 0.20
param set-default FW_RR_I 0.02 param set FW_RR_I 0.02
param set-default FW_RR_P 0.22 param set FW_RR_P 0.22
param set-default FW_L1_PERIOD 12 param set FW_L1_PERIOD 12
param set-default FW_W_EN 1 param set FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30 param set MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 30 param set MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15 param set NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2 param set NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50 param set NAV_LOITER_RAD 50
param set-default RWTO_TKOFF 1 param set RWTO_TKOFF 1
fi
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom set MIXER custom
@@ -5,46 +5,52 @@
. ${R}etc/init.d/rc.fw_defaults . ${R}etc/init.d/rc.fw_defaults
param set-default EKF2_ARSP_THR 8 if [ $AUTOCNF = yes ]
param set-default EKF2_FUSE_BETA 1 then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
#param set EKF2_MAG_ACCLIM 0
#param set EKF2_MAG_YAWLIM 0
param set-default FW_LND_AIRSPD_SC 1.1 param set FW_LND_AIRSPD_SC 1.1
param set-default FW_LND_ANG 5 param set FW_LND_ANG 5
param set-default FW_THR_LND_MAX 0 param set FW_THR_LND_MAX 0
param set-default FW_LND_HHDIST 30 param set FW_LND_HHDIST 30
param set-default FW_LND_FL_PMIN 9.5 param set FW_LND_FL_PMIN 9.5
param set-default FW_LND_FL_PMAX 20 param set FW_LND_FL_PMAX 20
param set-default FW_LND_FLALT 5 param set FW_LND_FLALT 5
param set-default FW_LND_TLALT 15 param set FW_LND_TLALT 15
param set-default FW_L1_PERIOD 25 param set FW_L1_PERIOD 25
param set-default FW_P_TC 0.4 param set FW_P_TC 0.4
param set-default FW_PR_FF 0.40 param set FW_PR_FF 0.40
param set-default FW_PR_I 0.05 param set FW_PR_I 0.05
param set-default FW_PR_P 0.05 param set FW_PR_P 0.05
param set-default FW_R_TC 0.45 param set FW_R_TC 0.45
param set-default FW_RR_FF 0.40 param set FW_RR_FF 0.40
param set-default FW_RR_I 0.132 param set FW_RR_I 0.132
param set-default FW_RR_P 0.085 param set FW_RR_P 0.085
param set-default FW_W_EN 1 param set FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30 param set MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 20 param set MIS_TAKEOFF_ALT 20
param set-default MIS_DIST_1WP 2500 param set MIS_DIST_1WP 2500
param set-default MIS_DIST_WPS 10000 param set MIS_DIST_WPS 10000
param set-default NAV_ACC_RAD 15 param set NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2 param set NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50 param set NAV_LOITER_RAD 50
param set-default RWTO_TKOFF 1 param set RWTO_TKOFF 1
param set-default RWTO_MAX_PITCH 20 param set RWTO_MAX_PITCH 20
param set-default RWTO_MAX_ROLL 10 param set RWTO_MAX_ROLL 10
param set-default RWTO_PSP 8 param set RWTO_PSP 8
param set-default RWTO_AIRSPD_SCL 1.8 param set RWTO_AIRSPD_SCL 1.8
fi
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom set MIXER custom
@@ -7,46 +7,50 @@
. ${R}etc/init.d/rc.vtol_defaults . ${R}etc/init.d/rc.vtol_defaults
param set-default FW_L1_PERIOD 12 if [ $AUTOCNF = yes ]
param set-default FW_MAN_P_MAX 30 then
param set-default FW_PR_FF 0.2 param set FW_L1_PERIOD 12
param set-default FW_PR_I 0.4 param set FW_MAN_P_MAX 30
param set-default FW_PR_P 0.9 param set FW_PR_FF 0.2
param set-default FW_PSP_OFF 2 param set FW_PR_I 0.4
param set-default FW_P_LIM_MAX 32 param set FW_PR_P 0.9
param set-default FW_P_LIM_MIN -15 param set FW_PSP_OFF 2
param set-default FW_RR_FF 0.1 param set FW_P_LIM_MAX 32
param set-default FW_RR_P 0.3 param set FW_P_LIM_MIN -15
param set-default FW_THR_CRUISE 0.25 param set FW_RR_FF 0.1
param set-default FW_THR_MAX 0.6 param set FW_RR_P 0.3
param set-default FW_THR_MIN 0.05 param set FW_THR_CRUISE 0.25
param set-default FW_T_ALT_TC 2 param set FW_THR_MAX 0.6
param set-default FW_T_CLMB_MAX 8 param set FW_THR_MIN 0.05
param set-default FW_T_HRATE_FF 0.5 param set FW_T_ALT_TC 2
param set-default FW_T_SINK_MAX 2.7 param set FW_T_CLMB_MAX 8
param set-default FW_T_SINK_MIN 2.2 param set FW_T_HRATE_FF 0.5
param set-default FW_T_TAS_TC 2 param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default MC_ROLLRATE_P 0.3 param set MC_ROLLRATE_P 0.3
param set-default MC_YAW_P 1.6 param set MC_YAW_P 1.6
param set-default MIS_TAKEOFF_ALT 10 param set MIS_TAKEOFF_ALT 10
param set-default MPC_ACC_HOR_MAX 2 param set MPC_ACC_HOR_MAX 2
param set-default MPC_XY_P 0.8 param set MPC_XY_P 0.8
param set-default MPC_XY_VEL_P_ACC 3 param set MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4 param set MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1 param set MPC_XY_VEL_D_ACC 0.1
param set-default NAV_ACC_RAD 5 param set NAV_ACC_RAD 5
param set-default NAV_LOITER_RAD 80 param set NAV_LOITER_RAD 80
param set-default VT_FWD_THRUST_EN 4 param set VT_FWD_THRUST_EN 4
param set-default VT_F_TRANS_THR 0.75 param set VT_F_TRANS_THR 0.75
param set-default VT_MOT_ID 1234 param set VT_MOT_ID 1234
param set-default VT_FW_MOT_OFFID 1234 param set VT_FW_MOT_OFFID 1234
param set-default VT_B_TRANS_DUR 8 param set VT_B_TRANS_DUR 8
param set-default VT_TYPE 2 param set VT_TYPE 2
fi
set MAV_TYPE 22 set MAV_TYPE 22
@@ -7,40 +7,44 @@
. ${R}etc/init.d/rc.vtol_defaults . ${R}etc/init.d/rc.vtol_defaults
param set-default FW_L1_PERIOD 12 if [ $AUTOCNF = yes ]
param set-default FW_MAN_P_MAX 30 then
param set-default FW_PR_I 0.2 param set FW_L1_PERIOD 12
param set-default FW_PR_P 0.3 param set FW_MAN_P_MAX 30
param set-default FW_PSP_OFF 2 param set FW_PR_I 0.2
param set-default FW_P_LIM_MAX 32 param set FW_PR_P 0.3
param set-default FW_P_LIM_MIN -15 param set FW_PSP_OFF 2
param set-default FW_RR_P 0.3 param set FW_P_LIM_MAX 32
param set-default FW_THR_CRUISE 0.33 param set FW_P_LIM_MIN -15
param set-default FW_THR_MAX 0.6 param set FW_RR_P 0.3
param set-default FW_THR_MIN 0.05 param set FW_THR_CRUISE 0.33
param set-default FW_T_ALT_TC 2 param set FW_THR_MAX 0.6
param set-default FW_T_CLMB_MAX 8 param set FW_THR_MIN 0.05
param set-default FW_T_HRATE_FF 0.5 param set FW_T_ALT_TC 2
param set-default FW_T_SINK_MAX 2.7 param set FW_T_CLMB_MAX 8
param set-default FW_T_SINK_MIN 2.2 param set FW_T_HRATE_FF 0.5
param set-default FW_T_TAS_TC 2 param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default MC_ROLLRATE_P 0.3 param set MC_ROLLRATE_P 0.3
param set-default MPC_ACC_HOR_MAX 2 param set MPC_ACC_HOR_MAX 2
param set-default MPC_XY_P 0.8 param set MPC_XY_P 0.8
param set-default MPC_XY_VEL_P_ACC 3 param set MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4 param set MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1 param set MPC_XY_VEL_D_ACC 0.1
param set-default NAV_ACC_RAD 5 param set NAV_ACC_RAD 5
param set-default NAV_LOITER_RAD 80 param set NAV_LOITER_RAD 80
param set-default VT_F_TRANS_DUR 1.5 param set VT_F_TRANS_DUR 1.5
param set-default VT_F_TRANS_THR 0.7 param set VT_F_TRANS_THR 0.7
param set-default VT_TYPE 0 param set VT_TYPE 0
param set-default WV_EN 0 param set WV_EN 0
fi
set MAV_TYPE 20 set MAV_TYPE 20
@@ -7,44 +7,48 @@
. ${R}etc/init.d/rc.vtol_defaults . ${R}etc/init.d/rc.vtol_defaults
param set-default FW_L1_PERIOD 12 if [ $AUTOCNF = yes ]
param set-default FW_MAN_P_MAX 30 then
param set-default FW_PR_FF 0.2 param set FW_L1_PERIOD 12
param set-default FW_PR_I 0.4 param set FW_MAN_P_MAX 30
param set-default FW_PR_P 0.9 param set FW_PR_FF 0.2
param set-default FW_PSP_OFF 2 param set FW_PR_I 0.4
param set-default FW_P_LIM_MAX 32 param set FW_PR_P 0.9
param set-default FW_P_LIM_MIN -15 param set FW_PSP_OFF 2
param set-default FW_RR_FF 0.1 param set FW_P_LIM_MAX 32
param set-default FW_RR_P 0.3 param set FW_P_LIM_MIN -15
param set-default FW_THR_CRUISE 0.38 param set FW_RR_FF 0.1
param set-default FW_THR_MAX 0.6 param set FW_RR_P 0.3
param set-default FW_THR_MIN 0.05 param set FW_THR_CRUISE 0.38
param set-default FW_T_ALT_TC 2 param set FW_THR_MAX 0.6
param set-default FW_T_CLMB_MAX 8 param set FW_THR_MIN 0.05
param set-default FW_T_HRATE_FF 0.5 param set FW_T_ALT_TC 2
param set-default FW_T_SINK_MAX 2.7 param set FW_T_CLMB_MAX 8
param set-default FW_T_SINK_MIN 2.2 param set FW_T_HRATE_FF 0.5
param set-default FW_T_TAS_TC 2 param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default MC_YAW_P 1.6 param set MC_YAW_P 1.6
param set-default MIS_TAKEOFF_ALT 10 param set MIS_TAKEOFF_ALT 10
param set-default MPC_ACC_HOR_MAX 2 param set MPC_ACC_HOR_MAX 2
param set-default MPC_XY_P 0.8 param set MPC_XY_P 0.8
param set-default MPC_XY_VEL_P_ACC 3 param set MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4 param set MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1 param set MPC_XY_VEL_D_ACC 0.1
param set-default NAV_ACC_RAD 5 param set NAV_ACC_RAD 5
param set-default NAV_LOITER_RAD 80 param set NAV_LOITER_RAD 80
param set-default VT_B_TRANS_DUR 8 param set VT_B_TRANS_DUR 8
param set-default VT_FWD_THRUST_EN 4 param set VT_FWD_THRUST_EN 4
param set-default VT_MOT_ID 1234 param set VT_MOT_ID 1234
param set-default VT_TILT_TRANS 0.6 param set VT_TILT_TRANS 0.6
param set-default VT_TYPE 1 param set VT_TYPE 1
fi
set MAV_TYPE 21 set MAV_TYPE 21
@@ -7,50 +7,53 @@
. ${R}etc/init.d/rc.vtol_defaults . ${R}etc/init.d/rc.vtol_defaults
param set-default FW_L1_PERIOD 12 if [ $AUTOCNF = yes ]
param set-default FW_MAN_P_MAX 30 then
param set-default FW_PR_FF 0.2 param set FW_L1_PERIOD 12
param set-default FW_PR_I 0.4 param set FW_MAN_P_MAX 30
param set-default FW_PR_P 0.9 param set FW_PR_FF 0.2
param set-default FW_PSP_OFF 2 param set FW_PR_I 0.4
param set-default FW_P_LIM_MAX 32 param set FW_PR_P 0.9
param set-default FW_P_LIM_MIN -15 param set FW_PSP_OFF 2
param set-default FW_RR_FF 0.1 param set FW_P_LIM_MAX 32
param set-default FW_RR_P 0.3 param set FW_P_LIM_MIN -15
param set-default FW_THR_CRUISE 0.25 param set FW_RR_FF 0.1
param set-default FW_THR_MAX 0.6 param set FW_RR_P 0.3
param set-default FW_THR_MIN 0.05 param set FW_THR_CRUISE 0.25
param set-default FW_T_ALT_TC 2 param set FW_THR_MAX 0.6
param set-default FW_T_CLMB_MAX 8 param set FW_THR_MIN 0.05
param set-default FW_T_HRATE_FF 0.5 param set FW_T_ALT_TC 2
param set-default FW_T_SINK_MAX 2.7 param set FW_T_CLMB_MAX 8
param set-default FW_T_SINK_MIN 2.2 param set FW_T_HRATE_FF 0.5
param set-default FW_T_TAS_TC 2 param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default MC_ROLLRATE_P 0.3 param set MC_ROLLRATE_P 0.3
param set-default MC_YAW_P 1.6 param set MC_YAW_P 1.6
param set-default MIS_TAKEOFF_ALT 10 param set MIS_TAKEOFF_ALT 10
param set-default MPC_ACC_HOR_MAX 2 param set MPC_ACC_HOR_MAX 2
param set-default MPC_XY_P 0.8 param set MPC_XY_P 0.8
param set-default MPC_XY_VEL_P_ACC 3 param set MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4 param set MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1 param set MPC_XY_VEL_D_ACC 0.1
param set-default NAV_ACC_RAD 5 param set NAV_ACC_RAD 5
param set-default NAV_LOITER_RAD 80 param set NAV_LOITER_RAD 80
param set-default VT_FWD_THRUST_EN 4 param set VT_FWD_THRUST_EN 4
param set-default VT_F_TRANS_THR 0.75 param set VT_F_TRANS_THR 0.75
param set-default VT_MOT_ID 1234 param set VT_MOT_ID 1234
param set-default VT_FW_MOT_OFFID 1234 param set VT_FW_MOT_OFFID 1234
param set-default VT_B_TRANS_DUR 8 param set VT_B_TRANS_DUR 8
param set-default VT_TYPE 2 param set VT_TYPE 2
param set-default RC_MAP_AUX1 8 param set RC_MAP_AUX1 8
param set-default RC_MAP_AUX2 9 param set RC_MAP_AUX2 9
param set-default RC_MAP_AUX3 10 param set RC_MAP_AUX3 10
fi
set MAV_TYPE 22 set MAV_TYPE 22
@@ -5,28 +5,32 @@
. ${R}etc/init.d/rc.rover_defaults . ${R}etc/init.d/rc.rover_defaults
param set-default GND_L1_DIST 5 if [ $AUTOCNF = yes ]
param set-default GND_L1_PERIOD 10 then
param set-default GND_SP_CTRL_MODE 1 param set GND_L1_DIST 5
param set-default GND_SPEED_D 0.001 param set GND_L1_PERIOD 10
param set-default GND_SPEED_I 3 param set GND_SP_CTRL_MODE 1
param set-default GND_SPEED_IMAX 0.125 param set GND_SPEED_D 0.001
param set-default GND_SPEED_P 0.25 param set GND_SPEED_I 3
param set-default GND_SPEED_THR_SC 1 param set GND_SPEED_IMAX 0.125
param set-default GND_SPEED_TRIM 4 param set GND_SPEED_P 0.25
param set-default GND_THR_CRUISE 0.3 param set GND_SPEED_THR_SC 1
param set-default GND_THR_MAX 0.5 param set GND_SPEED_TRIM 4
param set-default GND_THR_MIN 0 param set GND_THR_CRUISE 0.3
param set GND_THR_MAX 0.5
param set GND_THR_MIN 0
param set-default MIS_LTRMIN_ALT 0.01 param set MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01 param set MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5 param set NAV_ACC_RAD 0.5
param set-default NAV_LOITER_RAD 2 param set NAV_LOITER_RAD 2
param set-default CBRK_AIRSPD_CHK 162128 param set CBRK_AIRSPD_CHK 162128
param set-default GND_MAX_ANG 0.6 param set GND_MAX_ANG 0.6
param set-default GND_WHEEL_BASE 2.0 param set GND_WHEEL_BASE 2.0
fi
set MAV_TYPE 10 set MAV_TYPE 10
@@ -6,27 +6,31 @@
. ${R}etc/init.d/rc.rover_defaults . ${R}etc/init.d/rc.rover_defaults
param set-default GND_L1_DIST 5 if [ $AUTOCNF = yes ]
param set-default GND_SP_CTRL_MODE 1 then
param set-default GND_SPEED_D 3 param set GND_L1_DIST 5
param set-default GND_SPEED_I 0.001 param set GND_SP_CTRL_MODE 1
param set-default GND_SPEED_IMAX 0.125 param set GND_SPEED_D 3
param set-default GND_SPEED_P 0.25 param set GND_SPEED_I 0.001
param set-default GND_SPEED_THR_SC 1 param set GND_SPEED_IMAX 0.125
param set-default GND_SPEED_TRIM 4 param set GND_SPEED_P 0.25
param set-default GND_THR_CRUISE 0.3 param set GND_SPEED_THR_SC 1
param set-default GND_THR_MAX 0.5 param set GND_SPEED_TRIM 4
param set-default GND_THR_MIN 0 param set GND_THR_CRUISE 0.3
param set GND_THR_MAX 0.5
param set GND_THR_MIN 0
param set-default MIS_LTRMIN_ALT 0.01 param set MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01 param set MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5 param set NAV_ACC_RAD 0.5
param set-default NAV_LOITER_RAD 2 param set NAV_LOITER_RAD 2
param set-default CBRK_AIRSPD_CHK 162128 param set CBRK_AIRSPD_CHK 162128
param set-default GND_MAX_ANG 0.6 param set GND_MAX_ANG 0.6
param set-default GND_WHEEL_BASE 2.0 param set GND_WHEEL_BASE 2.0
fi
set MAV_TYPE 10 set MAV_TYPE 10
@@ -10,28 +10,32 @@
. ${R}etc/init.d/rc.rover_defaults . ${R}etc/init.d/rc.rover_defaults
param set-default GND_L1_DIST 5 if [ $AUTOCNF = yes ]
param set-default GND_SP_CTRL_MODE 1 then
param set-default GND_SPEED_D 3 param set GND_L1_DIST 5
param set-default GND_SPEED_I 0.001 param set GND_SP_CTRL_MODE 1
param set-default GND_SPEED_IMAX 0.125 param set GND_SPEED_D 3
param set-default GND_SPEED_P 0.25 param set GND_SPEED_I 0.001
param set-default GND_SPEED_THR_SC 1 param set GND_SPEED_IMAX 0.125
param set-default GND_SPEED_TRIM 15 param set GND_SPEED_P 0.25
param set-default GND_SPEED_MAX 25 param set GND_SPEED_THR_SC 1
param set-default GND_THR_CRUISE 0.3 param set GND_SPEED_TRIM 15
param set-default GND_THR_MAX 0.5 param set GND_SPEED_MAX 25
param set-default GND_THR_MIN 0 param set GND_THR_CRUISE 0.3
param set GND_THR_MAX 0.5
param set GND_THR_MIN 0
param set-default MIS_LTRMIN_ALT 0.01 param set MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01 param set MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5 param set NAV_ACC_RAD 0.5
param set-default NAV_LOITER_RAD 2 param set NAV_LOITER_RAD 2
param set-default CBRK_AIRSPD_CHK 162128 param set CBRK_AIRSPD_CHK 162128
param set-default GND_MAX_ANG 0.6 param set GND_MAX_ANG 0.6
param set-default GND_WHEEL_BASE 3.0 param set GND_WHEEL_BASE 3.0
fi
set MAV_TYPE 10 set MAV_TYPE 10
@@ -5,28 +5,32 @@
. ${R}etc/init.d/rc.boat_defaults . ${R}etc/init.d/rc.boat_defaults
param set-default GND_L1_DIST 5 if [ $AUTOCNF = yes ]
param set-default GND_L1_PERIOD 100 then
param set-default GND_SP_CTRL_MODE 1 param set GND_L1_DIST 5
param set-default GND_SPEED_D 0.001 param set GND_L1_PERIOD 100
param set-default GND_SPEED_I 8 param set GND_SP_CTRL_MODE 1
param set-default GND_SPEED_IMAX 0.125 param set GND_SPEED_D 0.001
param set-default GND_SPEED_P 2 param set GND_SPEED_I 8
param set-default GND_SPEED_THR_SC 1 param set GND_SPEED_IMAX 0.125
param set-default GND_SPEED_TRIM 1 param set GND_SPEED_P 2
param set-default GND_THR_CRUISE 0.85 param set GND_SPEED_THR_SC 1
param set-default GND_THR_MAX 1 param set GND_SPEED_TRIM 1
param set-default GND_THR_MIN 0 param set GND_THR_CRUISE 0.85
param set GND_THR_MAX 1
param set GND_THR_MIN 0
param set-default MIS_LTRMIN_ALT 0.01 param set MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01 param set MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5 param set NAV_ACC_RAD 0.5
param set-default NAV_LOITER_RAD 2 param set NAV_LOITER_RAD 2
param set-default CBRK_AIRSPD_CHK 162128 param set CBRK_AIRSPD_CHK 162128
param set-default GND_MAX_ANG 0.6 param set GND_MAX_ANG 0.6
param set-default GND_WHEEL_BASE 2.0 param set GND_WHEEL_BASE 2.0
fi
set MAV_TYPE 11 set MAV_TYPE 11
@@ -12,47 +12,52 @@
. ${R}etc/init.d/rc.fw_defaults . ${R}etc/init.d/rc.fw_defaults
param set-default EKF2_ARSP_THR 8 if [ $AUTOCNF = yes ]
param set-default EKF2_FUSE_BETA 1 then
param set-default ASPD_STALL 10.0 param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
param set ASPD_STALL 10.0
param set-default FW_P_RMAX_NEG 20.0 param set FW_P_RMAX_NEG 20.0
param set-default FW_P_RMAX_POS 60.0 param set FW_P_RMAX_POS 60.0
param set-default FW_W_RMAX 10 param set FW_W_RMAX 10
param set-default FW_W_EN 1 param set FW_W_EN 1
param set-default FW_PR_IMAX 0.4 param set FW_PR_IMAX 0.4
param set-default FW_R_TC 0.4 param set FW_R_TC 0.4
param set-default FW_RR_FF 0.5 param set FW_RR_FF 0.5
param set-default FW_RR_I 0.1 param set FW_RR_I 0.1
param set-default FW_RR_IMAX 0.2 param set FW_RR_IMAX 0.2
param set-default FW_RR_P 0.08 param set FW_RR_P 0.08
param set-default MIS_LTRMIN_ALT 50 param set MIS_LTRMIN_ALT 50
param set-default MIS_TAKEOFF_ALT 3 param set MIS_TAKEOFF_ALT 3
param set-default NAV_ACC_RAD 20 param set NAV_ACC_RAD 20
param set-default NAV_DLL_ACT 2 param set NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 100 param set NAV_LOITER_RAD 100
param set-default RWTO_TKOFF 1 param set RWTO_TKOFF 1
param set-default FW_ARSP_SCALE_EN 0 param set FW_ARSP_SCALE_EN 0
param set-default FW_AIRSPD_MAX 35 param set FW_AIRSPD_MAX 35
param set-default FW_AIRSPD_MIN 7 param set FW_AIRSPD_MIN 7
param set-default FW_AIRSPD_TRIM 15 param set FW_AIRSPD_TRIM 15
param set-default FW_P_LIM_MAX 25 param set FW_P_LIM_MAX 25
param set-default FW_P_LIM_MIN -5 param set FW_P_LIM_MIN -5
param set-default FW_R_LIM 30 param set FW_R_LIM 30
param set-default FW_MAN_P_MAX 30.0 param set FW_MAN_P_MAX 30.0
param set-default FW_MAN_R_MAX 30.0 param set FW_MAN_R_MAX 30.0
param set FW_THR_CRUISE 0.8
param set FW_THR_IDLE 0
param set COM_DISARM_PRFLT 0
fi
param set-default FW_THR_CRUISE 0.8
param set-default FW_THR_IDLE 0
param set-default COM_DISARM_PRFLT 0
set MIXER_FILE etc/mixers-sitl/autogyro_sitl.main.mix set MIXER_FILE etc/mixers-sitl/autogyro_sitl.main.mix
set MIXER custom set MIXER custom
@@ -9,21 +9,24 @@
. ${R}etc/init.d/rc.mc_defaults . ${R}etc/init.d/rc.mc_defaults
param set-default MC_PITCHRATE_P 0.1 if [ $AUTOCNF = yes ]
param set-default MC_PITCHRATE_I 0.05 then
param set-default MC_PITCH_P 6.0 param set MC_PITCHRATE_P 0.1
param set-default MC_ROLLRATE_P 0.15 param set MC_PITCHRATE_I 0.05
param set-default MC_ROLLRATE_I 0.1 param set MC_PITCH_P 6.0
param set-default MC_ROLL_P 6.0 param set MC_ROLLRATE_P 0.15
param set-default MPC_XY_VEL_I_ACC 4 param set MC_ROLLRATE_I 0.1
param set-default MPC_XY_VEL_P_ACC 3 param set MC_ROLL_P 6.0
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_P_ACC 3
param set-default RTL_DESCEND_ALT 10 param set RTL_DESCEND_ALT 10
param set-default TRIG_INTERFACE 3 param set TRIG_INTERFACE 3
param set-default TRIG_MODE 4 param set TRIG_MODE 4
param set-default MNT_MODE_IN 4 param set MNT_MODE_IN 4
param set-default MNT_DO_STAB 2 param set MNT_DO_STAB 2
fi
set MAV_TYPE 13 set MAV_TYPE 13
@@ -7,24 +7,27 @@
. ${R}etc/init.d/rc.mc_defaults . ${R}etc/init.d/rc.mc_defaults
param set-default MC_PITCHRATE_P 0.0800 if [ $AUTOCNF = yes ]
param set-default MC_PITCHRATE_I 0.0400 then
param set-default MC_PITCHRATE_D 0.0010 param set MC_PITCHRATE_P 0.0800
param set-default MC_PITCH_P 9.0 param set MC_PITCHRATE_I 0.0400
param set-default MC_ROLLRATE_P 0.0800 param set MC_PITCHRATE_D 0.0010
param set-default MC_ROLLRATE_I 0.0400 param set MC_PITCH_P 9.0
param set-default MC_ROLLRATE_D 0.0010 param set MC_ROLLRATE_P 0.0800
param set-default MC_ROLL_P 9.0 param set MC_ROLLRATE_I 0.0400
param set-default MPC_XY_VEL_I_ACC 4 param set MC_ROLLRATE_D 0.0010
param set-default MPC_XY_VEL_P_ACC 3 param set MC_ROLL_P 9.0
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_P_ACC 3
param set-default RTL_DESCEND_ALT 10 param set RTL_DESCEND_ALT 10
param set-default TRIG_INTERFACE 3 param set TRIG_INTERFACE 3
param set-default TRIG_MODE 4 param set TRIG_MODE 4
param set-default MNT_MODE_IN 4 param set MNT_MODE_IN 4
param set-default MNT_MODE_OUT 2 param set MNT_MODE_OUT 2
param set-default MAV_PROTO_VER 2 param set MAV_PROTO_VER 2
fi
set MAV_TYPE 13 set MAV_TYPE 13
@@ -8,63 +8,66 @@
. ${R}etc/init.d/rc.mc_defaults . ${R}etc/init.d/rc.mc_defaults
. ${R}etc/init.d/rc.ctrlalloc . ${R}etc/init.d/rc.ctrlalloc
param set-default MPC_XY_VEL_I_ACC 4 if [ $AUTOCNF = yes ]
param set-default MPC_XY_VEL_P_ACC 3 then
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_P_ACC 3
param set-default RTL_DESCEND_ALT 10 param set RTL_DESCEND_ALT 10
param set-default RTL_LAND_DELAY 0 param set RTL_LAND_DELAY 0
param set-default TRIG_INTERFACE 3 param set TRIG_INTERFACE 3
param set-default TRIG_MODE 4 param set TRIG_MODE 4
param set-default MNT_MODE_IN 0 param set MNT_MODE_IN 0
param set-default MAV_PROTO_VER 2 param set MAV_PROTO_VER 2
param set-default MPC_USE_HTE 0 param set MPC_USE_HTE 0
param set-default VM_MASS 2.66 param set VM_MASS 2.66
param set-default VM_INERTIA_XX 0.06 param set VM_INERTIA_XX 0.06
param set-default VM_INERTIA_YY 0.06 param set VM_INERTIA_YY 0.06
param set-default VM_INERTIA_ZZ 0.10 param set VM_INERTIA_ZZ 0.10
param set-default CA_AIRFRAME 0 param set CA_AIRFRAME 0
param set-default CA_METHOD 1 param set CA_METHOD 1
param set-default CA_ACT0_MIN 0.0 param set CA_ACT0_MIN 0.0
param set-default CA_ACT1_MIN 0.0 param set CA_ACT1_MIN 0.0
param set-default CA_ACT2_MIN 0.0 param set CA_ACT2_MIN 0.0
param set-default CA_ACT3_MIN 0.0 param set CA_ACT3_MIN 0.0
param set-default CA_ACT4_MIN 0.0 param set CA_ACT4_MIN 0.0
param set-default CA_ACT5_MIN 0.0 param set CA_ACT5_MIN 0.0
param set-default CA_ACT0_MAX 1.0 param set CA_ACT0_MAX 1.0
param set-default CA_ACT1_MAX 1.0 param set CA_ACT1_MAX 1.0
param set-default CA_ACT2_MAX 1.0 param set CA_ACT2_MAX 1.0
param set-default CA_ACT3_MAX 1.0 param set CA_ACT3_MAX 1.0
param set-default CA_ACT4_MAX 1.0 param set CA_ACT4_MAX 1.0
param set-default CA_ACT5_MAX 1.0 param set CA_ACT5_MAX 1.0
param set-default CA_MC_R0_PX 0.0 param set CA_MC_R0_PX 0.0
param set-default CA_MC_R0_PY 1.0 param set CA_MC_R0_PY 1.0
param set-default CA_MC_R0_CT 9.5 param set CA_MC_R0_CT 9.5
param set-default CA_MC_R0_KM -0.05 param set CA_MC_R0_KM -0.05
param set-default CA_MC_R1_PX 0.0 param set CA_MC_R1_PX 0.0
param set-default CA_MC_R1_PY -1.0 param set CA_MC_R1_PY -1.0
param set-default CA_MC_R1_CT 9.5 param set CA_MC_R1_CT 9.5
param set-default CA_MC_R1_KM 0.05 param set CA_MC_R1_KM 0.05
param set-default CA_MC_R2_PX 0.866025 param set CA_MC_R2_PX 0.866025
param set-default CA_MC_R2_PY -0.5 param set CA_MC_R2_PY -0.5
param set-default CA_MC_R2_CT 9.5 param set CA_MC_R2_CT 9.5
param set-default CA_MC_R2_KM -0.05 param set CA_MC_R2_KM -0.05
param set-default CA_MC_R3_PX -0.866025 param set CA_MC_R3_PX -0.866025
param set-default CA_MC_R3_PY 0.5 param set CA_MC_R3_PY 0.5
param set-default CA_MC_R3_CT 9.5 param set CA_MC_R3_CT 9.5
param set-default CA_MC_R3_KM 0.05 param set CA_MC_R3_KM 0.05
param set-default CA_MC_R4_PX 0.866025 param set CA_MC_R4_PX 0.866025
param set-default CA_MC_R4_PY 0.5 param set CA_MC_R4_PY 0.5
param set-default CA_MC_R4_CT 9.5 param set CA_MC_R4_CT 9.5
param set-default CA_MC_R4_KM 0.05 param set CA_MC_R4_KM 0.05
param set-default CA_MC_R5_PX -0.866025 param set CA_MC_R5_PX -0.866025
param set-default CA_MC_R5_PY -0.5 param set CA_MC_R5_PY -0.5
param set-default CA_MC_R5_CT 9.5 param set CA_MC_R5_CT 9.5
param set-default CA_MC_R5_KM -0.05 param set CA_MC_R5_KM -0.05
fi
set MAV_TYPE 13 set MAV_TYPE 13
@@ -1,32 +0,0 @@
#!/bin/sh
# shellcheck disable=SC2154
udp_offboard_port_local=$((14580+px4_instance))
udp_offboard_port_remote=$((14540+px4_instance))
[ $px4_instance -gt 9 ] && udp_offboard_port_remote=14549 # use the same ports for more than 10 instances to avoid port overlaps
udp_onboard_payload_port_local=$((14280+px4_instance))
udp_onboard_payload_port_remote=$((14030+px4_instance))
udp_onboard_gimbal_port_local=$((13030+px4_instance))
udp_onboard_gimbal_port_remote=$((13280+px4_instance))
udp_gcs_port_local=$((18570+px4_instance))
# GCS link
mavlink start -x -u $udp_gcs_port_local -r 4000000 -f
mavlink stream -r 50 -s POSITION_TARGET_LOCAL_NED -u $udp_gcs_port_local
mavlink stream -r 50 -s LOCAL_POSITION_NED -u $udp_gcs_port_local
mavlink stream -r 50 -s GLOBAL_POSITION_INT -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE_QUATERNION -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE_TARGET -u $udp_gcs_port_local
mavlink stream -r 50 -s SERVO_OUTPUT_RAW_0 -u $udp_gcs_port_local
mavlink stream -r 20 -s RC_CHANNELS -u $udp_gcs_port_local
mavlink stream -r 10 -s OPTICAL_FLOW_RAD -u $udp_gcs_port_local
# API/Offboard link
mavlink start -x -u $udp_offboard_port_local -r 4000000 -f -m onboard -o $udp_offboard_port_remote
# Onboard link to camera
mavlink start -x -u $udp_onboard_payload_port_local -r 4000 -f -m onboard -o $udp_onboard_payload_port_remote
# Onboard link to gimbal
mavlink start -x -u $udp_onboard_gimbal_port_local -r 400000 -m gimbal -o $udp_onboard_gimbal_port_remote
@@ -1,5 +0,0 @@
#!/bin/sh
# shellcheck disable=SC2154
#param set MAV_SYS_ID $((px4_instance+1))
#param set IMU_INTEG_RATE 250
@@ -1,20 +0,0 @@
#!/bin/sh
# shellcheck disable=SC2154
simulator_tcp_port=$((4560+px4_instance))
# Check if PX4_SIM_HOSTNAME environment variable is empty
# If empty check if PX4_SIM_HOST_ADDR environment variable is empty
# If both are empty use localhost for simulator
if [ -z "${PX4_SIM_HOSTNAME}" ]; then
if [ -z "${PX4_SIM_HOST_ADDR}" ]; then
echo "PX4 SIM HOST: localhost"
simulator start -c $simulator_tcp_port
else
echo "PX4 SIM HOST: $PX4_SIM_HOST_ADDR"
simulator start -t $PX4_SIM_HOST_ADDR $simulator_tcp_port
fi
else
echo "PX4 SIM HOST: $PX4_SIM_HOSTNAME"
simulator start -h $PX4_SIM_HOSTNAME $simulator_tcp_port
fi
+40 -15
View File
@@ -5,8 +5,7 @@
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. px4-alias.sh . px4-alias.sh
#search path for sourcing px4-rc.* SCRIPT_DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)"
PATH="$PATH:${R}etc/init.d-posix"
# #
# Main SITL startup script # Main SITL startup script
@@ -46,9 +45,9 @@ else
# Find the matching Autostart ID (file name has the form: [0-9]+_${PX4_SIM_MODEL}) # Find the matching Autostart ID (file name has the form: [0-9]+_${PX4_SIM_MODEL})
# TODO: unify with rc.autostart generation # TODO: unify with rc.autostart generation
# shellcheck disable=SC2012 # shellcheck disable=SC2012
REQUESTED_AUTOSTART=$(ls "${R}etc/init.d-posix/airframes" | sed -n 's/^\([0-9][0-9]*\)_'${PX4_SIM_MODEL}'$/\1/p') REQUESTED_AUTOSTART=$(ls "$SCRIPT_DIR/airframes" | sed -n 's/^\([0-9][0-9]*\)_'${PX4_SIM_MODEL}'$/\1/p')
if [ -z "$REQUESTED_AUTOSTART" ]; then if [ -z "$REQUESTED_AUTOSTART" ]; then
echo "Error: Unknown model $PX4_SIM_MODEL (not found by name on ${R}etc/init.d-posix/airframes)" echo "Error: Unknown model $PX4_SIM_MODEL (not found by name on $SCRIPT_DIR/airframes)"
exit 1 exit 1
else else
echo "Info: found model autostart file as SYS_AUTOSTART=$REQUESTED_AUTOSTART" echo "Info: found model autostart file as SYS_AUTOSTART=$REQUESTED_AUTOSTART"
@@ -99,12 +98,21 @@ then
set AUTOCNF yes set AUTOCNF yes
# Wipe out params except RC*, flight modes, total flight time, accel cal, gyro cal, next flight UUID # Wipe out params except RC*, flight modes, total flight time, accel cal, gyro cal, next flight UUID
param reset_all SYS_AUTO* RC* COM_FLTMODE* LND_FLIGHT* TC_* CAL_ACC* CAL_GYRO* COM_FLIGHT* param reset_all SYS_AUTOSTART SYS_AUTOCONFIG RC* COM_FLTMODE* LND_FLIGHT_T_* TC_* CAL_ACC* CAL_GYRO* COM_FLIGHT_UUID
fi fi
# multi-instance setup # multi-instance setup
# shellcheck disable=SC2154 # shellcheck disable=SC2154
param set MAV_SYS_ID $((px4_instance+1)) param set MAV_SYS_ID $((px4_instance+1))
simulator_tcp_port=$((4560+px4_instance))
udp_offboard_port_local=$((14580+px4_instance))
udp_offboard_port_remote=$((14540+px4_instance))
[ $px4_instance -gt 9 ] && udp_offboard_port_remote=14549 # use the same ports for more than 10 instances to avoid port overlaps
udp_onboard_payload_port_local=$((14280+px4_instance))
udp_onboard_payload_port_remote=$((14030+px4_instance))
udp_onboard_gimbal_port_local=$((13030+px4_instance))
udp_onboard_gimbal_port_remote=$((13280+px4_instance))
udp_gcs_port_local=$((18570+px4_instance))
if [ $AUTOCNF = yes ] if [ $AUTOCNF = yes ]
then then
@@ -169,10 +177,6 @@ if [ -n "$PX4_SIM_SPEED_FACTOR" ]; then
COM_OF_LOSS_T_LONGER=$(echo "$PX4_SIM_SPEED_FACTOR * 0.5" | bc) COM_OF_LOSS_T_LONGER=$(echo "$PX4_SIM_SPEED_FACTOR * 0.5" | bc)
echo "COM_OF_LOSS_T set to $COM_OF_LOSS_T_LONGER" echo "COM_OF_LOSS_T set to $COM_OF_LOSS_T_LONGER"
param set COM_OF_LOSS_T $COM_OF_LOSS_T_LONGER param set COM_OF_LOSS_T $COM_OF_LOSS_T_LONGER
COM_OBC_LOSS_T_LONGER=$(echo "$PX4_SIM_SPEED_FACTOR * 5.0" | bc)
echo "COM_OBC_LOSS_T set to $COM_OBC_LOSS_T_LONGER"
param set COM_OBC_LOSS_T $COM_OBC_LOSS_T_LONGER
fi fi
# Autostart ID # Autostart ID
@@ -208,14 +212,11 @@ fi
# Simulator IMU data provided at 250 Hz # Simulator IMU data provided at 250 Hz
param set IMU_INTEG_RATE 250 param set IMU_INTEG_RATE 250
#user defined params for instances can be in PATH
. px4-rc.params
dataman start dataman start
# only start the simulator if not in replay mode, as both control the lockstep time # only start the simulator if not in replay mode, as both control the lockstep time
if ! replay tryapplyparams if ! replay tryapplyparams
then then
. px4-rc.simulator simulator start -c $simulator_tcp_port
fi fi
load_mon start load_mon start
battery_simulator start battery_simulator start
@@ -253,8 +254,32 @@ fi
# #
. ${R}etc/init.d/rc.vehicle_setup . ${R}etc/init.d/rc.vehicle_setup
#user defined mavlink streams for instances can be in PATH if [ -e etc/init.d-posix/rc.mavlink_override ]
. px4-rc.mavlink then
echo "Running non-default mavlink config rc.mavlink_override"
sh etc/init.d-posix/rc.mavlink_override
else
# GCS link
mavlink start -x -u $udp_gcs_port_local -r 4000000 -f
mavlink stream -r 50 -s POSITION_TARGET_LOCAL_NED -u $udp_gcs_port_local
mavlink stream -r 50 -s LOCAL_POSITION_NED -u $udp_gcs_port_local
mavlink stream -r 50 -s GLOBAL_POSITION_INT -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE_QUATERNION -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE_TARGET -u $udp_gcs_port_local
mavlink stream -r 50 -s SERVO_OUTPUT_RAW_0 -u $udp_gcs_port_local
mavlink stream -r 20 -s RC_CHANNELS -u $udp_gcs_port_local
mavlink stream -r 10 -s OPTICAL_FLOW_RAD -u $udp_gcs_port_local
# API/Offboard link
mavlink start -x -u $udp_offboard_port_local -r 4000000 -f -m onboard -o $udp_offboard_port_remote
# Onboard link to camera
mavlink start -x -u $udp_onboard_payload_port_local -r 4000 -f -m onboard -o $udp_onboard_payload_port_remote
# Onboard link to gimbal
mavlink start -x -u $udp_onboard_gimbal_port_local -r 400000 -m gimbal -o $udp_onboard_gimbal_port_remote
fi
# execute autostart post script if any # execute autostart post script if any
[ -e "$autostart_file".post ] && . "$autostart_file".post [ -e "$autostart_file".post ] && . "$autostart_file".post
@@ -14,7 +14,7 @@
. ${R}etc/init.d/rc.vtol_defaults . ${R}etc/init.d/rc.vtol_defaults
param set-default PWM_AUX_DISARM 1000 param set-default PWM_AUX_DISARMED 1000
param set-default PWM_AUX_MAX 2000 param set-default PWM_AUX_MAX 2000
param set-default PWM_AUX_MIN 1000 param set-default PWM_AUX_MIN 1000
param set-default PWM_AUX_RATE 50 param set-default PWM_AUX_RATE 50
@@ -112,7 +112,7 @@ param set-default MPC_YAWRAUTO_MAX 20
param set-default NAV_DLL_ACT 0 param set-default NAV_DLL_ACT 0
param set-default NAV_LOITER_RAD 100 param set-default NAV_LOITER_RAD 100
param set-default PWM_AUX_DISARM 950 param set-default PWM_AUX_DISARMED 950
param set-default PWM_MAIN_DIS5 1500 param set-default PWM_MAIN_DIS5 1500
param set-default PWM_MAIN_DIS6 1500 param set-default PWM_MAIN_DIS6 1500
@@ -111,6 +111,5 @@ set MAV_TYPE 22
set MIXER babyshark set MIXER babyshark
set MIXER_AUX pass set MIXER_AUX pass
# Mark outputs for the alternate rate
# or D-Shot
set PWM_OUT 5678 set PWM_OUT 5678
set PWM_AUX_OUT 1234
@@ -31,7 +31,7 @@ set VEHICLE_TYPE mc
param set-default NAV_ACC_RAD 2 param set-default NAV_ACC_RAD 2
param set-default PWM_AUX_RATE 400 param set-default PWM_AUX_RATE 400
param set-default PWM_AUX_DISARM 900 param set-default PWM_AUX_DISARMED 900
param set-default PWM_AUX_MIN 1075 param set-default PWM_AUX_MIN 1075
param set-default PWM_AUX_MAX 1950 param set-default PWM_AUX_MAX 1950
@@ -33,7 +33,7 @@ param set-default MC_YAW_P 4
param set-default NAV_ACC_RAD 2 param set-default NAV_ACC_RAD 2
param set-default PWM_AUX_DISARM 950 param set-default PWM_AUX_DISARMED 950
param set-default PWM_AUX_RATE 50 param set-default PWM_AUX_RATE 50
param set-default PWM_MAIN_MIN 1100 param set-default PWM_MAIN_MIN 1100
param set-default PWM_MAIN_MAX 1900 param set-default PWM_MAIN_MAX 1900
@@ -16,6 +16,8 @@
set MIXER quad_x set MIXER quad_x
set PWM_OUT 1234 set PWM_OUT 1234
set PARAM_DEFAULTS_VER 2
param set-default BAT_N_CELLS 4 param set-default BAT_N_CELLS 4
@@ -7,6 +7,8 @@
# @type Rover # @type Rover
# @class Rover # @class Rover
# #
# @board px4_fmu-v2 exclude
#
# @output MAIN0 Speed of left wheels # @output MAIN0 Speed of left wheels
# @output MAIN1 Speed of right wheels # @output MAIN1 Speed of right wheels
# #
@@ -16,8 +16,6 @@ param set-default COM_POS_FS_EPV 30
param set-default COM_POS_FS_GAIN 0 param set-default COM_POS_FS_GAIN 0
param set-default COM_POS_FS_PROB 1 param set-default COM_POS_FS_PROB 1
param set-default COM_VEL_FS_EVH 5 param set-default COM_VEL_FS_EVH 5
# Disable preflight disarm to not interfere with external launching
param set-default COM_DISARM_PRFLT -1
param set-default EKF2_ARSP_THR 8 param set-default EKF2_ARSP_THR 8
param set-default EKF2_FUSE_BETA 1 param set-default EKF2_FUSE_BETA 1
+1 -11
View File
@@ -108,18 +108,11 @@ then
vl53l1x start -X vl53l1x start -X
fi fi
# ADIS16448 spi external IMU
if param compare -s SENS_EN_ADIS164X 1
then
adis16448 -S start
fi
# probe for optional external I2C devices # probe for optional external I2C devices
if param compare SENS_EXT_I2C_PRB 1 if param compare SENS_EXT_I2C_PRB 1
then then
icm20948_i2c_passthrough -X -q start
# compasses # compasses
ak09916 -X -R 6 -q start # external AK09916 (Here2) is rotated 270 degrees yaw
hmc5883 -T -X -q start hmc5883 -T -X -q start
ist8308 -X -q start ist8308 -X -q start
ist8310 -X -q start ist8310 -X -q start
@@ -128,9 +121,6 @@ then
qmc5883l -X -q start qmc5883l -X -q start
rm3100 -X -q start rm3100 -X -q start
# start last (wait for possible icm20948 passthrough mode)
ak09916 -X -q start
# differential pressure sensors # differential pressure sensors
if [ ${VEHICLE_TYPE} = fw -o ${VEHICLE_TYPE} = vtol ] if [ ${VEHICLE_TYPE} = fw -o ${VEHICLE_TYPE} = vtol ]
then then
@@ -23,7 +23,6 @@ param set-default MPC_XY_ERR_MAX 5
param set-default MPC_XY_VEL_MAX 4 param set-default MPC_XY_VEL_MAX 4
param set-default MPC_Z_VEL_MAX_DN 1.5 param set-default MPC_Z_VEL_MAX_DN 1.5
param set-default MPC_JERK_MAX 4.5 param set-default MPC_JERK_MAX 4.5
param set-default MPC_YAW_MODE 4
param set-default NAV_ACC_RAD 3 param set-default NAV_ACC_RAD 3
+58 -32
View File
@@ -51,6 +51,12 @@ set STARTUP_TUNE 1
set USE_IO no set USE_IO no
set VEHICLE_TYPE none set VEHICLE_TYPE none
# Airframe parameter versioning: airframe maintainers can set this in the
# airframe startup script, and then increase it by one whenever an airframe
# parameter is updated - it will ensure that these parameters will be updated
# when the firmware is flashed.
set PARAM_DEFAULTS_VER 1
# #
# Mount the procfs. # Mount the procfs.
# #
@@ -165,8 +171,12 @@ else
# #
if param greater SYS_AUTOCONFIG 0 if param greater SYS_AUTOCONFIG 0
then then
# Wipe out params except RC*, flight modes, total flight time, calibration parameters, next flight UUID if param compare SYS_AUTOCONFIG 1
param reset_all SYS_AUTO* RC* COM_FLTMODE* LND_FLIGHT* TC_* CAL_ACC* CAL_GYRO* COM_FLIGHT* then
# Wipe out params except RC*, flight modes, total flight time, calibration parameters, next flight UUID
param reset_all SYS_AUTO* RC* COM_FLTMODE* LND_FLIGHT* TC_* CAL_ACC* CAL_GYRO* COM_FLIGHT* SYS_PARAM_VER
fi
set AUTOCNF yes set AUTOCNF yes
fi fi
@@ -229,6 +239,14 @@ else
rgbled start -X -q rgbled start -X -q
rgbled_ncp5623c start -X -q rgbled_ncp5623c start -X -q
if param greater -s LIGHT_EN_BLINKM 0
then
if blinkm start -X
then
blinkm systemstate
fi
fi
# #
# Set parameters and env variables for selected AUTOSTART. # Set parameters and env variables for selected AUTOSTART.
# #
@@ -254,34 +272,6 @@ else
param set SYS_AUTOCONFIG 0 param set SYS_AUTOCONFIG 0
fi fi
#
# Check if UAVCAN is enabled, default to it for ESCs.
#
if param greater -s UAVCAN_ENABLE 0
then
# Start core UAVCAN module.
if uavcan start
then
if param greater UAVCAN_ENABLE 1
then
# Start UAVCAN firmware update server and dynamic node ID allocation server.
uavcan start fw
tune_control play -t 1
if param greater UAVCAN_ENABLE 2
then
set OUTPUT_MODE uavcan_esc
fi
fi
else
tune_control play error
fi
else
if param greater -s UAVCAN_V1_ENABLE 0
then
uavcan_v1 start
fi
fi
# #
# Check if PX4IO present and update firmware if needed. # Check if PX4IO present and update firmware if needed.
# Assumption IOFW set to firmware file and IO_PRESENT = no # Assumption IOFW set to firmware file and IO_PRESENT = no
@@ -313,8 +303,6 @@ else
else else
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
fi fi
else
tune_control stop
fi fi
fi fi
fi fi
@@ -426,6 +414,34 @@ else
camera_feedback start camera_feedback start
fi fi
#
# Check if UAVCAN is enabled, default to it for ESCs.
#
if param greater -s UAVCAN_ENABLE 0
then
# Start core UAVCAN module.
if uavcan start
then
if param greater UAVCAN_ENABLE 1
then
# Start UAVCAN firmware update server and dynamic node ID allocation server.
uavcan start fw
tune_control play -t 1
if param greater UAVCAN_ENABLE 2
then
set OUTPUT_MODE uavcan_esc
fi
fi
else
tune_control play error
fi
fi
if param greater -s UAVCAN_V1_ENABLE 0
then
uavcan_v1 start
fi
# #
# Optional board mavlink streams: rc.board_mavlink # Optional board mavlink streams: rc.board_mavlink
# #
@@ -554,6 +570,15 @@ else
fi fi
fi fi
if ! param compare SYS_PARAM_VER ${PARAM_DEFAULTS_VER}
then
echo "Switched to different parameter version. Resetting parameters."
param set SYS_PARAM_VER ${PARAM_DEFAULTS_VER}
param set SYS_AUTOCONFIG 2
param save
reboot
fi
# #
# End of autostart. # End of autostart.
# #
@@ -578,6 +603,7 @@ unset MIXER
unset MIXER_AUX unset MIXER_AUX
unset MIXER_FILE unset MIXER_FILE
unset OUTPUT_MODE unset OUTPUT_MODE
unset PARAM_DEFAULTS_VER
unset PARAM_FILE unset PARAM_FILE
unset PWM_AUX_OUT unset PWM_AUX_OUT
unset PWM_AUX_RATE unset PWM_AUX_RATE
+1 -1
View File
@@ -59,7 +59,7 @@ if [ ! -f $HOOK_FILE ] && [ "$CI" != "true" ]; then
fi fi
fi fi
${DIR}/files_to_check_code_style.sh | xargs -P 8 -I % ${DIR}/check_code_style.sh % ${DIR}/files_to_check_code_style.sh | xargs -n 1 -P 8 -I % ${DIR}/check_code_style.sh %
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Format checks passed" echo "Format checks passed"
-13
View File
@@ -1,13 +0,0 @@
custom_data_source: {
name: "bloaty_static_ram"
base_data_source: "sections"
rewrite: {
pattern: "^\\.bss"
replacement: "ram"
}
rewrite: {
pattern: "^\\.data"
replacement: "ram"
}
}
+5 -3
View File
@@ -2,7 +2,10 @@
if [ -z ${PX4_DOCKER_REPO+x} ]; then if [ -z ${PX4_DOCKER_REPO+x} ]; then
echo "guessing PX4_DOCKER_REPO based on input"; echo "guessing PX4_DOCKER_REPO based on input";
if [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*beaglebone.* ]] || [[ $@ =~ .*pilotpi.default ]]; then if [[ $@ =~ .*px4_fmu.* ]]; then
# nuttx-px4fmu-v{1,2,3,4,5}
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2021-02-04"
elif [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*beaglebone.* ]] || [[ $@ =~ .*pilotpi.default ]]; then
# beaglebone_blue_default, emlid_navio2_default, px4_raspberrypi_default, scumaker_pilotpi_default # beaglebone_blue_default, emlid_navio2_default, px4_raspberrypi_default, scumaker_pilotpi_default
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2021-02-04" PX4_DOCKER_REPO="px4io/px4-dev-armhf:2021-02-04"
elif [[ $@ =~ .*pilotpi.arm64 ]]; then elif [[ $@ =~ .*pilotpi.arm64 ]]; then
@@ -27,7 +30,7 @@ fi
# otherwise default to nuttx # otherwise default to nuttx
if [ -z ${PX4_DOCKER_REPO+x} ]; then if [ -z ${PX4_DOCKER_REPO+x} ]; then
PX4_DOCKER_REPO="ghcr.io/px4/px4-dev:2021-05-06" PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2020-09-14"
fi fi
# docker hygiene # docker hygiene
@@ -64,5 +67,4 @@ docker run -it --rm -w "${SRC_DIR}" \
--publish 14556:14556/udp \ --publish 14556:14556/udp \
--volume=${CCACHE_DIR}:${CCACHE_DIR}:rw \ --volume=${CCACHE_DIR}:${CCACHE_DIR}:rw \
--volume=${SRC_DIR}:${SRC_DIR}:rw \ --volume=${SRC_DIR}:${SRC_DIR}:rw \
-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -h $HOSTNAME
${PX4_DOCKER_REPO} /bin/bash -c "$1 $2 $3" ${PX4_DOCKER_REPO} /bin/bash -c "$1 $2 $3"
+49 -93
View File
@@ -1,4 +1,4 @@
#! /usr/bin/env python3 #! /usr/bin/env python
from __future__ import print_function from __future__ import print_function
@@ -7,7 +7,6 @@ import os
import math import math
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import numpy as np import numpy as np
import scipy as sp
from pyulog import * from pyulog import *
@@ -64,9 +63,6 @@ def resampleWithDeltaX(x,y):
return resampledX,resampledY return resampledX,resampledY
def median_filter(data):
return sp.signal.medfilt(data, 31)
parser = argparse.ArgumentParser(description='Reads in IMU data from a static thermal calibration test and performs a curve fit of gyro, accel and baro bias vs temperature') parser = argparse.ArgumentParser(description='Reads in IMU data from a static thermal calibration test and performs a curve fit of gyro, accel and baro bias vs temperature')
parser.add_argument('filename', metavar='file.ulg', help='ULog input file') parser.add_argument('filename', metavar='file.ulg', help='ULog input file')
parser.add_argument('--no_resample', dest='noResample', action='store_const', parser.add_argument('--no_resample', dest='noResample', action='store_const',
@@ -188,16 +184,12 @@ if num_gyros >= 1 and not math.isnan(sensor_gyro_0['temperature'][0]):
temp_rel_resample = np.linspace(gyro_0_params['TC_G0_TMIN']-gyro_0_params['TC_G0_TREF'], gyro_0_params['TC_G0_TMAX']-gyro_0_params['TC_G0_TREF'], 100) temp_rel_resample = np.linspace(gyro_0_params['TC_G0_TMIN']-gyro_0_params['TC_G0_TREF'], gyro_0_params['TC_G0_TMAX']-gyro_0_params['TC_G0_TREF'], 100)
temp_resample = temp_rel_resample + gyro_0_params['TC_G0_TREF'] temp_resample = temp_rel_resample + gyro_0_params['TC_G0_TREF']
sensor_gyro_0['x'] = median_filter(sensor_gyro_0['x'])
sensor_gyro_0['y'] = median_filter(sensor_gyro_0['y'])
sensor_gyro_0['z'] = median_filter(sensor_gyro_0['z'])
# fit X axis # fit X axis
if noResample: if noResample:
coef_gyro_0_x = np.polyfit(temp_rel, sensor_gyro_0['x'], 3) coef_gyro_0_x = np.polyfit(temp_rel,sensor_gyro_0['x'],3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel, sensor_gyro_0['x']) temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_0['x'])
coef_gyro_0_x = np.polyfit(temp, sens, 3) coef_gyro_0_x = np.polyfit(temp, sens ,3)
gyro_0_params['TC_G0_X3_0'] = coef_gyro_0_x[0] gyro_0_params['TC_G0_X3_0'] = coef_gyro_0_x[0]
gyro_0_params['TC_G0_X2_0'] = coef_gyro_0_x[1] gyro_0_params['TC_G0_X2_0'] = coef_gyro_0_x[1]
@@ -208,10 +200,10 @@ if num_gyros >= 1 and not math.isnan(sensor_gyro_0['temperature'][0]):
# fit Y axis # fit Y axis
if noResample: if noResample:
coef_gyro_0_y = np.polyfit(temp_rel, sensor_gyro_0['y'], 3) coef_gyro_0_y = np.polyfit(temp_rel,sensor_gyro_0['y'],3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_0['y']) temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_0['y'])
coef_gyro_0_y = np.polyfit(temp, sens, 3) coef_gyro_0_y = np.polyfit(temp, sens ,3)
gyro_0_params['TC_G0_X3_1'] = coef_gyro_0_y[0] gyro_0_params['TC_G0_X3_1'] = coef_gyro_0_y[0]
gyro_0_params['TC_G0_X2_1'] = coef_gyro_0_y[1] gyro_0_params['TC_G0_X2_1'] = coef_gyro_0_y[1]
@@ -222,9 +214,9 @@ if num_gyros >= 1 and not math.isnan(sensor_gyro_0['temperature'][0]):
# fit Z axis # fit Z axis
if noResample: if noResample:
coef_gyro_0_z = np.polyfit(temp_rel, sensor_gyro_0['z'],3) coef_gyro_0_z = np.polyfit(temp_rel,sensor_gyro_0['z'],3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel, sensor_gyro_0['z']) temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_0['z'])
coef_gyro_0_z = np.polyfit(temp, sens ,3) coef_gyro_0_z = np.polyfit(temp, sens ,3)
gyro_0_params['TC_G0_X3_2'] = coef_gyro_0_z[0] gyro_0_params['TC_G0_X3_2'] = coef_gyro_0_z[0]
@@ -300,10 +292,6 @@ if num_gyros >= 2 and not math.isnan(sensor_gyro_1['temperature'][0]):
temp_rel_resample = np.linspace(gyro_1_params['TC_G1_TMIN']-gyro_1_params['TC_G1_TREF'], gyro_1_params['TC_G1_TMAX']-gyro_1_params['TC_G1_TREF'], 100) temp_rel_resample = np.linspace(gyro_1_params['TC_G1_TMIN']-gyro_1_params['TC_G1_TREF'], gyro_1_params['TC_G1_TMAX']-gyro_1_params['TC_G1_TREF'], 100)
temp_resample = temp_rel_resample + gyro_1_params['TC_G1_TREF'] temp_resample = temp_rel_resample + gyro_1_params['TC_G1_TREF']
sensor_gyro_1['x'] = median_filter(sensor_gyro_1['x'])
sensor_gyro_1['y'] = median_filter(sensor_gyro_1['y'])
sensor_gyro_1['z'] = median_filter(sensor_gyro_1['z'])
# fit X axis # fit X axis
if noResample: if noResample:
coef_gyro_1_x = np.polyfit(temp_rel,sensor_gyro_1['x'],3) coef_gyro_1_x = np.polyfit(temp_rel,sensor_gyro_1['x'],3)
@@ -412,10 +400,6 @@ if num_gyros >= 3 and not math.isnan(sensor_gyro_2['temperature'][0]):
temp_rel_resample = np.linspace(gyro_2_params['TC_G2_TMIN']-gyro_2_params['TC_G2_TREF'], gyro_2_params['TC_G2_TMAX']-gyro_2_params['TC_G2_TREF'], 100) temp_rel_resample = np.linspace(gyro_2_params['TC_G2_TMIN']-gyro_2_params['TC_G2_TREF'], gyro_2_params['TC_G2_TMAX']-gyro_2_params['TC_G2_TREF'], 100)
temp_resample = temp_rel_resample + gyro_2_params['TC_G2_TREF'] temp_resample = temp_rel_resample + gyro_2_params['TC_G2_TREF']
sensor_gyro_2['x'] = median_filter(sensor_gyro_2['x'])
sensor_gyro_2['y'] = median_filter(sensor_gyro_2['y'])
sensor_gyro_2['z'] = median_filter(sensor_gyro_2['z'])
# fit X axis # fit X axis
if noResample: if noResample:
coef_gyro_2_x = np.polyfit(temp_rel,sensor_gyro_2['x'],3) coef_gyro_2_x = np.polyfit(temp_rel,sensor_gyro_2['x'],3)
@@ -432,10 +416,10 @@ if num_gyros >= 3 and not math.isnan(sensor_gyro_2['temperature'][0]):
# fit Y axis # fit Y axis
if noResample: if noResample:
coef_gyro_2_y = np.polyfit(temp_rel, sensor_gyro_2['y'], 3) coef_gyro_2_y = np.polyfit(temp_rel,sensor_gyro_2['y'],3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel, sensor_gyro_2['y']) temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_2['y'])
coef_gyro_2_y = np.polyfit(temp, sens, 3) coef_gyro_2_y = np.polyfit(temp, sens ,3)
gyro_2_params['TC_G2_X3_1'] = coef_gyro_2_y[0] gyro_2_params['TC_G2_X3_1'] = coef_gyro_2_y[0]
gyro_2_params['TC_G2_X2_1'] = coef_gyro_2_y[1] gyro_2_params['TC_G2_X2_1'] = coef_gyro_2_y[1]
@@ -446,10 +430,10 @@ if num_gyros >= 3 and not math.isnan(sensor_gyro_2['temperature'][0]):
# fit Z axis # fit Z axis
if noResample: if noResample:
coef_gyro_2_z = np.polyfit(temp_rel,sensor_gyro_2['z'], 3) coef_gyro_2_z = np.polyfit(temp_rel,sensor_gyro_2['z'],3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_2['z']) temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_2['z'])
coef_gyro_2_z = np.polyfit(temp, sens, 3) coef_gyro_2_z = np.polyfit(temp, sens ,3)
gyro_2_params['TC_G2_X3_2'] = coef_gyro_2_z[0] gyro_2_params['TC_G2_X3_2'] = coef_gyro_2_z[0]
gyro_2_params['TC_G2_X2_2'] = coef_gyro_2_z[1] gyro_2_params['TC_G2_X2_2'] = coef_gyro_2_z[1]
@@ -524,12 +508,8 @@ if num_gyros >= 4 and not math.isnan(sensor_gyro_3['temperature'][0]):
temp_rel_resample = np.linspace(gyro_3_params['TC_G3_TMIN']-gyro_3_params['TC_G3_TREF'], gyro_3_params['TC_G3_TMAX']-gyro_3_params['TC_G3_TREF'], 100) temp_rel_resample = np.linspace(gyro_3_params['TC_G3_TMIN']-gyro_3_params['TC_G3_TREF'], gyro_3_params['TC_G3_TMAX']-gyro_3_params['TC_G3_TREF'], 100)
temp_resample = temp_rel_resample + gyro_3_params['TC_G3_TREF'] temp_resample = temp_rel_resample + gyro_3_params['TC_G3_TREF']
sensor_gyro_3['x'] = median_filter(sensor_gyro_3['x'])
sensor_gyro_3['y'] = median_filter(sensor_gyro_3['y'])
sensor_gyro_3['z'] = median_filter(sensor_gyro_3['z'])
# fit X axis # fit X axis
coef_gyro_3_x = np.polyfit(temp_rel,sensor_gyro_3['x'], 3) coef_gyro_3_x = np.polyfit(temp_rel,sensor_gyro_3['x'],3)
gyro_3_params['TC_G3_X3_0'] = coef_gyro_3_x[0] gyro_3_params['TC_G3_X3_0'] = coef_gyro_3_x[0]
gyro_3_params['TC_G3_X2_0'] = coef_gyro_3_x[1] gyro_3_params['TC_G3_X2_0'] = coef_gyro_3_x[1]
gyro_3_params['TC_G3_X1_0'] = coef_gyro_3_x[2] gyro_3_params['TC_G3_X1_0'] = coef_gyro_3_x[2]
@@ -538,7 +518,7 @@ if num_gyros >= 4 and not math.isnan(sensor_gyro_3['temperature'][0]):
gyro_3_x_resample = fit_coef_gyro_3_x(temp_rel_resample) gyro_3_x_resample = fit_coef_gyro_3_x(temp_rel_resample)
# fit Y axis # fit Y axis
coef_gyro_3_y = np.polyfit(temp_rel,sensor_gyro_3['y'], 3) coef_gyro_3_y = np.polyfit(temp_rel,sensor_gyro_3['y'],3)
gyro_3_params['TC_G3_X3_1'] = coef_gyro_3_y[0] gyro_3_params['TC_G3_X3_1'] = coef_gyro_3_y[0]
gyro_3_params['TC_G3_X2_1'] = coef_gyro_3_y[1] gyro_3_params['TC_G3_X2_1'] = coef_gyro_3_y[1]
gyro_3_params['TC_G3_X1_1'] = coef_gyro_3_y[2] gyro_3_params['TC_G3_X1_1'] = coef_gyro_3_y[2]
@@ -547,7 +527,7 @@ if num_gyros >= 4 and not math.isnan(sensor_gyro_3['temperature'][0]):
gyro_3_y_resample = fit_coef_gyro_3_y(temp_rel_resample) gyro_3_y_resample = fit_coef_gyro_3_y(temp_rel_resample)
# fit Z axis # fit Z axis
coef_gyro_3_z = np.polyfit(temp_rel,sensor_gyro_3['z'], 3) coef_gyro_3_z = np.polyfit(temp_rel,sensor_gyro_3['z'],3)
gyro_3_params['TC_G3_X3_2'] = coef_gyro_3_z[0] gyro_3_params['TC_G3_X3_2'] = coef_gyro_3_z[0]
gyro_3_params['TC_G3_X2_2'] = coef_gyro_3_z[1] gyro_3_params['TC_G3_X2_2'] = coef_gyro_3_z[1]
gyro_3_params['TC_G3_X1_2'] = coef_gyro_3_z[2] gyro_3_params['TC_G3_X1_2'] = coef_gyro_3_z[2]
@@ -560,8 +540,8 @@ if num_gyros >= 4 and not math.isnan(sensor_gyro_3['temperature'][0]):
# draw plots # draw plots
plt.subplot(3,1,1) plt.subplot(3,1,1)
plt.plot(sensor_gyro_3['temperature'],sensor_gyro_3['x'], 'b') plt.plot(sensor_gyro_3['temperature'],sensor_gyro_3['x'],'b')
plt.plot(temp_resample,gyro_3_x_resample, 'r') plt.plot(temp_resample,gyro_3_x_resample,'r')
plt.title('Gyro 2 ({}) Bias vs Temperature'.format(gyro_3_params['TC_G3_ID'])) plt.title('Gyro 2 ({}) Bias vs Temperature'.format(gyro_3_params['TC_G3_ID']))
plt.ylabel('X bias (rad/s)') plt.ylabel('X bias (rad/s)')
plt.xlabel('temperature (degC)') plt.xlabel('temperature (degC)')
@@ -621,17 +601,13 @@ if num_accels >= 1 and not math.isnan(sensor_accel_0['temperature'][0]):
temp_rel_resample = np.linspace(accel_0_params['TC_A0_TMIN']-accel_0_params['TC_A0_TREF'], accel_0_params['TC_A0_TMAX']-accel_0_params['TC_A0_TREF'], 100) temp_rel_resample = np.linspace(accel_0_params['TC_A0_TMIN']-accel_0_params['TC_A0_TREF'], accel_0_params['TC_A0_TMAX']-accel_0_params['TC_A0_TREF'], 100)
temp_resample = temp_rel_resample + accel_0_params['TC_A0_TREF'] temp_resample = temp_rel_resample + accel_0_params['TC_A0_TREF']
sensor_accel_0['x'] = median_filter(sensor_accel_0['x'])
sensor_accel_0['y'] = median_filter(sensor_accel_0['y'])
sensor_accel_0['z'] = median_filter(sensor_accel_0['z'])
# fit X axis # fit X axis
correction_x = sensor_accel_0['x'] - np.median(sensor_accel_0['x']) correction_x = sensor_accel_0['x'] - np.median(sensor_accel_0['x'])
if noResample: if noResample:
coef_accel_0_x = np.polyfit(temp_rel,correction_x, 3) coef_accel_0_x = np.polyfit(temp_rel,correction_x,3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel,correction_x) temp, sens = resampleWithDeltaX(temp_rel,correction_x)
coef_accel_0_x = np.polyfit(temp, sens, 3) coef_accel_0_x = np.polyfit(temp, sens ,3)
accel_0_params['TC_A0_X3_0'] = coef_accel_0_x[0] accel_0_params['TC_A0_X3_0'] = coef_accel_0_x[0]
accel_0_params['TC_A0_X2_0'] = coef_accel_0_x[1] accel_0_params['TC_A0_X2_0'] = coef_accel_0_x[1]
@@ -641,12 +617,12 @@ if num_accels >= 1 and not math.isnan(sensor_accel_0['temperature'][0]):
correction_x_resample = fit_coef_accel_0_x(temp_rel_resample) correction_x_resample = fit_coef_accel_0_x(temp_rel_resample)
# fit Y axis # fit Y axis
correction_y = sensor_accel_0['y'] - np.median(sensor_accel_0['y']) correction_y = sensor_accel_0['y']-np.median(sensor_accel_0['y'])
if noResample: if noResample:
coef_accel_0_y = np.polyfit(temp_rel, correction_y, 3) coef_accel_0_y = np.polyfit(temp_rel,correction_y,3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel,correction_y) temp, sens = resampleWithDeltaX(temp_rel,correction_y)
coef_accel_0_y = np.polyfit(temp, sens, 3) coef_accel_0_y = np.polyfit(temp, sens ,3)
accel_0_params['TC_A0_X3_1'] = coef_accel_0_y[0] accel_0_params['TC_A0_X3_1'] = coef_accel_0_y[0]
accel_0_params['TC_A0_X2_1'] = coef_accel_0_y[1] accel_0_params['TC_A0_X2_1'] = coef_accel_0_y[1]
@@ -656,12 +632,12 @@ if num_accels >= 1 and not math.isnan(sensor_accel_0['temperature'][0]):
correction_y_resample = fit_coef_accel_0_y(temp_rel_resample) correction_y_resample = fit_coef_accel_0_y(temp_rel_resample)
# fit Z axis # fit Z axis
correction_z = sensor_accel_0['z'] - np.median(sensor_accel_0['z']) correction_z = sensor_accel_0['z']-np.median(sensor_accel_0['z'])
if noResample: if noResample:
coef_accel_0_z = np.polyfit(temp_rel,correction_z, 3) coef_accel_0_z = np.polyfit(temp_rel,correction_z,3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel,correction_z) temp, sens = resampleWithDeltaX(temp_rel,correction_z)
coef_accel_0_z = np.polyfit(temp, sens, 3) coef_accel_0_z = np.polyfit(temp, sens ,3)
accel_0_params['TC_A0_X3_2'] = coef_accel_0_z[0] accel_0_params['TC_A0_X3_2'] = coef_accel_0_z[0]
accel_0_params['TC_A0_X2_2'] = coef_accel_0_z[1] accel_0_params['TC_A0_X2_2'] = coef_accel_0_z[1]
@@ -736,17 +712,13 @@ if num_accels >= 2 and not math.isnan(sensor_accel_1['temperature'][0]):
temp_rel_resample = np.linspace(accel_1_params['TC_A1_TMIN']-accel_1_params['TC_A1_TREF'], accel_1_params['TC_A1_TMAX']-accel_1_params['TC_A1_TREF'], 100) temp_rel_resample = np.linspace(accel_1_params['TC_A1_TMIN']-accel_1_params['TC_A1_TREF'], accel_1_params['TC_A1_TMAX']-accel_1_params['TC_A1_TREF'], 100)
temp_resample = temp_rel_resample + accel_1_params['TC_A1_TREF'] temp_resample = temp_rel_resample + accel_1_params['TC_A1_TREF']
sensor_accel_1['x'] = median_filter(sensor_accel_1['x'])
sensor_accel_1['y'] = median_filter(sensor_accel_1['y'])
sensor_accel_1['z'] = median_filter(sensor_accel_1['z'])
# fit X axis # fit X axis
correction_x = sensor_accel_1['x'] - np.median(sensor_accel_1['x']) correction_x = sensor_accel_1['x']-np.median(sensor_accel_1['x'])
if noResample: if noResample:
coef_accel_1_x = np.polyfit(temp_rel, correction_x, 3) coef_accel_1_x = np.polyfit(temp_rel,correction_x,3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel, correction_x) temp, sens = resampleWithDeltaX(temp_rel,correction_x)
coef_accel_1_x = np.polyfit(temp, sens, 3) coef_accel_1_x = np.polyfit(temp, sens ,3)
accel_1_params['TC_A1_X3_0'] = coef_accel_1_x[0] accel_1_params['TC_A1_X3_0'] = coef_accel_1_x[0]
accel_1_params['TC_A1_X2_0'] = coef_accel_1_x[1] accel_1_params['TC_A1_X2_0'] = coef_accel_1_x[1]
@@ -756,7 +728,7 @@ if num_accels >= 2 and not math.isnan(sensor_accel_1['temperature'][0]):
correction_x_resample = fit_coef_accel_1_x(temp_rel_resample) correction_x_resample = fit_coef_accel_1_x(temp_rel_resample)
# fit Y axis # fit Y axis
correction_y = sensor_accel_1['y'] - np.median(sensor_accel_1['y']) correction_y = sensor_accel_1['y']-np.median(sensor_accel_1['y'])
if noResample: if noResample:
coef_accel_1_y = np.polyfit(temp_rel,correction_y,3) coef_accel_1_y = np.polyfit(temp_rel,correction_y,3)
else: else:
@@ -771,12 +743,12 @@ if num_accels >= 2 and not math.isnan(sensor_accel_1['temperature'][0]):
correction_y_resample = fit_coef_accel_1_y(temp_rel_resample) correction_y_resample = fit_coef_accel_1_y(temp_rel_resample)
# fit Z axis # fit Z axis
correction_z = sensor_accel_1['z'] - np.median(sensor_accel_1['z']) correction_z = (sensor_accel_1['z'])-np.median(sensor_accel_1['z'])
if noResample: if noResample:
coef_accel_1_z = np.polyfit(temp_rel,correction_z, 3) coef_accel_1_z = np.polyfit(temp_rel,correction_z,3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel,correction_z) temp, sens = resampleWithDeltaX(temp_rel,correction_z)
coef_accel_1_z = np.polyfit(temp, sens, 3) coef_accel_1_z = np.polyfit(temp, sens ,3)
accel_1_params['TC_A1_X3_2'] = coef_accel_1_z[0] accel_1_params['TC_A1_X3_2'] = coef_accel_1_z[0]
accel_1_params['TC_A1_X2_2'] = coef_accel_1_z[1] accel_1_params['TC_A1_X2_2'] = coef_accel_1_z[1]
@@ -852,17 +824,13 @@ if num_accels >= 3 and not math.isnan(sensor_accel_2['temperature'][0]):
temp_rel_resample = np.linspace(accel_2_params['TC_A2_TMIN']-accel_2_params['TC_A2_TREF'], accel_2_params['TC_A2_TMAX']-accel_2_params['TC_A2_TREF'], 100) temp_rel_resample = np.linspace(accel_2_params['TC_A2_TMIN']-accel_2_params['TC_A2_TREF'], accel_2_params['TC_A2_TMAX']-accel_2_params['TC_A2_TREF'], 100)
temp_resample = temp_rel_resample + accel_2_params['TC_A2_TREF'] temp_resample = temp_rel_resample + accel_2_params['TC_A2_TREF']
sensor_accel_2['x'] = median_filter(sensor_accel_2['x'])
sensor_accel_2['y'] = median_filter(sensor_accel_2['y'])
sensor_accel_2['z'] = median_filter(sensor_accel_2['z'])
# fit X axis # fit X axis
correction_x = sensor_accel_2['x'] - np.median(sensor_accel_2['x']) correction_x = sensor_accel_2['x']-np.median(sensor_accel_2['x'])
if noResample: if noResample:
coef_accel_2_x = np.polyfit(temp_rel,correction_x, 3) coef_accel_2_x = np.polyfit(temp_rel,correction_x,3)
else: else:
temp, sens = resampleWithDeltaX(temp_rel, correction_x) temp, sens = resampleWithDeltaX(temp_rel,correction_x)
coef_accel_2_x = np.polyfit(temp, sens, 3) coef_accel_2_x = np.polyfit(temp, sens ,3)
accel_2_params['TC_A2_X3_0'] = coef_accel_2_x[0] accel_2_params['TC_A2_X3_0'] = coef_accel_2_x[0]
accel_2_params['TC_A2_X2_0'] = coef_accel_2_x[1] accel_2_params['TC_A2_X2_0'] = coef_accel_2_x[1]
@@ -872,7 +840,7 @@ if num_accels >= 3 and not math.isnan(sensor_accel_2['temperature'][0]):
correction_x_resample = fit_coef_accel_2_x(temp_rel_resample) correction_x_resample = fit_coef_accel_2_x(temp_rel_resample)
# fit Y axis # fit Y axis
correction_y = sensor_accel_2['y'] - np.median(sensor_accel_2['y']) correction_y = sensor_accel_2['y']-np.median(sensor_accel_2['y'])
if noResample: if noResample:
coef_accel_2_y = np.polyfit(temp_rel,correction_y,3) coef_accel_2_y = np.polyfit(temp_rel,correction_y,3)
else: else:
@@ -887,7 +855,7 @@ if num_accels >= 3 and not math.isnan(sensor_accel_2['temperature'][0]):
correction_y_resample = fit_coef_accel_2_y(temp_rel_resample) correction_y_resample = fit_coef_accel_2_y(temp_rel_resample)
# fit Z axis # fit Z axis
correction_z = sensor_accel_2['z'] - np.median(sensor_accel_2['z']) correction_z = sensor_accel_2['z']-np.median(sensor_accel_2['z'])
if noResample: if noResample:
coef_accel_2_z = np.polyfit(temp_rel,correction_z,3) coef_accel_2_z = np.polyfit(temp_rel,correction_z,3)
else: else:
@@ -967,13 +935,9 @@ if num_accels >= 4 and not math.isnan(sensor_accel_3['temperature'][0]):
temp_rel_resample = np.linspace(accel_3_params['TC_A3_TMIN']-accel_3_params['TC_A3_TREF'], accel_3_params['TC_A3_TMAX']-accel_3_params['TC_A3_TREF'], 100) temp_rel_resample = np.linspace(accel_3_params['TC_A3_TMIN']-accel_3_params['TC_A3_TREF'], accel_3_params['TC_A3_TMAX']-accel_3_params['TC_A3_TREF'], 100)
temp_resample = temp_rel_resample + accel_3_params['TC_A3_TREF'] temp_resample = temp_rel_resample + accel_3_params['TC_A3_TREF']
sensor_accel_3['x'] = median_filter(sensor_accel_3['x'])
sensor_accel_3['y'] = median_filter(sensor_accel_3['y'])
sensor_accel_3['z'] = median_filter(sensor_accel_3['z'])
# fit X axis # fit X axis
correction_x = sensor_accel_3['x'] - np.median(sensor_accel_3['x']) correction_x = sensor_accel_3['x']-np.median(sensor_accel_3['x'])
coef_accel_3_x = np.polyfit(temp_rel, correction_x, 3) coef_accel_3_x = np.polyfit(temp_rel,correction_x,3)
accel_3_params['TC_A3_X3_0'] = coef_accel_3_x[0] accel_3_params['TC_A3_X3_0'] = coef_accel_3_x[0]
accel_3_params['TC_A3_X2_0'] = coef_accel_3_x[1] accel_3_params['TC_A3_X2_0'] = coef_accel_3_x[1]
accel_3_params['TC_A3_X1_0'] = coef_accel_3_x[2] accel_3_params['TC_A3_X1_0'] = coef_accel_3_x[2]
@@ -982,8 +946,8 @@ if num_accels >= 4 and not math.isnan(sensor_accel_3['temperature'][0]):
correction_x_resample = fit_coef_accel_3_x(temp_rel_resample) correction_x_resample = fit_coef_accel_3_x(temp_rel_resample)
# fit Y axis # fit Y axis
correction_y = sensor_accel_3['y'] - np.median(sensor_accel_3['y']) correction_y = sensor_accel_3['y']-np.median(sensor_accel_3['y'])
coef_accel_3_y = np.polyfit(temp_rel, correction_y, 3) coef_accel_3_y = np.polyfit(temp_rel,correction_y,3)
accel_3_params['TC_A3_X3_1'] = coef_accel_3_y[0] accel_3_params['TC_A3_X3_1'] = coef_accel_3_y[0]
accel_3_params['TC_A3_X2_1'] = coef_accel_3_y[1] accel_3_params['TC_A3_X2_1'] = coef_accel_3_y[1]
accel_3_params['TC_A3_X1_1'] = coef_accel_3_y[2] accel_3_params['TC_A3_X1_1'] = coef_accel_3_y[2]
@@ -992,8 +956,8 @@ if num_accels >= 4 and not math.isnan(sensor_accel_3['temperature'][0]):
correction_y_resample = fit_coef_accel_3_y(temp_rel_resample) correction_y_resample = fit_coef_accel_3_y(temp_rel_resample)
# fit Z axis # fit Z axis
correction_z = sensor_accel_3['z'] - np.median(sensor_accel_3['z']) correction_z = sensor_accel_3['z']-np.median(sensor_accel_3['z'])
coef_accel_3_z = np.polyfit(temp_rel, correction_z, 3) coef_accel_3_z = np.polyfit(temp_rel,correction_z,3)
accel_3_params['TC_A3_X3_2'] = coef_accel_3_z[0] accel_3_params['TC_A3_X3_2'] = coef_accel_3_z[0]
accel_3_params['TC_A3_X2_2'] = coef_accel_3_z[1] accel_3_params['TC_A3_X2_2'] = coef_accel_3_z[1]
accel_3_params['TC_A3_X1_2'] = coef_accel_3_z[2] accel_3_params['TC_A3_X1_2'] = coef_accel_3_z[2]
@@ -1060,10 +1024,8 @@ temp_rel = sensor_baro_0['temperature'] - baro_0_params['TC_B0_TREF']
temp_rel_resample = np.linspace(baro_0_params['TC_B0_TMIN']-baro_0_params['TC_B0_TREF'], baro_0_params['TC_B0_TMAX']-baro_0_params['TC_B0_TREF'], 100) temp_rel_resample = np.linspace(baro_0_params['TC_B0_TMIN']-baro_0_params['TC_B0_TREF'], baro_0_params['TC_B0_TMAX']-baro_0_params['TC_B0_TREF'], 100)
temp_resample = temp_rel_resample + baro_0_params['TC_B0_TREF'] temp_resample = temp_rel_resample + baro_0_params['TC_B0_TREF']
sensor_baro_0['pressure'] = median_filter(sensor_baro_0['pressure'])
# fit data # fit data
median_pressure = np.median(sensor_baro_0['pressure']) median_pressure = np.median(sensor_baro_0['pressure']);
if noResample: if noResample:
coef_baro_0_x = np.polyfit(temp_rel,100*(sensor_baro_0['pressure']-median_pressure),5) # convert from hPa to Pa coef_baro_0_x = np.polyfit(temp_rel,100*(sensor_baro_0['pressure']-median_pressure),5) # convert from hPa to Pa
else: else:
@@ -1119,10 +1081,8 @@ if num_baros >= 2:
temp_rel_resample = np.linspace(baro_1_params['TC_B1_TMIN']-baro_1_params['TC_B1_TREF'], baro_1_params['TC_B1_TMAX']-baro_1_params['TC_B1_TREF'], 100) temp_rel_resample = np.linspace(baro_1_params['TC_B1_TMIN']-baro_1_params['TC_B1_TREF'], baro_1_params['TC_B1_TMAX']-baro_1_params['TC_B1_TREF'], 100)
temp_resample = temp_rel_resample + baro_1_params['TC_B1_TREF'] temp_resample = temp_rel_resample + baro_1_params['TC_B1_TREF']
sensor_baro_1['pressure'] = median_filter(sensor_baro_1['pressure'])
# fit data # fit data
median_pressure = np.median(sensor_baro_1['pressure']) median_pressure = np.median(sensor_baro_1['pressure']);
if noResample: if noResample:
coef_baro_1_x = np.polyfit(temp_rel,100*(sensor_baro_1['pressure']-median_pressure),5) # convert from hPa to Pa coef_baro_1_x = np.polyfit(temp_rel,100*(sensor_baro_1['pressure']-median_pressure),5) # convert from hPa to Pa
else: else:
@@ -1179,10 +1139,8 @@ if num_baros >= 3:
temp_rel_resample = np.linspace(baro_2_params['TC_B2_TMIN']-baro_2_params['TC_B2_TREF'], baro_2_params['TC_B2_TMAX']-baro_2_params['TC_B2_TREF'], 100) temp_rel_resample = np.linspace(baro_2_params['TC_B2_TMIN']-baro_2_params['TC_B2_TREF'], baro_2_params['TC_B2_TMAX']-baro_2_params['TC_B2_TREF'], 100)
temp_resample = temp_rel_resample + baro_2_params['TC_B2_TREF'] temp_resample = temp_rel_resample + baro_2_params['TC_B2_TREF']
sensor_baro_2['pressure'] = median_filter(sensor_baro_2['pressure'])
# fit data # fit data
median_pressure = np.median(sensor_baro_2['pressure']) median_pressure = np.median(sensor_baro_2['pressure']);
if noResample: if noResample:
coef_baro_2_x = np.polyfit(temp_rel,100*(sensor_baro_2['pressure']-median_pressure),5) # convert from hPa to Pa coef_baro_2_x = np.polyfit(temp_rel,100*(sensor_baro_2['pressure']-median_pressure),5) # convert from hPa to Pa
else: else:
@@ -1239,8 +1197,6 @@ if num_baros >= 4:
temp_rel_resample = np.linspace(baro_3_params['TC_B3_TMIN']-baro_3_params['TC_B3_TREF'], baro_3_params['TC_B3_TMAX']-baro_3_params['TC_B3_TREF'], 100) temp_rel_resample = np.linspace(baro_3_params['TC_B3_TMIN']-baro_3_params['TC_B3_TREF'], baro_3_params['TC_B3_TMAX']-baro_3_params['TC_B3_TREF'], 100)
temp_resample = temp_rel_resample + baro_3_params['TC_B3_TREF'] temp_resample = temp_rel_resample + baro_3_params['TC_B3_TREF']
sensor_baro_3['pressure'] = median_filter(sensor_baro_3['pressure'])
# fit data # fit data
median_pressure = np.median(sensor_baro_3['pressure']) median_pressure = np.median(sensor_baro_3['pressure'])
coef_baro_3_x = np.polyfit(temp_rel,100*(sensor_baro_3['pressure']-median_pressure),5) # convert from hPa to Pa coef_baro_3_x = np.polyfit(temp_rel,100*(sensor_baro_3['pressure']-median_pressure),5) # convert from hPa to Pa
-2
View File
@@ -98,8 +98,6 @@ class ParameterGroup(object):
return "Boat" return "Boat"
elif (self.name == "Balloon"): elif (self.name == "Balloon"):
return "Balloon" return "Balloon"
elif (self.name == "Vectored 6 DOF UUV"):
return "Vectored6DofUUV"
return "AirframeUnknown" return "AirframeUnknown"
def GetParams(self): def GetParams(self):
+81 -6
View File
@@ -190,6 +190,7 @@ if rc_serial_output_dir is None and serial_params_output_file is None:
serial_commands = [] serial_commands = []
ethernet_configuration = [] ethernet_configuration = []
additional_params = "" additional_params = ""
additional_ethernet_params = ""
if ethernet_supported: if ethernet_supported:
ethernet_configuration.append({ ethernet_configuration.append({
@@ -210,7 +211,7 @@ def parse_yaml_serial_config(yaml_config):
ret.append(serial_config) ret.append(serial_config)
return ret return ret
def parse_yaml_parameters_config(yaml_config, ethernet_supported): def parse_yaml_parameters_config(yaml_config):
""" parse the parameters section from the yaml config file """ """ parse the parameters section from the yaml config file """
if 'parameters' not in yaml_config: if 'parameters' not in yaml_config:
return '' return ''
@@ -223,7 +224,79 @@ def parse_yaml_parameters_config(yaml_config, ethernet_supported):
param_group = parameters_section.get('group', None) param_group = parameters_section.get('group', None)
for param_name in definitions: for param_name in definitions:
param = definitions[param_name] param = definitions[param_name]
if param.get('requires_ethernet', False) and not ethernet_supported: if 'ethernet' in param:
continue
num_instances = param.get('num_instances', 1)
instance_start = param.get('instance_start', 0) # offset
# get the type and extract all tags
tags = '@group {:}'.format(param_group)
if param['type'] == 'enum':
param_type = 'INT32'
for key in param['values']:
tags += '\n * @value {:} {:}'.format(key, param['values'][key])
elif param['type'] == 'boolean':
param_type = 'INT32'
tags += '\n * @boolean'
elif param['type'] == 'int32':
param_type = 'INT32'
elif param['type'] == 'float':
param_type = 'FLOAT'
else:
raise Exception("unknown param type {:}".format(param['type']))
for tag in ['decimal', 'increment', 'category', 'volatile', 'bit',
'min', 'max', 'unit', 'reboot_required']:
if tag in param:
tags += '\n * @{:} {:}'.format(tag, param[tag])
for i in range(num_instances):
# default value
default_value = 0
if 'default' in param:
# default can be a list of num_instances or a single value
if type(param['default']) == list:
assert len(param['default']) == num_instances
default_value = param['default'][i]
else:
default_value = param['default']
if type(default_value) == bool:
default_value = int(default_value)
# output the existing C-style format
ret += '''
/**
* {short_descr}
*
* {long_descr}
*
* {tags}
*/
PARAM_DEFINE_{param_type}({name}, {default_value});
'''.format(short_descr=param['description']['short'].replace("\n", "\n * "),
long_descr=param['description']['long'].replace("\n", "\n * "),
tags=tags,
param_type=param_type,
name=param_name,
default_value=default_value,
).replace('${i}', str(i+instance_start))
return ret
def parse_yaml_ethernet_parameters_config(yaml_config):
""" parse the parameters section from the yaml config file """
if 'parameters' not in yaml_config:
return ''
parameters_section_list = yaml_config['parameters']
for parameters_section in parameters_section_list:
if 'definitions' not in parameters_section:
return ''
definitions = parameters_section['definitions']
ret = ''
param_group = parameters_section.get('group', None)
for param_name in definitions:
param = definitions[param_name]
if 'ethernet' not in param:
continue continue
num_instances = param.get('num_instances', 1) num_instances = param.get('num_instances', 1)
instance_start = param.get('instance_start', 0) # offset instance_start = param.get('instance_start', 0) # offset
@@ -289,8 +362,9 @@ for yaml_file in args.config_files:
serial_commands.extend(parse_yaml_serial_config(yaml_config)) serial_commands.extend(parse_yaml_serial_config(yaml_config))
# TODO: additional params should be parsed in a separate script # TODO: additional params should be parsed in a separate script
additional_params += parse_yaml_parameters_config( additional_params += parse_yaml_parameters_config(yaml_config)
yaml_config, ethernet_supported) if ethernet_supported:
additional_ethernet_params += parse_yaml_ethernet_parameters_config(yaml_config)
except yaml.YAMLError as exc: except yaml.YAMLError as exc:
print(exc) print(exc)
@@ -355,7 +429,7 @@ for serial_command in serial_commands:
'default_port': default_port, 'default_port': default_port,
'param_group': port_config['group'], 'param_group': port_config['group'],
'description_extended': port_config.get('description_extended', ''), 'description_extended': port_config.get('description_extended', ''),
'supports_networking': serial_command.get('supports_networking', False) 'ethernet_config': serial_command.get('ethernet', 'none')
}) })
if verbose: if verbose:
@@ -399,5 +473,6 @@ if serial_params_output_file is not None:
fid.write(template.render(serial_devices=serial_devices, fid.write(template.render(serial_devices=serial_devices,
ethernet_configuration=ethernet_configuration, ethernet_configuration=ethernet_configuration,
commands=commands, serial_ports=serial_ports, commands=commands, serial_ports=serial_ports,
additional_definitions=additional_params)) additional_definitions=additional_params,
additional_ethernet_definitions=additional_ethernet_params))
+1 -1
View File
@@ -17,9 +17,9 @@ if param compare "$PRT" {{ serial_device.index }}; then
fi fi
{% endfor %} {% endfor %}
{% for config in ethernet_configuration -%} {% for config in ethernet_configuration -%}
if param compare "$PRT" {{ config.index }}; then if param compare "$PRT" {{ config.index }}; then
set SERIAL_DEV ethernet set SERIAL_DEV ethernet
fi fi
{% endfor %} {% endfor %}
+4 -3
View File
@@ -58,11 +58,10 @@ PARAM_DEFINE_INT32(SER_{{ serial_device.tag }}_BAUD, {{ serial_device.default_ba
{%- for serial_device in serial_devices %} {%- for serial_device in serial_devices %}
* @value {{ serial_device.index }} {{ serial_device.label }} * @value {{ serial_device.index }} {{ serial_device.label }}
{%- endfor %} {%- endfor %}
{%- if command.supports_networking %} {%- if command.ethernet_config != "none" %}
{%- for config in ethernet_configuration %} {%- for config in ethernet_configuration %}
* @value {{ config.index }} {{ config.label }} * @value {{ config.index }} {{ config.label }}
{%- endfor %} {%- endfor %}{% endif %}
{%- endif %}
* @group {{ command.param_group }} * @group {{ command.param_group }}
* @reboot_required true * @reboot_required true
*/ */
@@ -73,3 +72,5 @@ PARAM_DEFINE_INT32({{ command.port_param_name }}, {{ command.default_port }});
{{ additional_definitions }} {{ additional_definitions }}
{{ additional_ethernet_definitions }}
-11
View File
@@ -1,11 +0,0 @@
.PHONY: docker_build docker_push all
DATE := $(shell date +%Y-%m-%d)
docker_build:
docker build -f Dockerfile -t px4-dev:${DATE} .
docker_push: build
docker push px4io/px4-dev:${DATE}
all: docker_build
Executable → Regular
+2 -1
View File
@@ -155,7 +155,8 @@ if [[ $INSTALL_SIM == "true" ]]; then
# fix VMWare 3D graphics acceleration for gazebo # fix VMWare 3D graphics acceleration for gazebo
exportline="export SVGA_VGPU10=0" exportline="export SVGA_VGPU10=0"
if !grep -Fxq "$exportline" $HOME/.profile; then if grep -Fxq "$exportline" $HOME/.profile; then
else
echo $exportline >> $HOME/.profile; echo $exportline >> $HOME/.profile;
fi fi
fi fi
-27
View File
@@ -1,27 +0,0 @@
#!/bin/bash
# Start virtual X server in the background
# - DISPLAY default is :99, set in dockerfile
# - Users can override with `-e DISPLAY=` in `docker run` command to avoid
# running Xvfb and attach their screen
if [[ -x "$(command -v Xvfb)" && "$DISPLAY" == ":99" ]]; then
echo "Starting Xvfb"
Xvfb :99 -screen 0 1600x1200x24+32 &
fi
# Check if the ROS_DISTRO is passed and use it
# to source the ROS environment
if [ -n "${ROS_DISTRO}" ]; then
source "/opt/ros/$ROS_DISTRO/setup.bash"
fi
# Use the LOCAL_USER_ID if passed in at runtime
if [ -n "${LOCAL_USER_ID}" ]; then
echo "Starting with UID : $LOCAL_USER_ID"
# modify existing user's id
usermod -u $LOCAL_USER_ID user
# run as user
exec gosu user "$@"
else
exec "$@"
fi
+1 -1
View File
@@ -45,7 +45,7 @@ fi
# Python dependencies # Python dependencies
echo "Installing PX4 Python3 dependencies" echo "Installing PX4 Python3 dependencies"
python3 -m pip install --user -r ${DIR}/requirements.txt pip3 install --user -r ${DIR}/requirements.txt
# Optional, but recommended additional simulation tools: # Optional, but recommended additional simulation tools:
if [[ $INSTALL_SIM == "--sim-tools" ]]; then if [[ $INSTALL_SIM == "--sim-tools" ]]; then
+4 -6
View File
@@ -1,26 +1,24 @@
argcomplete argcomplete
argparse argparse>=1.2
cerberus cerberus
coverage coverage
empy>=3.3 empy>=3.3
jinja2>=2.8 jinja2>=2.8
jsonschema
kconfiglib
matplotlib>=3.0.* matplotlib>=3.0.*
numpy>=1.13 numpy>=1.13
nunavut>=1.1.0 nunavut
packaging packaging
pandas>=0.21
pkgconfig pkgconfig
psutil psutil
pygments pygments
wheel>=0.31.1
pymavlink pymavlink
pyros-genmsg pyros-genmsg
pyserial>=3.0 pyserial>=3.0
pyulog>=0.5.0 pyulog>=0.5.0
pyyaml pyyaml
requests requests
serial
setuptools>=39.2.0 setuptools>=39.2.0
six>=1.12.0 six>=1.12.0
toml>=0.9 toml>=0.9
wheel>=0.31.1
+34 -31
View File
@@ -31,9 +31,10 @@ done
# detect if running in docker # detect if running in docker
if [ -f /.dockerenv ]; then if [ -f /.dockerenv ]; then
echo "Running within docker, installing initial dependencies"; echo "Running within docker, installing initial dependencies";
apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \ apt-get --quiet -y update && DEBIAN_FRONTEND=noninteractive apt-get --quiet -y install \
ca-certificates \ ca-certificates \
gosu \ gnupg \
lsb-core \
sudo \ sudo \
wget \ wget \
; ;
@@ -52,7 +53,7 @@ fi
# check ubuntu version # check ubuntu version
# otherwise warn and point to docker? # otherwise warn and point to docker?
UBUNTU_RELEASE=$(cat /etc/os-release | grep VERSION_ID | cut -d "\"" -f 2) UBUNTU_RELEASE="`lsb_release -rs`"
if [[ "${UBUNTU_RELEASE}" == "14.04" ]]; then if [[ "${UBUNTU_RELEASE}" == "14.04" ]]; then
echo "Ubuntu 14.04 is no longer supported" echo "Ubuntu 14.04 is no longer supported"
@@ -62,18 +63,16 @@ elif [[ "${UBUNTU_RELEASE}" == "16.04" ]]; then
exit 1 exit 1
elif [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then elif [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then
echo "Ubuntu 18.04" echo "Ubuntu 18.04"
elif [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then elif [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then
echo "Ubuntu 20.04" echo "Ubuntu 20.04"
fi fi
echo echo
echo "Installing PX4 general dependencies" echo "Installing PX4 general dependencies"
sudo apt-get -qq update sudo apt-get update -y --quiet
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \ sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
astyle \ astyle \
build-essential \ build-essential \
ccache \ ccache \
@@ -94,23 +93,20 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends instal
python3-wheel \ python3-wheel \
rsync \ rsync \
shellcheck \ shellcheck \
unzip \
zip \
; ;
if [[ "${UBUNTU_RELEASE}" == "16.04" ]]; then if [[ "${UBUNTU_RELEASE}" == "16.04" ]]; then
echo "Installing Ubuntu 16.04 PX4-compatible ccache version" echo "Installing Ubuntu 16.04 PX4-compatible ccache version"
wget -q -O /tmp/ccache_3.4.1-1_amd64.deb http://launchpadlibrarian.net/356662933/ccache_3.4.1-1_amd64.deb wget -O /tmp/ccache_3.4.1-1_amd64.deb http://launchpadlibrarian.net/356662933/ccache_3.4.1-1_amd64.deb
sudo dpkg -i /tmp/ccache_3.4.1-1_amd64.deb sudo dpkg -i /tmp/ccache_3.4.1-1_amd64.deb
fi fi
# Python3 dependencies # Python3 dependencies
echo echo
echo "Installing PX4 Python3 dependencies" echo "Installing PX4 Python3 dependencies"
if [ -f /.dockerenv ]; then python3 -m pip install --user -r ${DIR}/requirements.txt
# system wide for docker
python3 -m pip install -r ${DIR}/requirements.txt
else
python3 -m pip install --user --quiet -r ${DIR}/requirements.txt
fi
# NuttX toolchain (arm-none-eabi-gcc) # NuttX toolchain (arm-none-eabi-gcc)
if [[ $INSTALL_NUTTX == "true" ]]; then if [[ $INSTALL_NUTTX == "true" ]]; then
@@ -118,11 +114,17 @@ if [[ $INSTALL_NUTTX == "true" ]]; then
echo echo
echo "Installing NuttX dependencies" echo "Installing NuttX dependencies"
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \ sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
g++-multilib \ autoconf \
gcc-multilib \ automake \
bison \
bzip2 \
file \
flex \
gdb-multiarch \ gdb-multiarch \
genromfs \ gperf \
libncurses-dev \
libtool \
pkg-config \ pkg-config \
screen \ screen \
vim-common \ vim-common \
@@ -148,7 +150,7 @@ if [[ $INSTALL_NUTTX == "true" ]]; then
else else
echo "Installing arm-none-eabi-gcc-${NUTTX_GCC_VERSION}"; echo "Installing arm-none-eabi-gcc-${NUTTX_GCC_VERSION}";
wget -q -O /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/${NUTTX_GCC_VERSION_SHORT}/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-${INSTALL_ARCH}-linux.tar.bz2 && \ wget -O /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/${NUTTX_GCC_VERSION_SHORT}/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-${INSTALL_ARCH}-linux.tar.bz2 && \
sudo tar -jxf /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 -C /opt/; sudo tar -jxf /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 -C /opt/;
# add arm-none-eabi-gcc to user's PATH # add arm-none-eabi-gcc to user's PATH
@@ -169,36 +171,37 @@ if [[ $INSTALL_SIM == "true" ]]; then
echo "Installing PX4 simulation dependencies" echo "Installing PX4 simulation dependencies"
# General simulation dependencies # General simulation dependencies
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \ sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
bc \ bc \
; ;
if [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then if [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then
java_version=11
gazebo_version=9 gazebo_version=9
MAVSDK_VERSION=0.39.0
wget -q "https://github.com/mavlink/MAVSDK/releases/download/v${MAVSDK_VERSION}/mavsdk_{MAVSDK_VERSION})_ubuntu18.04_amd64.deb" -O /tmp/mavsdk.deb && sudo dpkg -i /tmp/mavsdk.deb
elif [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then elif [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then
java_version=14
gazebo_version=11 gazebo_version=11
MAVSDK_VERSION=0.39.0
wget -q "https://github.com/mavlink/MAVSDK/releases/download/v{MAVSDK_VERSION}/mavsdk_{MAVSDK_VERSION}_ubuntu20.04_amd64.deb" -O /tmp/mavsdk.deb && sudo dpkg -i /tmp/mavsdk.deb
else else
java_version=14
gazebo_version=11 gazebo_version=11
fi fi
# Java (jmavsim or fastrtps) # Java (jmavsim or fastrtps)
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \ sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
ant \ ant \
default-jre-headless \ openjdk-$java_version-jre \
default-jdk-headless \ openjdk-$java_version-jdk \
libvecmath-java \ libvecmath-java \
; ;
# Set Java 11 as default
sudo update-alternatives --set java $(update-alternatives --list java | grep "java-$java_version")
# Gazebo # Gazebo
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget -q http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
# Update list, since new gazebo-stable.list has been added # Update list, since new gazebo-stable.list has been added
sudo apt-get update -qq sudo apt-get update -y --quiet
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \ sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
dmidecode \ dmidecode \
gazebo$gazebo_version \ gazebo$gazebo_version \
gstreamer1.0-plugins-bad \ gstreamer1.0-plugins-bad \
+146 -146
View File
@@ -44,7 +44,7 @@ parser.add_argument('-m', '--modules', action='store',
default='') default='')
logging.basicConfig(level=logging.WARNING,format='%(message)s') logging.basicConfig(level=logging.WARNING)
log = logging.getLogger() log = logging.getLogger()
def get_N_colors(N, s=0.8, v=0.9): def get_N_colors(N, s=0.8, v=0.9):
@@ -61,9 +61,6 @@ class PubSub(object):
""" Collects either publication or subscription information for nodes """ Collects either publication or subscription information for nodes
(modules and topics) & edges """ (modules and topics) & edges """
# special value to signal an ambiguous was found -- don't record this topic, and stop processing.
AMBIGUOUS_SITE_TOPIC = "AMBIGUOUS"
def __init__(self, name, topic_blacklist, regexes): def __init__(self, name, topic_blacklist, regexes):
""" """
:param is_publication: if True, publications, False for :param is_publication: if True, publications, False for
@@ -77,12 +74,13 @@ class PubSub(object):
self._topic_blacklist = topic_blacklist self._topic_blacklist = topic_blacklist
self._regexes = set([ re.compile(regex) for regex in regexes]) self._regexes = set([ re.compile(regex) for regex in regexes])
def match(self, source_line: str) -> str: def match(self, source_line: str) -> Set[str]:
""" Extract subscribed/published topics from a source string """ Extract subscribed/published topics from a source string
:param src_str: string of C/C++ code with comments and whitespace removed :param src_str: string of C/C++ code with comments and whitespace removed
:return: if any topic was found, returned as a str. On error, raise on exception. On ambiguous line, return `AMBIGUOUS_SITE_TOPIC`. Otherwise, return `None` :return: if any topic was found, it is returned as a str. Otherwise, None
""" """
matches = set()
for regex in self._regexes: for regex in self._regexes:
# just the matches for this particular pattern: # just the matches for this particular pattern:
match = regex.search(source_line) match = regex.search(source_line)
@@ -90,10 +88,11 @@ class PubSub(object):
if match is None: if match is None:
continue continue
# # all regexes should contain 2 capture groups (or else this code block crashes) # all regexes should contain 2 capture groups
# total_match = match.group(0)
route_group, topic_group = match.groups() route_group, topic_group = match.groups()
log.debug(" ####:{}: {}, {}".format( self._name, route_group, topic_group)) log.debug(f" ####:{self._name}: {route_group}, {topic_group}")
# # TODO: handle this case... but not sure where, yet # # TODO: handle this case... but not sure where, yet
# if match == 'ORB_ID_VEHICLE_ATTITUDE_CONTROLS': # special case # if match == 'ORB_ID_VEHICLE_ATTITUDE_CONTROLS': # special case
@@ -103,31 +102,49 @@ class PubSub(object):
if route_group: if route_group:
if route_group == 'ORB_ID': if route_group == 'ORB_ID':
log.debug(" >>> Found ORB_ID topic: " + topic_group + " w/regex: " + str(regex.pattern)) log.debug(" >>> Found ORB_ID topic: " + topic_group + " w/regex: " + str(regex.pattern))
return self._filter_topic(topic_group) self._add_topic(matches, topic_group)
break
elif route_group == '<' and topic_group.endswith('_s'):
topic_group = topic_group[:-2]
log.debug(" >>> Found C++ template-declaration: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
# continue processing
elif route_group in ['{','('] and topic_group.endswith('_s'):
topic_group = topic_group[:-2]
log.debug(" >>> Found standard declaration: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
break
elif route_group == '[': elif route_group == '[':
if not topic_group: if topic_group.endswith('_s'):
log.debug(" !! found an ambiguous site => return an empty set") topic_group = topic_group[:-2]
return PubSub.AMBIGUOUS_SITE_TOPIC log.debug(" >>> Found array declaration: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
break
else:
# no topic found -- ambiguity -- return an empty set
return set()
elif 'Multi' in route_group and topic_group.endswith('_s'):
topic_group = topic_group[:-2]
log.debug(" >>> Found 'multi' declaration: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
break
else: else:
raise SyntaxError('!!! Encountered regex case: `route_group` contains unrecognized value!: '+ route_group+' (::'+str(regex.pattern)+')\n' raise SyntaxError('!!! Encountered regex case: `route_group` contains unrecognized value!: '+ route_group+' (::'+str(regex.pattern)+')\n'
+ " ("+ route_group+', '+topic_group +")\n" + " ("+ route_group+', '+topic_group +")\n"
+ " " + source_line) + " " + source_line)
elif route_group.empty() and topic_group.empty():
log.debug('!!! Found ambiguous site, without `ORB_ID` or topic (::'+str(regex.pattern))
return PubSub.AMBIGUOUS_SITE_TOPIC
else: else:
raise SyntaxError(" !!! unhandled case: unknown-variant: "+route_group+", " + topic_group + " ....from regex: " + str(regex.pattern)) raise SyntaxError(" !!! unhandled case: unknown-variant: "+route_group+", " + topic_group + " ....from regex: " + str(regex.pattern))
return None return matches
def _filter_topic(self, topic_name: str) -> str: def _add_topic(self, topic_set: Set[str], topic_name: str):
""" add topic to set, unless the topic is ignored """ """ add topic to set, unless the topic is ignored """
if topic_name in self._topic_blacklist: if topic_name in self._topic_blacklist:
log.debug(" XX Ignoring blacklisted topic " + topic_name) log.debug(" XX Ignoring blacklisted topic " + topic_name)
return None return
else: else:
return topic_name return topic_set.add(topic_name)
class Publications(PubSub): class Publications(PubSub):
""" Collects topic publication information for scopes """ """ Collects topic publication information for scopes """
@@ -172,7 +189,7 @@ class Scope(object):
return self._name return self._name
def reduce_ambiguities(self) -> Set[str]: def reduce_ambiguities(self) -> Set[str]:
self.ambiguities = self.ambiguities - self.subscriptions - self.publications self.ambiguities = self.ambiguities - self.subscriptions - self.ambiguities
return self.dependencies return self.dependencies
@property @property
@@ -208,8 +225,8 @@ class Graph(object):
- topic_blacklist - topic_blacklist
""" """
self._comment_remove_pattern = re.compile( r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"', re.DOTALL | re.MULTILINE)
self._whitespace_pattern = re.compile(r'\s+') self._whitespace_pattern = re.compile(r'\s+')
self._scope_blacklist = set(kwargs.get('scope_blacklist',set())) self._scope_blacklist = set(kwargs.get('scope_blacklist',set()))
self._scope_whitelist = set(kwargs.get('scope_whitelist',set())) self._scope_whitelist = set(kwargs.get('scope_whitelist',set()))
@@ -232,27 +249,28 @@ class Graph(object):
self._topic_colors = {} # key = topic, value = color (html string) self._topic_colors = {} # key = topic, value = color (html string)
# note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace # note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace
# note: the regexes should 2 capture groups '()' to correctly register with downstream code # note: the regexes should have at least 3 capture groups '()'; otherwise they break downstream code
capture_cases_sub = [r"orb_subscribe\w*\((ORB_ID)(?:\(|::)(\w+)", capture_cases_sub = [r"\borb_subscribe(?:_multi|)\b\s*\(\s*(ORB_ID)\s*\(\s*(\w+)",
r"orb_copy\((ORB_ID)(?:\(|::)(\w+)", r"(?:uORB::)Subscription(?:Interval|)\s+\w+\s*[\{\(]\s*(ORB_ID)\s*\(\s*(\w+)",
r"Subscription\w*(?:<[^>]+>|)\w*(?:\[[^]]+\]|)[\{\(](ORB_ID)(?:\(|::)(\w+)", r"(?:uORB::)Subscription(?:Data|MultiArray|Blocking|)\s*(<)\s*(\w+)",
r"SubscriptionCallbackWorkItem\w+\{this,(ORB_ID)(?:\(|::)(\w+)", r"(?:uORB::)SubscriptionCallbackWorkItem\s+\w+\s*\{\s*this,\s*(ORB_ID)\((\w+)",
] ]
self._subscriptions = Subscriptions( self._topic_blacklist, capture_cases_sub) self._subscriptions = Subscriptions( self._topic_blacklist, capture_cases_sub)
# note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace # note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace
# note: the regexes should 2 capture groups '()' to correctly register with downstream code # note: the regexes should have at least 3 capture groups '()'; otherwise they break downstream code
capture_cases_pub = [r"orb_advertise(?:_multi|_queue|_multi_queue|)\((ORB_ID)(?:\(|::)(\w+)", capture_cases_pub = [r"(?:uORB::)Publication(?:Data|Multi|)\s*(<)(\w+)>",
r"orb_publish(?:_auto|)\((ORB_ID)(?:\(|::)(\w+)", r"orb_advertise(?:_multi|_queue|_multi_queue|)\s*\(\s*(ORB_ID)\s*\(\s*(\w+)",
r"Publication\w*<\w+>\w+(?:\[[^]]+\]|)[\(\{]*(ORB_ID)(?:\(|::)(\w+)", r"orb_publish(?:_auto|)\s*\(\s*(ORB_ID)\s*\(\s*(\w+)",
r"(?:uORB::)Publication(?:Data|Multi|)\s*<\w+>\s+\w+\s*[\(\{](ORB_ID)\((\w+)"
] ]
self._publications = Publications( self._topic_blacklist, capture_cases_pub) self._publications = Publications( self._topic_blacklist, capture_cases_pub)
# note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace # note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace
# note: the regexes should 2 capture groups '()' to correctly register with downstream code # note: the regexes should have at least 3 capture groups '()'; otherwise they break downstream code
capture_cases_ambiguous = [ r"Publication\w*(?:\<\w+\>|)\w+(\[)()", capture_cases_ambiguous = [ r"orb_copy\s*\(\s*(ORB_ID)\s*\(\s*(\w+)",
r"Subscription\w*(?:\<\w+\>|)\w+(\[)()", r"(?:uORB::)Subscription[^\s]*\s+\w+\s*(\[)\s*\w+\s*\]()",
r"(ORB_ID)(?:\(|::)(\w+)", r"(ORB_ID)\s*\(\s*(\w+)",
] ]
self._ambiguities = Ambiguities( self._topic_blacklist, capture_cases_ambiguous) self._ambiguities = Ambiguities( self._topic_blacklist, capture_cases_ambiguous)
@@ -261,7 +279,7 @@ class Graph(object):
return None return None
return self._current_scope[-1] return self._current_scope[-1]
def build(self, src_path_list, **kwargs): def build(self, src_path_list, path_blacklist=[], **kwargs):
""" parse the source tree & extract pub/sub information. """ parse the source tree & extract pub/sub information.
:param use_topic_pubsub_union: if true, use all topics that have a :param use_topic_pubsub_union: if true, use all topics that have a
publisher or subscriber. If false, use only topics with at least one publisher or subscriber. If false, use only topics with at least one
@@ -270,8 +288,7 @@ class Graph(object):
fill in self._module_subsciptions & self._module_publications fill in self._module_subsciptions & self._module_publications
""" """
self._path_blacklist = [os.path.normpath(p) for p in path_blacklist]
self._path_blacklist = set([ os.path.normpath(p) for p in kwargs.get('path_blacklist',[]) ])
for path in src_path_list: for path in src_path_list:
log.info("## Add src path: " + path ) log.info("## Add src path: " + path )
@@ -279,9 +296,9 @@ class Graph(object):
# Summarize the found counts: (all topics are defined in 'dependency' library) # Summarize the found counts: (all topics are defined in 'dependency' library)
log.info('### Summary: Total Scanned:') log.info('### Summary: Total Scanned:')
log.info(' Library Count: '+str(len(self._found_libraries))) log.info(' Libraries Count: '+str(len(self._found_libraries)))
log.info(' Module Count: '+str(len(self._found_modules))) log.info(' Modules Count: '+str(len(self._found_modules)))
log.info(' Warning Count: '+str(len(self._warnings))) log.info(' Warnings Count: '+str(len(self._warnings)))
if kwargs['merge_depends']: if kwargs['merge_depends']:
graph.merge_depends() graph.merge_depends()
@@ -290,21 +307,18 @@ class Graph(object):
self._generate_print_lists(use_topic_pubsub_union=kwargs['use_topic_pubsub_union'], merge_depends=kwargs['merge_depends']) self._generate_print_lists(use_topic_pubsub_union=kwargs['use_topic_pubsub_union'], merge_depends=kwargs['merge_depends'])
# Summarize the found counts: # Summarize the found counts:
log.info('### Summary (in-scope):') print(' ### Summary (in-scope):')
log.info(' Scope Count: '+str(len(self._print_scopes))) print(' Ambiguous Count: '+str(len(self._print_ambiguities)))
log.info(' Ambiguous Topics: '+str(len(self._print_ambiguities))) print(' Scope Count: '+str(len(self._print_scopes)))
log.info(' Linked Topics: '+str(len(self._print_topics))) print(' Topics Count: '+str(len(self._print_topics)))
log.info(' Warnings: '+str(len(self._warnings))) print(' Warnings Count: '+str(len(self._warnings)))
if 0 < len(self._warnings): if 0 < len(self._warnings):
# print out the list of warning-sites: # print out the list of warning-sites:
log.info('## Warning Sites:') log.info('## Warning Sites:')
for w in self._warnings: for w in self._warnings:
scope_name = 'no-scope'
if None is not w[0]:
scope_name = w[0].name
# warnings tuple contains: (current_scope, file_name, line_number, line) # warnings tuple contains: (current_scope, file_name, line_number, line)
log.info(" -['{}']:{:<64s}:{} = {}".format(scope_name, w[1].lstrip('/.'), w[2], w[3] )) log.info(" -['{}']:{:<64s}:{} = {}".format(w[0].name, w[1].lstrip('/.'), w[2], w[3] ))
# initialize colors # initialize colors
color_list = get_N_colors(len(self._print_topics), 0.7, 0.85) color_list = get_N_colors(len(self._print_topics), 0.7, 0.85)
@@ -320,8 +334,9 @@ class Graph(object):
published_topics = set() published_topics = set()
ambiguous_topics = set() ambiguous_topics = set()
# gather all found scopes: # gather all possible modules...
all_scopes = { **self._found_libraries, **self._found_modules } # all_scopes = self._found_libraries | self._found_modules # Python 3.9 or greater
all_scopes = { **self._found_libraries, **self._found_modules } # Python 3.5 or greater
if 0 == len(self._scope_whitelist): if 0 == len(self._scope_whitelist):
select_scopes = self._found_modules select_scopes = self._found_modules
@@ -331,28 +346,27 @@ class Graph(object):
if scope_name in all_scopes: if scope_name in all_scopes:
select_scopes[scope_name] = all_scopes[scope_name] select_scopes[scope_name] = all_scopes[scope_name]
if not isinstance(select_scopes, dict) or 0 == len(select_scopes): if not isinstance(select_scopes, dict) or 0 == len(select_scopes):
log.error("!! No requested modules not found -- exiting.") raise TypeError("'select_scopes' should be a set!! aborting.")
sys.exit(0)
log.debug('### Condensing found topics: scope -> total') log.debug(f' >> Condensing found topics: scope -> total')
for name,scope in select_scopes.items(): for name,scope in select_scopes.items():
log.debug(' # Scope: '+ name ) log.debug(f' @@ Scope: {name}')
log.debug(' ## Subs: ' + str(len(scope.subscriptions))) log.debug(f' ## Subs: {name}')
for topic in sorted(scope.subscriptions): for topic in scope.subscriptions:
log.debug(' - ' + topic) log.debug(f' - {topic}')
subscribed_topics.add(topic) subscribed_topics.add(topic)
log.debug(' ## Pubs: ' + str(len(scope.publications))) log.debug(f' ## Pubs: {name}')
for topic in sorted(scope.publications): for topic in scope.publications:
log.debug(' - ' + topic ) log.debug(f' - {topic}')
published_topics.add(topic) published_topics.add(topic)
scope.reduce_ambiguities() scope.reduce_ambiguities()
log.debug(' ## Ambiguities: ' + str(len(scope.ambiguities))) log.debug(f' ## Ambiguities: {name}')
for topic in sorted(scope.ambiguities): for topic in scope.ambiguities:
log.debug(' - ' + topic ) log.debug(f' - {topic}')
ambiguous_topics.add(topic) ambiguous_topics.add(topic)
# filter modules iff they have at least a subscription or a publication # filter modules iff they have at least a subscription or a publication
@@ -386,11 +400,11 @@ class Graph(object):
entries = os.listdir(path) entries = os.listdir(path)
# check if entering a new scope # check if entering a new module
cmake_file = 'CMakeLists.txt' cmake_file = 'CMakeLists.txt'
new_scope = False new_module = False
if cmake_file in entries: if cmake_file in entries:
new_scope = self._extract_build_information(os.path.join(path, cmake_file), **kwargs) new_module = self._extract_build_information(os.path.join(path, cmake_file), **kwargs)
# iterate directories recursively # iterate directories recursively
for entry in entries: for entry in entries:
@@ -400,23 +414,23 @@ class Graph(object):
# iterate source files # iterate source files
# Note: Skip all entries if we're not in a scope -- both finding known pubs/subs and emitting warnings # Note: Skip all entries if we're not in a module -- both finding known pubs/subs and emitting warnings
for entry in entries: if (0 == len(self._scope_whitelist)) or (0 < len(self._current_scope)) and (self._current_scope[-1].name in self._scope_whitelist):
file_name = os.path.join(path, entry) for entry in entries:
if os.path.isfile(file_name): file_name = os.path.join(path, entry)
_, ext = os.path.splitext(file_name) if os.path.isfile(file_name):
if ext in ['.cpp', '.c', '.h', '.hpp']: _, ext = os.path.splitext(file_name)
self._process_source_file(file_name) if ext in ['.cpp', '.c', '.h', '.hpp']:
self._process_source_file(file_name)
if new_scope:
if new_module:
self._current_scope.pop() self._current_scope.pop()
def _extract_build_information(self, file_name, **kwargs): def _extract_build_information(self, file_name, **kwargs):
""" extract the module or library name from a CMakeLists.txt file and store """ extract the module name from a CMakeLists.txt file and store
in self._current_scope if there is any in self._current_scope if there is any """
Also records dependencies, if any are specified.
"""
datafile = open(file_name) datafile = open(file_name)
found_module_def = False found_module_def = False
@@ -482,59 +496,52 @@ class Graph(object):
current_scope = self._get_current_scope() current_scope = self._get_current_scope()
if current_scope:
if current_scope.name in self._scope_blacklist:
return
elif current_scope.name == 'uorb_tests': # skip this
return
elif current_scope.name == 'uorb':
# search and validate the ORB_ID_VEHICLE_ATTITUDE_CONTROLS define if current_scope is None:
matches = self._orb_id_vehicle_attitude_controls_re.findall(content) return # ignore declarations outside of a declared module
for match in matches: elif current_scope.name in self._scope_blacklist:
if match != 'ORB_ID('+self._orb_id_vehicle_attitude_controls_topic: return
# if we land here, you need to change _orb_id_vehicle_attitude_controls_topic elif current_scope.name == 'uorb_tests': # skip this
raise Exception( return
'The extracted define for ORB_ID_VEHICLE_ATTITUDE_CONTROLS ' elif current_scope.name == 'uorb':
'is '+match+' but expected ORB_ID('+
self._orb_id_vehicle_attitude_controls_topic)
return # skip uorb module for the rest # search and validate the ORB_ID_VEHICLE_ATTITUDE_CONTROLS define
matches = self._orb_id_vehicle_attitude_controls_re.findall(content)
for match in matches:
if match != 'ORB_ID('+self._orb_id_vehicle_attitude_controls_topic:
# if we land here, you need to change _orb_id_vehicle_attitude_controls_topic
raise Exception(
'The extracted define for ORB_ID_VEHICLE_ATTITUDE_CONTROLS '
'is '+match+' but expected ORB_ID('+
self._orb_id_vehicle_attitude_controls_topic)
return # skip uorb module for the rest
line_number = 0 line_number = 0
for full_line in content.splitlines(): for line in content.splitlines():
line_number += 1 line_number += 1
short_line = re.sub(self._whitespace_pattern, '', full_line) pub_topics = self._publications.match(line)
for each_topic in pub_topics:
current_scope.publications.add(each_topic)
if pub_topics:
continue
topic = self._publications.match(short_line) sub_topics = self._subscriptions.match(line)
if topic: for each_topic in sub_topics:
if current_scope: current_scope.subscriptions.add(each_topic)
current_scope.publications.add(topic) if sub_topics:
continue continue
else:
raise AssertionError("Encountered Publication topic outside of any scope! " + file_name + " Aborting!")
topic = self._subscriptions.match(short_line) ambi_topics = self._ambiguities.match(line)
if topic: for each_topic in ambi_topics:
if current_scope: current_scope.ambiguities.add(each_topic)
current_scope.subscriptions.add(topic) self._warnings.append((current_scope, file_name, line_number, line))
continue
else:
raise AssertionError("Encountered Subscription topic outside of any scope! " + file_name + " Aborting!")
topic = self._ambiguities.match(short_line)
if topic:
if current_scope:
if topic != PubSub.AMBIGUOUS_SITE_TOPIC:
current_scope.ambiguities.add(topic)
self._warnings.append((current_scope, file_name, line_number, full_line))
continue
else:
raise AssertionError("Encountered Ambiguous topic outside of any scope! " + file_name + " Aborting!")
def _in_scope(self, scope_name = None): def _in_scope(self, scope_name = None):
if 0 < len(self._current_scope): if 0 == len(self._scope_whitelist):
return True
elif 0 < len(self._current_scope):
if None is scope_name: if None is scope_name:
scope_name = self._current_scope[-1].name scope_name = self._current_scope[-1].name
if scope_name in self._scope_whitelist: if scope_name in self._scope_whitelist:
@@ -543,10 +550,8 @@ class Graph(object):
return False return False
def merge_depends(self): def merge_depends(self):
log.info('### Merge Depends:')
for modname,module in self._found_modules.items(): for modname,module in self._found_modules.items():
if modname in self._scope_whitelist or 0==len(self._scope_whitelist): if self._in_scope(modname):
for depname in module.dependencies: for depname in module.dependencies:
if depname in self._found_libraries: if depname in self._found_libraries:
dep = self._found_libraries[depname] dep = self._found_libraries[depname]
@@ -725,38 +730,33 @@ if "__main__" == __name__:
topic_blacklist = [ 'parameter_update', 'mavlink_log', 'log_message' ] topic_blacklist = [ 'parameter_update', 'mavlink_log', 'log_message' ]
print('Excluded topics: '+str(topic_blacklist)) print('Excluded topics: '+str(topic_blacklist))
# ignore certain modules; for any reason
scope_blacklist = []
if scope_blacklist:
print('Excluded Modules: '+str(topic_blacklist))
if len(args.modules) == 0: if len(args.modules) == 0:
scope_whitelist = [] scope_whitelist = []
else: else:
scope_whitelist = [ m.strip() for m in args.modules.split(',')] scope_whitelist = [ m.strip() for m in args.modules.split(',')]
scope_whitelist = set(scope_whitelist) scope_whitelist = set(scope_whitelist)
graph = Graph(scope_whitelist=scope_whitelist, topic_blacklist=topic_blacklist) graph = Graph(scope_whitelist=scope_whitelist, scope_blacklist=scope_blacklist, topic_blacklist=topic_blacklist)
# if no source paths are supplied, guess that we're in the project root, and apply it to the entire 'src/' tree
if len(args.src_path) == 0: if len(args.src_path) == 0:
args.src_path = ['src'] args.src_path = ['src']
# transcribe only the source paths that actually exist: if not os.path.exists(args.src_path[0]):
source_paths = [] print(f" !?could not find source directory: {args.src_path[0]}")
script_path = os.path.dirname(os.path.realpath(__file__))
args.src_path[0] = os.path.realpath(os.path.join( script_path, '..', '..', 'src' ))
print(f" >> guessing at path: {args.src_path[0]}")
for path in args.src_path: for path in args.src_path:
if os.path.exists(path): if not os.path.exists(path):
source_paths.append(path) print(f" !?could not find source directory: {path} -- please check path!")
else: print(f" Exiting.")
log.warn("Could not find path: " + path)
if 0 == len(source_paths): graph.build(args.src_path, args.exclude_path, use_topic_pubsub_union=args.use_topic_union, merge_depends=args.merge_depends)
print("!! None of the source directories were valid -- Exiting.")
sys.exit(-1)
# ignore certain paths
path_blacklist = ['src/lib/parameters/']
if 0 < len(args.exclude_path):
path_blacklist = args.exclude_path
if path_blacklist:
print('Excluded Path: '+str(path_blacklist))
graph.build(source_paths, path_blacklist=path_blacklist, use_topic_pubsub_union=args.use_topic_union, merge_depends=args.merge_depends)
if args.output == 'json': if args.output == 'json':
output_json = OutputJSON(graph) output_json = OutputJSON(graph)
+15 -22
View File
@@ -8,13 +8,13 @@ px4_add_board(
ARCHITECTURE cortex-m4 ARCHITECTURE cortex-m4
CONSTRAINED_MEMORY CONSTRAINED_MEMORY
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING
UAVCAN_INTERFACES 1 UAVCAN_INTERFACES 1
SERIAL_PORTS SERIAL_PORTS
GPS1:/dev/ttyS3 GPS1:/dev/ttyS3
TEL1:/dev/ttyS1 TEL1:/dev/ttyS1
TEL2:/dev/ttyS2 TEL2:/dev/ttyS2
DRIVERS DRIVERS
adc/ads1115
adc/board_adc adc/board_adc
barometer # all available barometer drivers barometer # all available barometer drivers
batt_smbus batt_smbus
@@ -26,18 +26,18 @@ px4_add_board(
gps gps
#heater #heater
#imu # all available imu drivers #imu # all available imu drivers
imu/invensense/icm20948 # required for ak09916 mag
imu/l3gd20 imu/l3gd20
imu/lsm303d imu/lsm303d
imu/invensense/mpu6000 imu/invensense/mpu6000
imu/invensense/mpu6500 imu/invensense/mpu6500
irlock irlock
lights # all available light drivers lights/blinkm
lights/rgbled
#lights/rgbled_ncp5623c
magnetometer # all available magnetometer drivers magnetometer # all available magnetometer drivers
optical_flow # all available optical flow drivers optical_flow # all available optical flow drivers
osd #osd
pca9685 pca9685
pca9685_pwm_out
power_monitor/ina226 power_monitor/ina226
#protocol_splitter #protocol_splitter
pwm_input pwm_input
@@ -45,8 +45,8 @@ px4_add_board(
pwm_out pwm_out
rc_input rc_input
roboclaw roboclaw
rpm
telemetry # all available telemetry drivers telemetry # all available telemetry drivers
test_ppm
tone_alarm tone_alarm
uavcan uavcan
MODULES MODULES
@@ -57,7 +57,6 @@ px4_add_board(
commander commander
dataman dataman
ekf2 ekf2
esc_battery
events events
flight_mode_manager flight_mode_manager
fw_att_control fw_att_control
@@ -74,15 +73,12 @@ px4_add_board(
mc_hover_thrust_estimator mc_hover_thrust_estimator
mc_pos_control mc_pos_control
mc_rate_control mc_rate_control
#micrortps_bridge
navigator navigator
rc_update rc_update
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation temperature_compensation
uuv_att_control
uuv_pos_control
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
@@ -90,7 +86,6 @@ px4_add_board(
#dmesg #dmesg
dumpfile dumpfile
esc_calib esc_calib
gpio
hardfault_log hardfault_log
i2cdetect i2cdetect
led_control led_control
@@ -106,8 +101,8 @@ px4_add_board(
reboot reboot
reflect reflect
sd_bench sd_bench
serial_test
system_time system_time
tests # tests and test runner
top top
topic_listener topic_listener
tune_control tune_control
@@ -117,15 +112,13 @@ px4_add_board(
work_queue work_queue
EXAMPLES EXAMPLES
fake_gps fake_gps
#fake_gyro fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
#fake_magnetometer hello
#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control hwtest # Hardware test
#hello
#hwtest # Hardware test
#matlab_csv_serial #matlab_csv_serial
#px4_mavlink_debug # Tutorial code from http://dev.px4.io/en/debug/debug_values.html px4_mavlink_debug # Tutorial code from http://dev.px4.io/en/debug/debug_values.html
#px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html
#rover_steering_control # Rover example app rover_steering_control # Rover example app
#uuv_example_app uuv_example_app
#work_item work_item
) )
@@ -101,7 +101,6 @@ CONFIG_NSH_DISABLE_IFCONFIG=y
CONFIG_NSH_DISABLE_IFUPDOWN=y CONFIG_NSH_DISABLE_IFUPDOWN=y
CONFIG_NSH_DISABLE_MB=y CONFIG_NSH_DISABLE_MB=y
CONFIG_NSH_DISABLE_MH=y CONFIG_NSH_DISABLE_MH=y
CONFIG_NSH_DISABLE_MW=y
CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_DISABLE_TELNETD=y
CONFIG_NSH_LINELEN=128 CONFIG_NSH_LINELEN=128
CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_MAXARGUMENTS=15
@@ -117,7 +116,6 @@ CONFIG_PRIORITY_INHERITANCE=y
CONFIG_PTHREAD_MUTEX_ROBUST=y CONFIG_PTHREAD_MUTEX_ROBUST=y
CONFIG_PTHREAD_STACK_MIN=512 CONFIG_PTHREAD_STACK_MIN=512
CONFIG_RAMTRON_SETSPEED=y CONFIG_RAMTRON_SETSPEED=y
CONFIG_RAMTRON_WRITEWAIT=y
CONFIG_RAM_SIZE=262144 CONFIG_RAM_SIZE=262144
CONFIG_RAM_START=0x20000000 CONFIG_RAM_START=0x20000000
CONFIG_RAW_BINARY=y CONFIG_RAW_BINARY=y
@@ -128,9 +126,6 @@ CONFIG_SCHED_HPWORKPRIORITY=249
CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_HPWORKSTACKSIZE=1280
CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION=y
CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_LPWORKPRIORITY=50
CONFIG_SCHED_LPWORKSTACKSIZE=1632
CONFIG_SCHED_WAITPID=y CONFIG_SCHED_WAITPID=y
CONFIG_SDCLONE_DISABLE=y CONFIG_SDCLONE_DISABLE=y
CONFIG_SDIO_BLOCKSETUP=y CONFIG_SDIO_BLOCKSETUP=y
@@ -81,7 +81,6 @@ CONFIG_NSH_DISABLE_IFCONFIG=y
CONFIG_NSH_DISABLE_IFUPDOWN=y CONFIG_NSH_DISABLE_IFUPDOWN=y
CONFIG_NSH_DISABLE_MB=y CONFIG_NSH_DISABLE_MB=y
CONFIG_NSH_DISABLE_MH=y CONFIG_NSH_DISABLE_MH=y
CONFIG_NSH_DISABLE_MW=y
CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_DISABLE_TELNETD=y
CONFIG_NSH_LINELEN=128 CONFIG_NSH_LINELEN=128
CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_MAXARGUMENTS=15
@@ -97,7 +96,6 @@ CONFIG_PRIORITY_INHERITANCE=y
CONFIG_PTHREAD_MUTEX_ROBUST=y CONFIG_PTHREAD_MUTEX_ROBUST=y
CONFIG_PTHREAD_STACK_MIN=512 CONFIG_PTHREAD_STACK_MIN=512
CONFIG_RAMTRON_SETSPEED=y CONFIG_RAMTRON_SETSPEED=y
CONFIG_RAMTRON_WRITEWAIT=y
CONFIG_RAM_SIZE=262144 CONFIG_RAM_SIZE=262144
CONFIG_RAM_START=0x20000000 CONFIG_RAM_START=0x20000000
CONFIG_RAW_BINARY=y CONFIG_RAW_BINARY=y
@@ -108,9 +106,6 @@ CONFIG_SCHED_HPWORKPRIORITY=249
CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_HPWORKSTACKSIZE=1280
CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION=y
CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_LPWORKPRIORITY=50
CONFIG_SCHED_LPWORKSTACKSIZE=1632
CONFIG_SCHED_WAITPID=y CONFIG_SCHED_WAITPID=y
CONFIG_SEM_NNESTPRIO=8 CONFIG_SEM_NNESTPRIO=8
CONFIG_SEM_PREALLOCHOLDERS=0 CONFIG_SEM_PREALLOCHOLDERS=0
+2
View File
@@ -39,6 +39,7 @@ px4_add_board(
VENDOR atlflight VENDOR atlflight
MODEL eagle MODEL eagle
LABEL default LABEL default
#TESTING
TOOLCHAIN arm-linux-gnueabihf TOOLCHAIN arm-linux-gnueabihf
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
DRIVERS DRIVERS
@@ -107,6 +108,7 @@ px4_add_board(
sd_bench sd_bench
shutdown shutdown
system_time system_time
#tests # tests and test runner
#top #top
topic_listener topic_listener
tune_control tune_control
+1 -1
View File
@@ -49,7 +49,7 @@ px4_add_board(
imu/invensense/mpu9250 imu/invensense/mpu9250
#magnetometer/hmc5883 #magnetometer/hmc5883
qshell/qurt qshell/qurt
snapdragon_spektrum_rc spektrum_rc
MODULES MODULES
airspeed_selector airspeed_selector
attitude_estimator_q attitude_estimator_q
+2
View File
@@ -39,6 +39,7 @@ px4_add_board(
VENDOR atlflight VENDOR atlflight
MODEL excelsior MODEL excelsior
LABEL default LABEL default
#TESTING
TOOLCHAIN arm-oemllib32-linux-gnueabi TOOLCHAIN arm-oemllib32-linux-gnueabi
DRIVERS DRIVERS
#barometer # all available barometer drivers #barometer # all available barometer drivers
@@ -105,6 +106,7 @@ px4_add_board(
sd_bench sd_bench
shutdown shutdown
system_time system_time
#tests # tests and test runner
#top #top
topic_listener topic_listener
tune_control tune_control
+1 -1
View File
@@ -49,7 +49,7 @@ px4_add_board(
imu/invensense/mpu9250 imu/invensense/mpu9250
magnetometer/hmc5883 magnetometer/hmc5883
qshell/qurt qshell/qurt
snapdragon_spektrum_rc spektrum_rc
MODULES MODULES
airspeed_selector airspeed_selector
attitude_estimator_q attitude_estimator_q
+17 -24
View File
@@ -7,6 +7,7 @@ px4_add_board(
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
ARCHITECTURE cortex-m7 ARCHITECTURE cortex-m7
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING
UAVCAN_INTERFACES 2 UAVCAN_INTERFACES 2
ETHERNET ETHERNET
SERIAL_PORTS SERIAL_PORTS
@@ -16,7 +17,6 @@ px4_add_board(
TEL3:/dev/ttyS2 TEL3:/dev/ttyS2
TEL4:/dev/ttyS3 TEL4:/dev/ttyS3
DRIVERS DRIVERS
adc/ads1115
adc/board_adc adc/board_adc
barometer # all available barometer drivers barometer # all available barometer drivers
batt_smbus batt_smbus
@@ -26,17 +26,18 @@ px4_add_board(
distance_sensor # all available distance sensor drivers distance_sensor # all available distance sensor drivers
#dshot #dshot
gps gps
#heater
#imu # all available imu drivers #imu # all available imu drivers
imu/adis16477 imu/adis16477
imu/adis16497 imu/adis16497
imu/invensense/icm20948 # required for ak09916 mag
irlock irlock
lights # all available light drivers lights/blinkm
#lights/rgbled
#lights/rgbled_ncp5623c
magnetometer # all available magnetometer drivers magnetometer # all available magnetometer drivers
optical_flow # all available optical flow drivers optical_flow # all available optical flow drivers
osd #osd
pca9685 pca9685
pca9685_pwm_out
power_monitor/ina226 power_monitor/ina226
#protocol_splitter #protocol_splitter
#pwm_input #pwm_input
@@ -44,8 +45,8 @@ px4_add_board(
pwm_out pwm_out
rc_input rc_input
roboclaw roboclaw
rpm
telemetry # all available telemetry drivers telemetry # all available telemetry drivers
test_ppm
#tone_alarm #tone_alarm
uavcan uavcan
MODULES MODULES
@@ -56,7 +57,6 @@ px4_add_board(
commander commander
dataman dataman
ekf2 ekf2
esc_battery
events events
flight_mode_manager flight_mode_manager
fw_att_control fw_att_control
@@ -73,23 +73,19 @@ px4_add_board(
mc_hover_thrust_estimator mc_hover_thrust_estimator
mc_pos_control mc_pos_control
mc_rate_control mc_rate_control
#micrortps_bridge
navigator navigator
rc_update rc_update
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation temperature_compensation
uuv_att_control
uuv_pos_control
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
bl_update #bl_update
dmesg dmesg
dumpfile dumpfile
esc_calib esc_calib
gpio
hardfault_log hardfault_log
i2cdetect i2cdetect
led_control led_control
@@ -97,15 +93,14 @@ px4_add_board(
motor_ramp motor_ramp
motor_test motor_test
nshterm nshterm
netman
param param
perf perf
pwm pwm
reboot reboot
reflect reflect
sd_bench sd_bench
serial_test
system_time system_time
tests # tests and test runner
top top
topic_listener topic_listener
tune_control tune_control
@@ -114,15 +109,13 @@ px4_add_board(
work_queue work_queue
EXAMPLES EXAMPLES
fake_gps fake_gps
#fake_gyro fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
#fake_magnetometer hello
#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control hwtest # Hardware test
#hello
#hwtest # Hardware test
#matlab_csv_serial #matlab_csv_serial
#px4_mavlink_debug # Tutorial code from http://dev.px4.io/en/debug/debug_values.html px4_mavlink_debug # Tutorial code from http://dev.px4.io/en/debug/debug_values.html
#px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html
#rover_steering_control # Rover example app rover_steering_control # Rover example app
#uuv_example_app uuv_example_app
#work_item work_item
) )

Some files were not shown because too many files have changed in this diff Show More