mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-30 17:10:35 +08:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b499b53cc1 |
@@ -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
@@ -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"'
|
||||||
|
|||||||
@@ -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" ],
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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: [
|
||||||
|
|||||||
@@ -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: [
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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: [
|
||||||
|
|||||||
@@ -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 }}
|
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
@@ -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
|
|
||||||
|
|||||||
Vendored
+7
-12
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
@@ -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"
|
||||||
|
|||||||
+1
-1
Submodule Tools/jMAVSim updated: 2b610caab8...358b6cca40
@@ -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
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|||||||
@@ -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 }}
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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 \
|
||||||
|
|||||||
+1
-1
Submodule Tools/sitl_gazebo updated: 4c27fc7dd6...3e5fed04d8
+146
-146
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
Reference in New Issue
Block a user