mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-18 05:31:30 +08:00
Compare commits
392 Commits
pr-mavlink
...
pr-List_re
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9012d1aa0e | ||
|
|
aa54db42ed | ||
|
|
051bcf75b3 | ||
|
|
92afe45f7f | ||
|
|
9849ff4a9c | ||
|
|
7e01938341 | ||
|
|
5c93403db7 | ||
|
|
70c372329c | ||
|
|
7861377e20 | ||
|
|
a88b7fc517 | ||
|
|
3ff7cd94dd | ||
|
|
ec79361548 | ||
|
|
5868463d06 | ||
|
|
39c585ac97 | ||
|
|
c8d18c2719 | ||
|
|
c253badba4 | ||
|
|
690c1158ad | ||
|
|
39251daf28 | ||
|
|
652cc4350e | ||
|
|
d532bc9555 | ||
|
|
c05c213042 | ||
|
|
66b3562080 | ||
|
|
e5a00033f5 | ||
|
|
2a187a76d6 | ||
|
|
90f61c2f9a | ||
|
|
74083d6bd1 | ||
|
|
43b4cf39bd | ||
|
|
4d30f327f9 | ||
|
|
a152fb65cb | ||
|
|
c7db0942ba | ||
|
|
bf5ee99952 | ||
|
|
7038cb8518 | ||
|
|
336176b2f0 | ||
|
|
b23d8244f0 | ||
|
|
acc647c518 | ||
|
|
4bc60cca69 | ||
|
|
d58ee9400c | ||
|
|
8e14e13369 | ||
|
|
aa244a098c | ||
|
|
fdd1d6d244 | ||
|
|
9b065b4975 | ||
|
|
5cb1bb7731 | ||
|
|
1719ff9892 | ||
|
|
dba3c642d2 | ||
|
|
862fd1d450 | ||
|
|
314b5e721f | ||
|
|
5be2066e1a | ||
|
|
e51000c5be | ||
|
|
eec64c5c0f | ||
|
|
d025787334 | ||
|
|
db58269577 | ||
|
|
1e6976234f | ||
|
|
f1524fe27d | ||
|
|
9cc9e4f89f | ||
|
|
0433f4d33c | ||
|
|
ae2b1a265c | ||
|
|
6bda8af97c | ||
|
|
5cd4a9c73f | ||
|
|
ef6209ba03 | ||
|
|
25ef76b3b8 | ||
|
|
c5a6a60903 | ||
|
|
fd18ba6496 | ||
|
|
842d98d572 | ||
|
|
d44e537084 | ||
|
|
72420dfff3 | ||
|
|
7db555573b | ||
|
|
bca2d3139a | ||
|
|
f2aa7d3f88 | ||
|
|
a6b7add2fe | ||
|
|
9c3b70d517 | ||
|
|
bbad1bdd6e | ||
|
|
33b831efe3 | ||
|
|
dfcd6a7c16 | ||
|
|
c316af6ec7 | ||
|
|
390ed3765f | ||
|
|
38a5b8a502 | ||
|
|
d0ae931543 | ||
|
|
0cb3ce4886 | ||
|
|
e1e06364da | ||
|
|
73f7b08873 | ||
|
|
7e2da11d67 | ||
|
|
a1b54eb655 | ||
|
|
dd4ee5c48c | ||
|
|
cf010f44d0 | ||
|
|
cd1ffa63cd | ||
|
|
82746af07a | ||
|
|
8f5f564c05 | ||
|
|
edaf9f2bb6 | ||
|
|
6d255df0a8 | ||
|
|
59564af860 | ||
|
|
bc1c8fb73a | ||
|
|
fd261b590c | ||
|
|
681590c510 | ||
|
|
3276916df9 | ||
|
|
711bd2ce87 | ||
|
|
f3e5b86b06 | ||
|
|
e8cefcafbc | ||
|
|
a2ff53b018 | ||
|
|
8900c6200d | ||
|
|
1cd36d4c8c | ||
|
|
1b70e5f978 | ||
|
|
394c2edea3 | ||
|
|
171cb7119e | ||
|
|
d4a78cea5a | ||
|
|
67a78a70ea | ||
|
|
1dd22acd12 | ||
|
|
0ca7783ea5 | ||
|
|
8d8a31c56d | ||
|
|
e6992db1ca | ||
|
|
3783ab4a6a | ||
|
|
5e6189ee5a | ||
|
|
cc979d2249 | ||
|
|
01620420fa | ||
|
|
25c113a527 | ||
|
|
badaf1eae0 | ||
|
|
3f3a82e034 | ||
|
|
66f8fc08c0 | ||
|
|
229f02a4f9 | ||
|
|
b4693f41da | ||
|
|
22bc176885 | ||
|
|
f8148593ad | ||
|
|
94825ddc6e | ||
|
|
44ffc855dc | ||
|
|
d9151af291 | ||
|
|
c9063beacc | ||
|
|
79bedbc908 | ||
|
|
313b3edc04 | ||
|
|
6e9f50f48e | ||
|
|
74a0693040 | ||
|
|
ad1c603af4 | ||
|
|
65b3b0b2e7 | ||
|
|
6f27deab40 | ||
|
|
434f63d479 | ||
|
|
7c07ce9649 | ||
|
|
5703070974 | ||
|
|
2247779216 | ||
|
|
6dba2425c2 | ||
|
|
a2a8d2fcf2 | ||
|
|
2b69fad3ac | ||
|
|
79744ec156 | ||
|
|
55c091e0fc | ||
|
|
6b93865cfc | ||
|
|
16f388d625 | ||
|
|
26e164c3ba | ||
|
|
79f177fe94 | ||
|
|
1bb2b0b06c | ||
|
|
a09d240c72 | ||
|
|
4c5aa12a18 | ||
|
|
52b5856ff0 | ||
|
|
a60df85a09 | ||
|
|
e83a00c604 | ||
|
|
68ab736b16 | ||
|
|
1b9ab2a3e2 | ||
|
|
378c0b5093 | ||
|
|
e69aea0a9b | ||
|
|
c305774fae | ||
|
|
b7de10fca3 | ||
|
|
dc435c4c90 | ||
|
|
8ac2581d7b | ||
|
|
741a0b43e8 | ||
|
|
a03b91c01e | ||
|
|
d5dc7e2873 | ||
|
|
de66616341 | ||
|
|
8f40558f41 | ||
|
|
85f3ab1960 | ||
|
|
d654be761c | ||
|
|
378b41af6a | ||
|
|
bd943d872c | ||
|
|
a63e8cc149 | ||
|
|
05a3492174 | ||
|
|
419b336a15 | ||
|
|
aa80167b47 | ||
|
|
7dde298664 | ||
|
|
2243931abd | ||
|
|
ce28aa089b | ||
|
|
8ac2ada0e6 | ||
|
|
0bf622e211 | ||
|
|
5f0ecc893e | ||
|
|
d59ba2032f | ||
|
|
1d1fbdb1d3 | ||
|
|
2d0eb4a41a | ||
|
|
3309bf21dd | ||
|
|
efe42451b6 | ||
|
|
646b5bb578 | ||
|
|
c5486ca47e | ||
|
|
3215c50660 | ||
|
|
336639897e | ||
|
|
bd09be43c0 | ||
|
|
fdb4ede6c2 | ||
|
|
ce8f4dece2 | ||
|
|
5382d3b8fb | ||
|
|
ec9f8998a7 | ||
|
|
3e4c38f6e8 | ||
|
|
5e855c6747 | ||
|
|
615333badb | ||
|
|
0db70ea475 | ||
|
|
136b6a3509 | ||
|
|
71306f7f83 | ||
|
|
ee3285a34f | ||
|
|
65e1b702c9 | ||
|
|
0ca63120eb | ||
|
|
41b56f20b8 | ||
|
|
c845265b1b | ||
|
|
1425d87640 | ||
|
|
fb3b1f8bd9 | ||
|
|
68855b5c9b | ||
|
|
b6f24eefb2 | ||
|
|
f18e70029a | ||
|
|
80df04ddca | ||
|
|
a246defb68 | ||
|
|
5e693180d9 | ||
|
|
fabeb22ae4 | ||
|
|
7baeb78964 | ||
|
|
e1168070d1 | ||
|
|
3f9e5a6934 | ||
|
|
ed8a30d73e | ||
|
|
387659d615 | ||
|
|
5e6f8a9606 | ||
|
|
fb1f360724 | ||
|
|
f5660c6b0c | ||
|
|
22fbcf98cf | ||
|
|
ce51a01822 | ||
|
|
f7452bff4d | ||
|
|
b58e270fd4 | ||
|
|
ad4068f472 | ||
|
|
37567bbee0 | ||
|
|
eb3135e79c | ||
|
|
963d101375 | ||
|
|
053bf7e732 | ||
|
|
ee9ce1087a | ||
|
|
683fcdc910 | ||
|
|
174c5c5797 | ||
|
|
dd3c1a3653 | ||
|
|
40bf460717 | ||
|
|
29658961ef | ||
|
|
860a7fd1db | ||
|
|
a8f0987028 | ||
|
|
4a9f293596 | ||
|
|
4a6c90b8ea | ||
|
|
e399dbc440 | ||
|
|
66edc822fe | ||
|
|
d14b4221f1 | ||
|
|
5f0c572c61 | ||
|
|
3cf072debc | ||
|
|
1659447abb | ||
|
|
5d7ea62190 | ||
|
|
880dc6accd | ||
|
|
1e03285405 | ||
|
|
26de630dc5 | ||
|
|
89ab6a5dbf | ||
|
|
b9fff2c221 | ||
|
|
7264577eec | ||
|
|
a68fe4dbd7 | ||
|
|
5ae7c80a18 | ||
|
|
991015c5c6 | ||
|
|
68f49619b7 | ||
|
|
0db706011a | ||
|
|
8ee197acad | ||
|
|
b29f3c7ce5 | ||
|
|
0f56793116 | ||
|
|
6b30f01daf | ||
|
|
651e292d42 | ||
|
|
f4f3ba47a2 | ||
|
|
96178a6fb0 | ||
|
|
05de61ff15 | ||
|
|
387186c11d | ||
|
|
3b9965ff8d | ||
|
|
94415a45fa | ||
|
|
03388f4656 | ||
|
|
98334d1325 | ||
|
|
c09a5e0d9f | ||
|
|
8616345346 | ||
|
|
e397cbf8bb | ||
|
|
0d657c74bf | ||
|
|
68f24954cf | ||
|
|
5dd14dfd54 | ||
|
|
a8f665739d | ||
|
|
756609c3e8 | ||
|
|
ff801fbc08 | ||
|
|
e6338d8a2f | ||
|
|
0b8f092d2b | ||
|
|
b50e6bda69 | ||
|
|
9767a73619 | ||
|
|
7ba73b46ca | ||
|
|
3924792c20 | ||
|
|
ea09d9ebbf | ||
|
|
f4964aea52 | ||
|
|
824238ecb8 | ||
|
|
8b9ae49508 | ||
|
|
b491929ad6 | ||
|
|
d33a48eb24 | ||
|
|
c8dfcf7f0d | ||
|
|
6728a3a05a | ||
|
|
38fbb452da | ||
|
|
1965cd38ba | ||
|
|
8b96ff57d7 | ||
|
|
6579544fca | ||
|
|
e89c21155a | ||
|
|
defa437b88 | ||
|
|
c60743b306 | ||
|
|
5ce0b5a32c | ||
|
|
6b23e28971 | ||
|
|
91d1825fcf | ||
|
|
149ac16bb4 | ||
|
|
ffa38f1b4f | ||
|
|
bde5cadba7 | ||
|
|
142452f80c | ||
|
|
03aa2dd46c | ||
|
|
e6ad321ab2 | ||
|
|
ab43a94224 | ||
|
|
c5c521f5e0 | ||
|
|
d7fa5c68aa | ||
|
|
8f72ea9577 | ||
|
|
f02d490e89 | ||
|
|
e0f6c220b1 | ||
|
|
425b8a1733 | ||
|
|
ea2fced6ad | ||
|
|
99833eb001 | ||
|
|
ba5ef28f23 | ||
|
|
9e5cf3a598 | ||
|
|
a39bead740 | ||
|
|
d4d02f449f | ||
|
|
fd90387270 | ||
|
|
437a1c6db1 | ||
|
|
cc96468fad | ||
|
|
67a0e1993a | ||
|
|
ad0de67df7 | ||
|
|
d2145917e7 | ||
|
|
b0a73b5144 | ||
|
|
77dfd111e2 | ||
|
|
817285ec64 | ||
|
|
d14deb0e5a | ||
|
|
4578b8cdcc | ||
|
|
d83da4ded4 | ||
|
|
a1ef4d1469 | ||
|
|
1dd3283fbb | ||
|
|
4df3931bd1 | ||
|
|
6b9dde59d6 | ||
|
|
81aa8a914f | ||
|
|
d5894bea5c | ||
|
|
216a0eb3a0 | ||
|
|
b13422dd80 | ||
|
|
ecb462f325 | ||
|
|
d1af095c0b | ||
|
|
d27573b797 | ||
|
|
7757aeda94 | ||
|
|
db5235b074 | ||
|
|
3f9f2c6fdf | ||
|
|
cf082d7f1c | ||
|
|
b5e00cd424 | ||
|
|
ff87bc0fda | ||
|
|
39b1d827d2 | ||
|
|
1fa1f8c2c5 | ||
|
|
962b90fd75 | ||
|
|
8797823333 | ||
|
|
021bc284c1 | ||
|
|
233949a377 | ||
|
|
850e068aa3 | ||
|
|
2c874f1cd9 | ||
|
|
b1dc1b1ecd | ||
|
|
82988b1912 | ||
|
|
5b7d1a0496 | ||
|
|
69986affbf | ||
|
|
171bd6d784 | ||
|
|
05f1efd1a4 | ||
|
|
91da194bd7 | ||
|
|
df2f26ebdf | ||
|
|
d5e68bc05a | ||
|
|
050c9dcd3d | ||
|
|
f36f8928e3 | ||
|
|
2e98c64853 | ||
|
|
0f411d6820 | ||
|
|
d5245a22d3 | ||
|
|
109ed18a3a | ||
|
|
142724748a | ||
|
|
09cc3120e2 | ||
|
|
8e710294b3 | ||
|
|
7ba93d5452 | ||
|
|
eac9a6b68b | ||
|
|
90c366f369 | ||
|
|
948bed6b5c | ||
|
|
8435742dd5 | ||
|
|
6d2f592c16 | ||
|
|
53b5e2d863 | ||
|
|
614a0ac2a2 | ||
|
|
945c17bc3f | ||
|
|
ea3d202370 | ||
|
|
6285e06fe2 | ||
|
|
1fb4f960cd | ||
|
|
81765bc06a | ||
|
|
4378254182 | ||
|
|
d8a03d04a7 |
@ -9,18 +9,25 @@ pipeline {
|
||||
script {
|
||||
def build_nodes = [:]
|
||||
def docker_images = [
|
||||
armhf: "px4io/px4-dev-armhf:2020-04-01",
|
||||
base: "px4io/px4-dev-base-bionic:2020-04-01",
|
||||
nuttx: "px4io/px4-dev-nuttx-focal:2020-09-14",
|
||||
armhf: "px4io/px4-dev-armhf:2020-11-18",
|
||||
arm64: "px4io/px4-dev-aarch64:2020-11-18",
|
||||
base: "px4io/px4-dev-base-bionic:2020-11-18",
|
||||
nuttx: "px4io/px4-dev-nuttx-focal:2020-11-18",
|
||||
snapdragon: "lorenzmeier/px4-dev-snapdragon:2020-04-01"
|
||||
]
|
||||
|
||||
def armhf_builds = [
|
||||
target: ["aerotenna_ocpoc_default", "beaglebone_blue_default", "emlid_navio2_default", "px4_raspberrypi_default", "scumaker_airpi2_default"],
|
||||
target: ["aerotenna_ocpoc_default", "beaglebone_blue_default", "emlid_navio2_default", "px4_raspberrypi_default", "scumaker_pilotpi_default"],
|
||||
image: docker_images.armhf,
|
||||
archive: false
|
||||
]
|
||||
|
||||
def arm64_builds = [
|
||||
target: ["scumaker_pilotpi_arm64"],
|
||||
image: docker_images.arm64,
|
||||
archive: false
|
||||
]
|
||||
|
||||
def base_builds = [
|
||||
target: ["px4_sitl_rtps"],
|
||||
image: docker_images.base,
|
||||
@ -41,7 +48,6 @@ pipeline {
|
||||
"cubepilot_cubeyellow_console",
|
||||
"cubepilot_cubeyellow_default",
|
||||
"holybro_durandal-v1_default",
|
||||
"holybro_durandal-v1_stackcheck",
|
||||
"holybro_kakutef7_default",
|
||||
"holybro_pix32v5_default",
|
||||
"intel_aerofc-v1_default",
|
||||
@ -53,7 +59,7 @@ pipeline {
|
||||
"nxp_fmuk66-v3_socketcan",
|
||||
"nxp_fmuk66-v3_rtps",
|
||||
"nxp_fmurt1062-v1_default",
|
||||
"nxp_rddrone-uavcan146_default",
|
||||
"nxp_ucans32k146_default",
|
||||
"omnibus_f4sd_default",
|
||||
"px4_fmu-v2_default",
|
||||
"px4_fmu-v2_fixedwing",
|
||||
@ -112,7 +118,7 @@ pipeline {
|
||||
// TODO: actually upload artifacts to S3
|
||||
// stage('S3 Upload') {
|
||||
// agent {
|
||||
// docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
// docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
// }
|
||||
// options {
|
||||
// skipDefaultCheckout()
|
||||
|
||||
@ -43,23 +43,7 @@ pipeline {
|
||||
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'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
steps {
|
||||
// configure
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 0"' // no airframe
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin"' // force px4io update
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
steps {
|
||||
statusFTDI()
|
||||
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-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("reset") {
|
||||
@ -111,8 +95,7 @@ pipeline {
|
||||
sh 'find /dev/serial'
|
||||
unstash 'px4_fmu-v3_default'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_default/px4_fmu-v3_default.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
@ -121,8 +104,8 @@ pipeline {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin"' // force px4io update
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -185,8 +168,7 @@ pipeline {
|
||||
sh 'find /dev/serial'
|
||||
unstash 'px4_fmu-v4_default'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_default/px4_fmu-v4_default.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
@ -195,7 +177,7 @@ pipeline {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -258,8 +240,7 @@ pipeline {
|
||||
sh 'find /dev/serial'
|
||||
unstash 'px4_fmu-v4pro_default'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_default/px4_fmu-v4pro_default.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
@ -268,8 +249,8 @@ pipeline {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin"' // force px4io update
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -332,8 +313,7 @@ pipeline {
|
||||
sh 'find /dev/serial'
|
||||
unstash 'px4_fmu-v5_default'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_default/px4_fmu-v5_default.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
@ -343,8 +323,8 @@ pipeline {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set IMU_GYRO_RATEMAX 2000"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin"' // force px4io update
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -405,21 +385,23 @@ pipeline {
|
||||
steps {
|
||||
sh 'export'
|
||||
sh 'find /dev/serial'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001" || true' // generic multicopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set IMU_GYRO_RATEMAX 250" || true'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save" || true'
|
||||
unstash 'px4_fmu-v5_debug'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_debug/px4_fmu-v5_debug.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --baudrate 57600'
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_debug/px4_fmu-v5_debug.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
steps {
|
||||
// configure
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin"' // force px4io update
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -482,8 +464,7 @@ pipeline {
|
||||
sh 'find /dev/serial'
|
||||
unstash 'px4_fmu-v5_optimized'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_optimized/px4_fmu-v5_optimized.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --baudrate 57600'
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_optimized/px4_fmu-v5_optimized.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
@ -492,7 +473,7 @@ pipeline {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -553,10 +534,12 @@ pipeline {
|
||||
steps {
|
||||
sh 'export'
|
||||
sh 'find /dev/serial'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001" || true' // generic multicopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set IMU_GYRO_RATEMAX 250" || true'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save" || true'
|
||||
unstash 'px4_fmu-v5_stackcheck'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --baudrate 57600'
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
@ -567,7 +550,7 @@ pipeline {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set MAV_0_CONFIG 0"' // limit cpu usage
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -630,17 +613,16 @@ pipeline {
|
||||
sh 'find /dev/serial'
|
||||
unstash 'modalai_fc-v1_default'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_default/modalai_fc-v1_default.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-SEGGER_*` --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-SEGGER_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
steps {
|
||||
// configure
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "param set SYS_AUTOSTART 4001"' // generic vtol standardulticopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "param set SYS_AUTOSTART 4001"' // generic vtol standardulticopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -703,22 +685,21 @@ pipeline {
|
||||
sh 'find /dev/serial'
|
||||
unstash 'holybro_durandal-v1_default'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/holybro_durandal-v1_default/holybro_durandal-v1_default.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
steps {
|
||||
// configure
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set DSHOT_CONFIG 600"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set IMU_GYRO_RATEMAX 4000"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_USE_IO 0"' // for dshot
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_USE_IO 0"' // for dshot
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin"' // force px4io update
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -782,8 +763,7 @@ pipeline {
|
||||
sh 'find /dev/serial'
|
||||
unstash 'nxp_fmuk66-v3_default'
|
||||
// flash board and watch bootup
|
||||
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_default/nxp_fmuk66-v3_default.elf'
|
||||
sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_*` --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-FTDI_*` --baudrate 57600'
|
||||
}
|
||||
}
|
||||
stage("configure") {
|
||||
@ -792,7 +772,7 @@ pipeline {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param save"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"' // reboot to apply
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot" || true' // reboot to apply
|
||||
}
|
||||
}
|
||||
stage("status") {
|
||||
@ -803,7 +783,7 @@ pipeline {
|
||||
stage("tests") {
|
||||
steps {
|
||||
// run tests
|
||||
sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-FTDI_*`'
|
||||
sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-FTDI_*` || true' // allow failure due to intermittent serial console issues
|
||||
}
|
||||
}
|
||||
stage("reset") {
|
||||
@ -836,6 +816,8 @@ void statusFTDI() {
|
||||
// run logger
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "logger on"'
|
||||
// status commands
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "free"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "work_queue status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "board_adc test"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "commander check"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "commander status"'
|
||||
@ -846,14 +828,15 @@ void statusFTDI() {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "dataman status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "df"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "dmesg"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "ekf2 status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "free"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "gps status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener adc_report"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener battery_status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener cpuload"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener estimator_sensor"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener estimator_attitude"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener estimator_local_position"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener estimator_selector_status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener estimator_sensor_bias"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener estimator_status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener logger_status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener sensor_accel"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "listener sensor_accel_fifo"'
|
||||
@ -901,6 +884,8 @@ void statusFTDI() {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "uorb top -1 -a"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "ver all"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "work_queue status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "ekf2 status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "free"'
|
||||
// stop logger
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "logger off"'
|
||||
}
|
||||
@ -909,6 +894,8 @@ void statusSEGGER() {
|
||||
// run logger
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "logger on"'
|
||||
// status commands
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "free"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "work_queue status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "board_adc test"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "commander check"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "commander status"'
|
||||
@ -919,12 +906,13 @@ void statusSEGGER() {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "dataman status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "df -h"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "dmesg"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "ekf2 status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "free"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "gps status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener adc_report"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener battery_status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener cpuload"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener estimator_attitude"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener estimator_local_position"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener estimator_selector_status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener estimator_sensor_bias"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener estimator_status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "listener logger_status"'
|
||||
@ -974,17 +962,20 @@ void statusSEGGER() {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "uorb top -1 -a"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "ver all"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "work_queue status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "ekf2 status"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "free"'
|
||||
// stop logger
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "logger off"'
|
||||
}
|
||||
|
||||
void cleanupFTDI() {
|
||||
// wipe sdcard
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "commander stop"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "mavlink stop-all"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "navigator stop"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "dataman stop"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "logger off"'
|
||||
|
||||
// wipe sdcard
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "umount /fs/microsd"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "mkfatfs /dev/mmcsd0"'
|
||||
|
||||
@ -1005,16 +996,17 @@ void cleanupFTDI() {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "param status"'
|
||||
|
||||
// reboot
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-FTDI_*` --cmd "reboot" || true'
|
||||
}
|
||||
|
||||
void cleanupSEGGER() {
|
||||
// wipe sdcard
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "commander stop"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "mavlink stop-all"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "navigator stop"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "dataman stop"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "logger off"'
|
||||
|
||||
// wipe sdcard
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "umount /fs/microsd"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "mkfatfs /dev/mmcsd0"'
|
||||
|
||||
@ -1035,5 +1027,5 @@ void cleanupSEGGER() {
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "param status"'
|
||||
|
||||
// reboot
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "reboot"'
|
||||
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-SEGGER_*` --cmd "reboot" || true'
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.134.0/containers/cpp
|
||||
{
|
||||
"name": "px4-dev-nuttx",
|
||||
"image": "px4io/px4-dev-nuttx-focal:2020-09-14",
|
||||
"image": "px4io/px4-dev-nuttx-focal:2020-11-18",
|
||||
|
||||
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
|
||||
|
||||
|
||||
9
.github/workflows/checks.yml
vendored
9
.github/workflows/checks.yml
vendored
@ -26,7 +26,9 @@ jobs:
|
||||
"module_documentation",
|
||||
"parameters_metadata",
|
||||
]
|
||||
container: px4io/px4-dev-nuttx-focal:2020-09-14
|
||||
container:
|
||||
image: px4io/px4-dev-nuttx-focal:2020-11-18
|
||||
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
@ -53,6 +55,9 @@ jobs:
|
||||
echo "max_size = 400M" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
- name: check environment
|
||||
run: |
|
||||
export
|
||||
ulimit -a
|
||||
- name: ${{matrix.check}}
|
||||
run: make ${{matrix.check}}
|
||||
|
||||
2
.github/workflows/clang-tidy.yml
vendored
2
.github/workflows/clang-tidy.yml
vendored
@ -11,7 +11,7 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-clang:2020-08-14
|
||||
container: px4io/px4-dev-clang:2020-11-18
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
|
||||
3
.github/workflows/compile_linux.yml
vendored
3
.github/workflows/compile_linux.yml
vendored
@ -11,7 +11,7 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-armhf:2020-08-14
|
||||
container: px4io/px4-dev-armhf:2020-11-18
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
@ -19,6 +19,7 @@ jobs:
|
||||
beaglebone_blue_default,
|
||||
emlid_navio2_default,
|
||||
px4_raspberrypi_default,
|
||||
scumaker_pilotpi_default,
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
50
.github/workflows/compile_linux_arm64.yml
vendored
Normal file
50
.github/workflows/compile_linux_arm64.yml
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
name: Linux ARM64 Targets
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-aarch64:2020-11-18
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
scumaker_pilotpi_arm64,
|
||||
]
|
||||
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: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{matrix.config}}-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 = 6" >> ~/.ccache/ccache.conf
|
||||
echo "max_size = 400M" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
- name: make ${{matrix.config}}
|
||||
run: make ${{matrix.config}}
|
||||
- name: ccache post-run
|
||||
run: ccache -s
|
||||
3
.github/workflows/compile_macos.yml
vendored
3
.github/workflows/compile_macos.yml
vendored
@ -15,8 +15,7 @@ jobs:
|
||||
matrix:
|
||||
config: [
|
||||
px4_fmu-v5_default,
|
||||
px4_sitl_default,
|
||||
#tests, # includes px4_sitl
|
||||
tests, # includes px4_sitl
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
5
.github/workflows/compile_nuttx.yml
vendored
5
.github/workflows/compile_nuttx.yml
vendored
@ -11,7 +11,7 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-nuttx-focal:2020-09-14
|
||||
container: px4io/px4-dev-nuttx-focal:2020-11-18
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
@ -27,7 +27,6 @@ jobs:
|
||||
cubepilot_cubeyellow_console,
|
||||
cubepilot_cubeyellow_default,
|
||||
holybro_durandal-v1_default,
|
||||
holybro_durandal-v1_stackcheck,
|
||||
holybro_kakutef7_default,
|
||||
holybro_pix32v5_default,
|
||||
intel_aerofc-v1_default,
|
||||
@ -40,7 +39,7 @@ jobs:
|
||||
nxp_fmuk66-v3_socketcan,
|
||||
nxp_fmuk66-v3_rtps,
|
||||
nxp_fmurt1062-v1_default,
|
||||
nxp_rddrone-uavcan146_default,
|
||||
nxp_ucans32k146_default,
|
||||
omnibus_f4sd_default,
|
||||
px4_fmu-v2_default,
|
||||
px4_fmu-v2_fixedwing,
|
||||
|
||||
4
.github/workflows/coverage.yml
vendored
4
.github/workflows/coverage.yml
vendored
@ -11,7 +11,9 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-base-focal:2020-09-14
|
||||
container:
|
||||
image: px4io/px4-dev-base-focal:2020-11-18
|
||||
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
|
||||
6
.github/workflows/mavros_avoidance_tests.yml
vendored
6
.github/workflows/mavros_avoidance_tests.yml
vendored
@ -19,7 +19,7 @@ jobs:
|
||||
- {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:2020-08-14
|
||||
image: px4io/px4-dev-ros-melodic:2020-11-18
|
||||
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
@ -49,7 +49,9 @@ jobs:
|
||||
ccache -z
|
||||
|
||||
- name: check environment
|
||||
run: export
|
||||
run: |
|
||||
export
|
||||
ulimit -a
|
||||
- name: Build PX4 and sitl_gazebo
|
||||
env:
|
||||
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
|
||||
|
||||
6
.github/workflows/mavros_mission_tests.yml
vendored
6
.github/workflows/mavros_mission_tests.yml
vendored
@ -25,7 +25,7 @@ jobs:
|
||||
- {vehicle: "tiltrotor", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
|
||||
|
||||
container:
|
||||
image: px4io/px4-dev-ros-melodic:2020-08-14
|
||||
image: px4io/px4-dev-ros-melodic:2020-11-18
|
||||
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
@ -55,7 +55,9 @@ jobs:
|
||||
ccache -z
|
||||
|
||||
- name: check environment
|
||||
run: export
|
||||
run: |
|
||||
export
|
||||
ulimit -a
|
||||
- name: Build PX4 and sitl_gazebo
|
||||
env:
|
||||
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
|
||||
|
||||
6
.github/workflows/mavros_offboard_tests.yml
vendored
6
.github/workflows/mavros_offboard_tests.yml
vendored
@ -20,7 +20,7 @@ jobs:
|
||||
#- {test_file: "mavros_posix_tests_offboard_rpyrt_ctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
|
||||
|
||||
container:
|
||||
image: px4io/px4-dev-ros-melodic:2020-08-14
|
||||
image: px4io/px4-dev-ros-melodic:2020-11-18
|
||||
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
@ -50,7 +50,9 @@ jobs:
|
||||
ccache -z
|
||||
|
||||
- name: check environment
|
||||
run: export
|
||||
run: |
|
||||
export
|
||||
ulimit -a
|
||||
- name: Build PX4 and sitl_gazebo
|
||||
env:
|
||||
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
|
||||
|
||||
14
.github/workflows/metadata.yml
vendored
14
.github/workflows/metadata.yml
vendored
@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
airframe:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-base-focal:2020-09-14
|
||||
container: px4io/px4-dev-base-focal:2020-11-18
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
module:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-base-focal:2020-09-14
|
||||
container: px4io/px4-dev-base-focal:2020-11-18
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
@ -42,7 +42,7 @@ jobs:
|
||||
|
||||
parameter:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-base-focal:2020-09-14
|
||||
container: px4io/px4-dev-base-focal:2020-11-18
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
@ -57,7 +57,7 @@ jobs:
|
||||
|
||||
uorb_graph:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-nuttx-focal:2020-09-14
|
||||
container: px4io/px4-dev-nuttx-focal:2020-11-18
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
@ -72,7 +72,7 @@ jobs:
|
||||
|
||||
micrortps_agent:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-base-focal:2020-09-14
|
||||
container: px4io/px4-dev-base-focal:2020-11-18
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
@ -86,7 +86,7 @@ jobs:
|
||||
|
||||
ROS_msgs:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-base-focal:2020-09-14
|
||||
container: px4io/px4-dev-base-focal:2020-11-18
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
@ -99,7 +99,7 @@ jobs:
|
||||
|
||||
ROS2_bridge:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-base-focal:2020-09-14
|
||||
container: px4io/px4-dev-base-focal:2020-11-18
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
|
||||
20
.github/workflows/sitl_tests.yml
vendored
20
.github/workflows/sitl_tests.yml
vendored
@ -15,12 +15,12 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config:
|
||||
- {latitude: "59.617693", longitude: "-151.145316", altitude: "48", build_type: "RelWithDebInfo"} # Alaska
|
||||
- {latitude: "-38.071235", longitude: "145.281220", altitude: "31", build_type: "RelWithDebInfo"} # Australia
|
||||
- {latitude: "29.660316", longitude: "-82.316658", altitude: "30", build_type: "RelWithDebInfo"} # Florida
|
||||
- {latitude: "47.397742", longitude: "8.545594", altitude: "488", build_type: "Coverage"} # Zurich
|
||||
- {latitude: "59.617693", longitude: "-151.145316", altitude: "48", build_type: "RelWithDebInfo", model: "iris" } # Alaska
|
||||
- {latitude: "-38.071235", longitude: "145.281220", altitude: "31", build_type: "RelWithDebInfo", model: "standard_vtol" } # Australia
|
||||
- {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
|
||||
container:
|
||||
image: px4io/px4-dev-simulation-focal:2020-08-14
|
||||
image: px4io/px4-dev-simulation-focal:2020-11-18
|
||||
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
@ -28,9 +28,9 @@ jobs:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
|
||||
- name: Download MAVSDK
|
||||
run: wget https://github.com/mavlink/MAVSDK/releases/download/v0.30.1/mavsdk_0.30.1_ubuntu18.04_amd64.deb
|
||||
run: wget https://github.com/mavlink/MAVSDK/releases/download/v0.33.1/mavsdk_0.33.1_ubuntu20.04_amd64.deb
|
||||
- name: Install MAVSDK
|
||||
run: dpkg -i mavsdk_0.30.1_ubuntu18.04_amd64.deb
|
||||
run: dpkg -i mavsdk_0.33.1_ubuntu20.04_amd64.deb
|
||||
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_timestamp
|
||||
@ -60,7 +60,9 @@ jobs:
|
||||
PX4_HOME_LON: ${{matrix.config.longitude}}
|
||||
PX4_HOME_ALT: ${{matrix.config.altitude}}
|
||||
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
|
||||
run: export
|
||||
run: |
|
||||
export
|
||||
ulimit -a
|
||||
- name: Build PX4
|
||||
env:
|
||||
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
|
||||
@ -92,7 +94,7 @@ jobs:
|
||||
PX4_HOME_LON: ${{matrix.config.longitude}}
|
||||
PX4_HOME_ALT: ${{matrix.config.altitude}}
|
||||
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
|
||||
run: test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 --abort-early test/mavsdk_tests/configs/sitl.json
|
||||
run: test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 --abort-early --model ${{matrix.config.model}} test/mavsdk_tests/configs/sitl.json
|
||||
|
||||
- name: Look at core files
|
||||
if: failure()
|
||||
|
||||
12
.gitmodules
vendored
12
.gitmodules
vendored
@ -12,15 +12,15 @@
|
||||
branch = master
|
||||
[submodule "Tools/sitl_gazebo"]
|
||||
path = Tools/sitl_gazebo
|
||||
url = https://github.com/PX4/sitl_gazebo.git
|
||||
url = https://github.com/PX4/PX4-SITL_gazebo.git
|
||||
branch = master
|
||||
[submodule "src/lib/matrix"]
|
||||
path = src/lib/matrix
|
||||
url = https://github.com/PX4/Matrix.git
|
||||
url = https://github.com/PX4/PX4-Matrix
|
||||
branch = master
|
||||
[submodule "src/lib/ecl"]
|
||||
path = src/lib/ecl
|
||||
url = https://github.com/PX4/ecl.git
|
||||
url = https://github.com/PX4/PX4-ECL
|
||||
branch = master
|
||||
[submodule "boards/atlflight/cmake_hexagon"]
|
||||
path = boards/atlflight/cmake_hexagon
|
||||
@ -28,7 +28,7 @@
|
||||
branch = px4
|
||||
[submodule "src/drivers/gps/devices"]
|
||||
path = src/drivers/gps/devices
|
||||
url = https://github.com/PX4/GpsDrivers.git
|
||||
url = https://github.com/PX4/PX4-GPSDrivers
|
||||
branch = master
|
||||
[submodule "src/modules/micrortps_bridge/micro-CDR"]
|
||||
path = src/modules/micrortps_bridge/micro-CDR
|
||||
@ -37,11 +37,11 @@
|
||||
[submodule "platforms/nuttx/NuttX/nuttx"]
|
||||
path = platforms/nuttx/NuttX/nuttx
|
||||
url = https://github.com/PX4/NuttX.git
|
||||
branch = px4_firmware_nuttx-9.1.0+
|
||||
branch = px4_firmware_nuttx-10.0.0+
|
||||
[submodule "platforms/nuttx/NuttX/apps"]
|
||||
path = platforms/nuttx/NuttX/apps
|
||||
url = https://github.com/PX4/NuttX-apps.git
|
||||
branch = px4_firmware_nuttx-9.1.0+
|
||||
branch = px4_firmware_nuttx-10.0.0+
|
||||
[submodule "platforms/qurt/dspal"]
|
||||
path = platforms/qurt/dspal
|
||||
url = https://github.com/ATLFlight/dspal.git
|
||||
|
||||
5
.vscode/cmake-variants.yaml
vendored
5
.vscode/cmake-variants.yaml
vendored
@ -86,6 +86,11 @@ CONFIG:
|
||||
buildType: MinSizeRel
|
||||
settings:
|
||||
CONFIG: cubepilot_cubeyellow_default
|
||||
emlid_navio2_default:
|
||||
short: emlid_navio2
|
||||
buildType: MinSizeRel
|
||||
settings:
|
||||
CONFIG: emlid_navio2_default
|
||||
holybro_durandal-v1_default:
|
||||
short: holybro_durandal-v1
|
||||
buildType: MinSizeRel
|
||||
|
||||
28
Jenkinsfile
vendored
28
Jenkinsfile
vendored
@ -15,7 +15,7 @@ pipeline {
|
||||
// stage('Catkin build on ROS workspace') {
|
||||
// agent {
|
||||
// docker {
|
||||
// image 'px4io/px4-dev-ros-melodic:2020-08-20'
|
||||
// image 'px4io/px4-dev-ros-melodic:2020-11-18'
|
||||
// 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') {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-ros2-foxy:2020-08-20'
|
||||
image 'px4io/px4-dev-ros2-foxy:2020-11-18'
|
||||
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
|
||||
}
|
||||
}
|
||||
@ -87,7 +87,7 @@ pipeline {
|
||||
|
||||
stage('Airframe') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh 'make distclean'
|
||||
@ -106,7 +106,7 @@ pipeline {
|
||||
|
||||
stage('Parameter') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh 'make distclean'
|
||||
@ -125,7 +125,7 @@ pipeline {
|
||||
|
||||
stage('Module') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh 'make distclean'
|
||||
@ -145,7 +145,7 @@ pipeline {
|
||||
stage('uORB graphs') {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
|
||||
image 'px4io/px4-dev-nuttx-focal:2020-11-18'
|
||||
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
@ -174,7 +174,7 @@ pipeline {
|
||||
|
||||
stage('Devguide') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh('export')
|
||||
@ -204,16 +204,18 @@ pipeline {
|
||||
|
||||
stage('Userguide') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh('export')
|
||||
unstash 'metadata_airframes'
|
||||
unstash 'metadata_parameters'
|
||||
unstash 'metadata_module_documentation'
|
||||
withCredentials([usernamePassword(credentialsId: 'px4buildbot_github_personal_token', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) {
|
||||
sh('git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/px4_user_guide.git')
|
||||
sh('cp airframes.md px4_user_guide/en/airframes/airframe_reference.md')
|
||||
sh('cp parameters.md px4_user_guide/en/advanced_config/parameter_reference.md')
|
||||
sh('cp -R modules/*.md px4_user_guide/en/modules/')
|
||||
sh('cd px4_user_guide; git status; git add .; git commit -a -m "Update PX4 Firmware metadata `date`" || true')
|
||||
sh('cd px4_user_guide; git push origin master || true')
|
||||
sh('rm -rf px4_user_guide')
|
||||
@ -232,7 +234,7 @@ pipeline {
|
||||
|
||||
stage('QGroundControl') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh('export')
|
||||
@ -260,7 +262,7 @@ pipeline {
|
||||
|
||||
stage('microRTPS agent') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh('export')
|
||||
@ -290,7 +292,7 @@ pipeline {
|
||||
|
||||
stage('PX4 ROS msgs') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh('export')
|
||||
@ -319,7 +321,7 @@ pipeline {
|
||||
|
||||
stage('PX4 ROS2 bridge') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh('export')
|
||||
@ -362,7 +364,7 @@ pipeline {
|
||||
|
||||
stage('S3') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-09-14' }
|
||||
docker { image 'px4io/px4-dev-base-focal:2020-11-18' }
|
||||
}
|
||||
steps {
|
||||
sh('export')
|
||||
|
||||
49
README.md
49
README.md
@ -1,20 +1,20 @@
|
||||
# PX4 Drone Autopilot
|
||||
|
||||
[](https://github.com/PX4/Firmware/releases) [](https://zenodo.org/badge/latestdoi/22634/PX4/Firmware)
|
||||
[](https://github.com/PX4/PX4-Autopilot/releases) [](https://zenodo.org/badge/latestdoi/22634/PX4/PX4-Autopilot)
|
||||
|
||||
[](https://github.com/PX4/Firmware/actions?query=workflow%3A%22Nuttx+Targets%22?branch=master) [](https://github.com/PX4/Firmware/actions?query=workflow%3A%22SITL+Tests%22)
|
||||
[](https://github.com/PX4/PX4-Autopilot/actions?query=workflow%3A%22Nuttx+Targets%22?branch=master) [](https://github.com/PX4/PX4-Autopilot/actions?query=workflow%3A%22SITL+Tests%22)
|
||||
|
||||
[](http://slack.px4.io)
|
||||
|
||||
This repository holds the [PX4](http://px4.io) flight control solution for drones, with the main applications located in the [src/modules](https://github.com/PX4/Firmware/tree/master/src/modules) directory. It also contains the PX4 Drone Middleware Platform, which provides drivers and middleware to run drones.
|
||||
This repository holds the [PX4](http://px4.io) flight control solution for drones, with the main applications located in the [src/modules](https://github.com/PX4/PX4-Autopilot/tree/master/src/modules) directory. It also contains the PX4 Drone Middleware Platform, which provides drivers and middleware to run drones.
|
||||
|
||||
* Official Website: http://px4.io (License: BSD 3-clause, [LICENSE](https://github.com/PX4/Firmware/blob/master/LICENSE))
|
||||
* Official Website: http://px4.io (License: BSD 3-clause, [LICENSE](https://github.com/PX4/PX4-Autopilot/blob/master/LICENSE))
|
||||
* [Supported airframes](https://docs.px4.io/master/en/airframes/airframe_reference.html) ([portfolio](http://px4.io/#airframes)):
|
||||
* [Multicopters](https://docs.px4.io/master/en/airframes/airframe_reference.html#copter)
|
||||
* [Fixed wing](https://docs.px4.io/master/en/airframes/airframe_reference.html#plane)
|
||||
* [VTOL](https://docs.px4.io/master/en/airframes/airframe_reference.html#vtol)
|
||||
* many more experimental types (Rovers, Blimps, Boats, Submarines, Autogyros, etc)
|
||||
* Releases: [Downloads](https://github.com/PX4/Firmware/releases)
|
||||
* Releases: [Downloads](https://github.com/PX4/PX4-Autopilot/releases)
|
||||
|
||||
|
||||
## PX4 Users
|
||||
@ -40,32 +40,43 @@ The PX4 Dev Team syncs up on a [weekly dev call](https://dev.px4.io/master/en/co
|
||||
|
||||
## Maintenance Team
|
||||
|
||||
* Project: Founder - [Lorenz Meier](https://github.com/LorenzMeier), Architecture: [Daniel Agar](https://github.com/dagar)
|
||||
* [Dev Call](https://github.com/PX4/Firmware/labels/devcall) - [Ramon Roche](https://github.com/mrpollo)
|
||||
* Project: Founder
|
||||
* [Lorenz Meier](https://github.com/LorenzMeier)
|
||||
* Architecture
|
||||
* [Daniel Agar](https://github.com/dagar)
|
||||
* [Dev Call](https://github.com/PX4/PX4-Autopilot/labels/devcall)
|
||||
* [Ramon Roche](https://github.com/mrpollo)
|
||||
* Communication Architecture
|
||||
* [Beat Kueng](https://github.com/bkueng)
|
||||
* [Julian Oes](https://github.com/JulianOes)
|
||||
* UI in QGroundControl
|
||||
* [Gus Grubba](https://github.com/dogmaphobic)
|
||||
* [Multicopter Flight Control](https://github.com/PX4/Firmware/labels/multicopter)
|
||||
* [Multicopter Flight Control](https://github.com/PX4/PX4-Autopilot/labels/multicopter)
|
||||
* [Mathieu Bresciani](https://github.com/bresch)
|
||||
* [Multicopter Software Architecture](https://github.com/PX4/Firmware/labels/multicopter)
|
||||
* [Multicopter Software Architecture](https://github.com/PX4/PX4-Autopilot/labels/multicopter)
|
||||
* [Matthias Grob](https://github.com/MaEtUgR)
|
||||
* [VTOL Flight Control](https://github.com/PX4/Firmware/labels/vtol)
|
||||
* [VTOL Flight Control](https://github.com/PX4/PX4-Autopilot/labels/vtol)
|
||||
* [Roman Bapst](https://github.com/RomanBapst)
|
||||
* [Fixed Wing Flight Control](https://github.com/PX4/Firmware/labels/fixedwing)
|
||||
* [Fixed Wing Flight Control](https://github.com/PX4/PX4-Autopilot/labels/fixedwing)
|
||||
* [Roman Bapst](https://github.com/RomanBapst)
|
||||
* OS / NuttX [David Sidrane](https://github.com/davids5)
|
||||
* Driver Architecture [Daniel Agar](https://github.com/dagar)
|
||||
* Commander Architecture [Julian Oes](https://github.com/julianoes)
|
||||
* [UAVCAN](https://github.com/PX4/Firmware/labels/uavcan) [Daniel Agar](https://github.com/dagar)
|
||||
* [State Estimation](https://github.com/PX4/Firmware/issues?q=is%3Aopen+is%3Aissue+label%3A%22state+estimation%22) - [Paul Riseborough](https://github.com/priseborough)
|
||||
* OS / NuttX
|
||||
* [David Sidrane](https://github.com/davids5)
|
||||
* Driver Architecture
|
||||
* [Daniel Agar](https://github.com/dagar)
|
||||
* Commander Architecture
|
||||
* [Julian Oes](https://github.com/julianoes)
|
||||
* [UAVCAN](https://github.com/PX4/PX4-Autopilot/labels/uavcan)
|
||||
* [Daniel Agar](https://github.com/dagar)
|
||||
* [State Estimation](https://github.com/PX4/PX4-Autopilot/issues?q=is%3Aopen+is%3Aissue+label%3A%22state+estimation%22)
|
||||
* [Paul Riseborough](https://github.com/priseborough)
|
||||
* Vision based navigation
|
||||
* [Julian Kent](https://github.com/jkflying)
|
||||
* Obstacle Avoidance - [Martina Rivizzigno](https://github.com/mrivi)
|
||||
* RTPS/ROS2 Interface - [Nuno Marques](https://github.com/TSC21)
|
||||
* Obstacle Avoidance
|
||||
* [Martina Rivizzigno](https://github.com/mrivi)
|
||||
* RTPS/ROS2 Interface
|
||||
* [Nuno Marques](https://github.com/TSC21)
|
||||
|
||||
See also [maintainers list](https://px4.io/community/maintainers/) (px4.io) and the [contributors list](https://github.com/PX4/Firmware/graphs/contributors) (Github).
|
||||
See also [maintainers list](https://px4.io/community/maintainers/) (px4.io) and the [contributors list](https://github.com/PX4/PX4-Autopilot/graphs/contributors) (Github).
|
||||
|
||||
## Supported Hardware
|
||||
|
||||
|
||||
@ -72,7 +72,7 @@ rgbled start -X -q
|
||||
rgbled_ncp5623c start -X -q
|
||||
rgbled_pwm start
|
||||
|
||||
if param greater LIGHT_EN_BLINKM 0
|
||||
if param greater -s LIGHT_EN_BLINKM 0
|
||||
then
|
||||
if blinkm start -X
|
||||
then
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# @name BlueROV2 Heavy Configuration
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.uuv_defaults
|
||||
|
||||
if [ $AUTOCNF = yes ]
|
||||
then
|
||||
#Set data link loss failsafe mode (0: disabled)
|
||||
param set NAV_DLL_ACT 0
|
||||
|
||||
# disable circuit breaker for airspeed sensor
|
||||
param set CBRK_AIRSPD_CHK 162128
|
||||
|
||||
fi
|
||||
|
||||
set PWM_OUT 12345678
|
||||
set MIXER_FILE etc/mixers-sitl/vectored6dof_sitl.main.mix
|
||||
set MIXER custom
|
||||
@ -16,17 +16,13 @@ then
|
||||
|
||||
param set MC_ROLLRATE_P 0.3
|
||||
|
||||
param set MIS_LTRMIN_ALT 10
|
||||
param set MIS_TAKEOFF_ALT 10
|
||||
param set MIS_YAW_TMT 10
|
||||
|
||||
param set MPC_ACC_HOR_MAX 2
|
||||
param set MPC_ACC_HOR_MAX 2
|
||||
param set MPC_THR_MIN 0.1
|
||||
param set MPC_TKO_SPEED 1
|
||||
param set MPC_THR_MIN 0.3
|
||||
param set MPC_XY_P 0.15
|
||||
param set MPC_XY_VEL_D_ACC 0.1
|
||||
param set MPC_XY_VEL_I_ACC 4
|
||||
param set MPC_XY_VEL_P_ACC 1
|
||||
param set MPC_Z_VEL_MAX_DN 1.5
|
||||
param set MPC_Z_VEL_P_ACC 16
|
||||
@ -38,6 +34,8 @@ then
|
||||
param set VT_F_TRANS_THR 0.7
|
||||
param set VT_TYPE 0
|
||||
|
||||
param set WV_EN 0
|
||||
|
||||
fi
|
||||
|
||||
set MAV_TYPE 20
|
||||
|
||||
@ -9,40 +9,33 @@
|
||||
|
||||
if [ $AUTOCNF = yes ]
|
||||
then
|
||||
param set FW_ARSP_MODE 1
|
||||
param set FW_AIRSPD_MAX 25
|
||||
param set FW_AIRSPD_MIN 14
|
||||
param set FW_AIRSPD_TRIM 16
|
||||
param set FW_L1_PERIOD 12
|
||||
param set FW_MAN_P_MAX 30
|
||||
param set FW_PR_FF 0.2
|
||||
param set FW_PR_I 0.4
|
||||
param set FW_PR_P 0.9
|
||||
param set FW_PSP_OFF 3
|
||||
param set FW_RR_FF 0.1
|
||||
param set FW_RR_P 0.3
|
||||
|
||||
param set MC_ROLLRATE_P 0.3
|
||||
param set MC_YAW_P 1.6
|
||||
|
||||
param set MIS_LTRMIN_ALT 10
|
||||
param set MIS_TAKEOFF_ALT 10
|
||||
param set MIS_YAW_TMT 10
|
||||
|
||||
param set MPC_ACC_HOR_MAX 2
|
||||
param set MPC_ACC_HOR_MAX 2
|
||||
param set MPC_THR_MIN 0.1
|
||||
param set MPC_TKO_SPEED 1
|
||||
param set MPC_XY_P 0.15
|
||||
param set MPC_XY_VEL_D_ACC 0.1
|
||||
param set MPC_XY_P 0.8
|
||||
param set MPC_XY_VEL_P_ACC 3
|
||||
param set MPC_XY_VEL_I_ACC 4
|
||||
param set MPC_XY_VEL_P_ACC 1
|
||||
param set MPC_Z_VEL_MAX_DN 1.5
|
||||
param set MPC_Z_VEL_P_ACC 16
|
||||
param set MPC_XY_VEL_D_ACC 0.1
|
||||
|
||||
param set NAV_ACC_RAD 5
|
||||
param set NAV_LOITER_RAD 80
|
||||
param set NAV_LOITER_RAD 100
|
||||
|
||||
param set VT_F_TRANS_DUR 5.0
|
||||
param set VT_F_TRANS_THR 0.75
|
||||
param set VT_FWD_THRUST_SC 1.1
|
||||
param set VT_TILT_FW 1
|
||||
param set VT_TILT_TRANS 0.6
|
||||
param set VT_ELEV_MC_LOCK 0
|
||||
param set VT_TYPE 1
|
||||
param set VT_B_TRANS_DUR 8
|
||||
param set VT_ELEV_MC_LOCK 0
|
||||
param set VT_FWD_THRUST_EN 4
|
||||
param set VT_MOT_ID 1234
|
||||
param set VT_TILT_TRANS 0.6
|
||||
param set VT_TYPE 1
|
||||
|
||||
fi
|
||||
|
||||
|
||||
@ -51,6 +51,7 @@ px4_add_romfs_files(
|
||||
1019_iris_dual_gps
|
||||
1020_uuv_generic
|
||||
1021_uuv_hippocampus
|
||||
1022_uuv_bluerov2_heavy
|
||||
1030_plane
|
||||
1031_plane_cam
|
||||
1032_plane_catapult
|
||||
|
||||
@ -2,6 +2,17 @@
|
||||
|
||||
# EKF2 replay script
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
if [ ! -f ${replay} ]; then
|
||||
echo "Invalid replay log file ${replay}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f replay_params.txt ]; then
|
||||
echo "Creating $(pwd)/replay_params.txt"
|
||||
ulog_params -i "${replay}" -d ' ' | grep -e '^EKF2' > replay_params.txt
|
||||
fi
|
||||
|
||||
publisher_rules_file="orb_publisher.rules"
|
||||
cat <<EOF > "$publisher_rules_file"
|
||||
restrict_topics: sensor_combined, vehicle_gps_position, vehicle_land_detected
|
||||
|
||||
@ -22,7 +22,6 @@ fi
|
||||
# initialize script variables
|
||||
set AUX_MODE none
|
||||
set IO_PRESENT no
|
||||
set LOG_FILE bootlog.txt
|
||||
set MAV_TYPE none
|
||||
set MIXER none
|
||||
set MIXER_AUX none
|
||||
@ -53,10 +52,6 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# clear bootlog
|
||||
[ -f $LOG_FILE ] && rm $LOG_FILE
|
||||
|
||||
|
||||
uorb start
|
||||
|
||||
# Load parameters
|
||||
@ -141,6 +136,12 @@ then
|
||||
# Speedup SITL startup
|
||||
param set EKF2_REQ_GPS_H 0.5
|
||||
|
||||
# Multi-EKF
|
||||
param set EKF2_MULTI_IMU 3
|
||||
param set SENS_IMU_MODE 0
|
||||
param set EKF2_MULTI_MAG 2
|
||||
param set SENS_MAG_MODE 0
|
||||
|
||||
# By default log from boot until first disarm.
|
||||
param set SDLOG_MODE 1
|
||||
# enable default, estimator replay and vision/avoidance logging profiles
|
||||
@ -210,6 +211,7 @@ if ! replay tryapplyparams
|
||||
then
|
||||
simulator start -c $simulator_tcp_port
|
||||
fi
|
||||
load_mon start
|
||||
battery_simulator start
|
||||
tone_alarm start
|
||||
rc_update start
|
||||
@ -218,7 +220,7 @@ commander start
|
||||
navigator start
|
||||
|
||||
|
||||
if ! param compare -s MNT_MODE_IN -1
|
||||
if param greater -s MNT_MODE_IN -1
|
||||
then
|
||||
vmount start
|
||||
fi
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#
|
||||
# @name Wing Wing (aka Z-84) Flying Wing
|
||||
#
|
||||
# @url https://docs.px4.io/master/en/framebuild_plane/wing_wing_z84.html
|
||||
# @url https://docs.px4.io/master/en/frames_plane/wing_wing_z84.html
|
||||
#
|
||||
# @type Flying Wing
|
||||
# @class Plane
|
||||
|
||||
39
ROMFS/px4fmu_common/init.d/airframes/4017_nxp_hovergames
Normal file
39
ROMFS/px4fmu_common/init.d/airframes/4017_nxp_hovergames
Normal file
@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# @name NXP HoverGames
|
||||
#
|
||||
# @type Quadrotor x
|
||||
# @class Copter
|
||||
#
|
||||
# @output MAIN1 motor 1
|
||||
# @output MAIN2 motor 2
|
||||
# @output MAIN3 motor 3
|
||||
# @output MAIN4 motor 4
|
||||
#
|
||||
# @board px4_fmu-v2 exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
#
|
||||
# @maintainer Iain Galloway <iain.galloway@nxp.com>
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
|
||||
set MIXER quad_x
|
||||
set PWM_OUT 1234
|
||||
|
||||
if [ $AUTOCNF = yes ]
|
||||
then
|
||||
|
||||
param set IMU_GYRO_CUTOFF 40
|
||||
param set IMU_DGYRO_CUTOFF 20
|
||||
param set IMU_GYRO_RATEMAX 400
|
||||
|
||||
param set MC_ROLLRATE_P 0.18
|
||||
param set MC_ROLLRATE_I 0.15
|
||||
param set MC_ROLLRATE_D 0.003
|
||||
|
||||
param set MC_PITCHRATE_P 0.18
|
||||
param set MC_PITCHRATE_I 0.15
|
||||
param set MC_PITCHRATE_D 0.003
|
||||
|
||||
fi
|
||||
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# @name Spedix S250AQ
|
||||
# @url https://docs.px4.io/master/en/framebuild_multicopter/spedix_s250_pixracer.html
|
||||
# @url https://docs.px4.io/master/en/frames_multicopter/spedix_s250_pixracer.html
|
||||
#
|
||||
# @type Quadrotor asymmetric
|
||||
# @class Copter
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# @name BlueROV2 (Heavy Configuration)
|
||||
#
|
||||
# @type Vectored 6 DOF UUV
|
||||
# @class Underwater Robot
|
||||
#
|
||||
# @output MAIN1 motor 1 CCW, bow starboard horizontal, , propeller CCW
|
||||
# @output MAIN2 motor 2 CCW, bow port horizontal, propeller CCW
|
||||
# @output MAIN3 motor 3 CCW, stern starboard horizontal, propeller CW
|
||||
# @output MAIN4 motor 4 CCW, stern port horizontal, propeller CW
|
||||
# @output MAIN5 motor 5 CCW, bow starboard vertical, propeller CCW
|
||||
# @output MAIN6 motor 6 CCW, bow port vertical, propeller CW
|
||||
# @output MAIN7 motor 7 CCW, stern starboard vertical, propeller CW
|
||||
# @output MAIN8 motor 8 CCW, stern port vertical, propeller CCW
|
||||
#
|
||||
# @maintainer Thies Lennart Alff <thies.lennart.alff@tuhh.de>
|
||||
#
|
||||
# @board px4_fmu-v2 exclude
|
||||
# @board intel_aerofc-v1 exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.uuv_defaults
|
||||
|
||||
if [ $AUTOCNF = yes ]
|
||||
then
|
||||
#Set data link loss failsafe mode (0: disabled)
|
||||
param set NAV_DLL_ACT 0
|
||||
|
||||
# disable circuit breaker for airspeed sensor
|
||||
param set CBRK_AIRSPD_CHK 162128
|
||||
# companion computer is connected via USB permanently
|
||||
param set CBRK_USB_CHK 197848
|
||||
param set CBRK_IO_SAFETY 22027
|
||||
|
||||
param set COM_PREARM_MODE 0
|
||||
|
||||
param set MAV_1_CONFIG 102
|
||||
|
||||
param set BAT1_A_PER_V 37.8798
|
||||
param set BAT1_CAPACITY 18000
|
||||
param set BAT1_V_DIV 11.0
|
||||
param set BAT1_N_CELLS 4
|
||||
param set BAT_V_OFFS_CURR 0.33
|
||||
fi
|
||||
|
||||
set PWM_OUT 12345678
|
||||
# set MIXER IO_pass
|
||||
set MIXER vectored6dof
|
||||
|
||||
@ -69,6 +69,7 @@ px4_add_romfs_files(
|
||||
4014_s500
|
||||
4015_holybro_s500
|
||||
4016_holybro_px4vision
|
||||
4017_nxp_hovergames
|
||||
4020_hk_micro_pcb
|
||||
4030_3dr_solo
|
||||
4031_3dr_quad
|
||||
@ -158,4 +159,5 @@ px4_add_romfs_files(
|
||||
# [60000, 61000] (Unmanned) Underwater Robots
|
||||
60000_uuv_generic
|
||||
60001_uuv_hippocampus
|
||||
60002_uuv_bluerov2_heavy
|
||||
)
|
||||
|
||||
@ -40,7 +40,7 @@ else
|
||||
# EKF2
|
||||
#
|
||||
param set SYS_MC_EST_GROUP 2
|
||||
ekf2 start
|
||||
ekf2 start &
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
#
|
||||
# Start the attitude and position estimator.
|
||||
#
|
||||
ekf2 start
|
||||
ekf2 start &
|
||||
|
||||
#
|
||||
# Start attitude controller.
|
||||
|
||||
@ -18,7 +18,7 @@ set OUTPUT_DEV none
|
||||
# If mount (gimbal) control is enabled and output mode is AUX, set the aux
|
||||
# mixer to mount (override the airframe-specific MIXER_AUX setting).
|
||||
#
|
||||
if ! param compare -s MNT_MODE_IN -1
|
||||
if param greater -s MNT_MODE_IN -1
|
||||
then
|
||||
if param compare -s MNT_MODE_OUT 0
|
||||
then
|
||||
@ -43,13 +43,13 @@ then
|
||||
if [ $IO_PRESENT = yes ]
|
||||
then
|
||||
set OUTPUT_MODE io
|
||||
if param greater DSHOT_CONFIG 0
|
||||
if param greater -s DSHOT_CONFIG 0
|
||||
then
|
||||
set OUTPUT_CMD dshot
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if param greater DSHOT_CONFIG 0
|
||||
if param greater -s DSHOT_CONFIG 0
|
||||
then
|
||||
set OUTPUT_MODE dshot
|
||||
set OUTPUT_CMD dshot
|
||||
@ -93,7 +93,7 @@ then
|
||||
then
|
||||
if ! $OUTPUT_CMD mode_$FMU_MODE
|
||||
then
|
||||
echo "$OUTPUT_CMD start failed" >> $LOG_FILE
|
||||
echo "$OUTPUT_CMD start failed"
|
||||
tune_control play error
|
||||
fi
|
||||
fi
|
||||
@ -172,7 +172,6 @@ then
|
||||
echo "INFO [init] Mixer: ${MIXER_FILE} on ${OUTPUT_DEV}"
|
||||
else
|
||||
echo "ERROR [init] Failed loading mixer: ${MIXER_FILE}"
|
||||
echo "ERROR [init] Failed loading mixer: ${MIXER_FILE}" >> $LOG_FILE
|
||||
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
|
||||
fi
|
||||
|
||||
@ -180,7 +179,6 @@ else
|
||||
if [ $MIXER != skip ]
|
||||
then
|
||||
echo "ERROR [init] Mixer undefined"
|
||||
echo "ERROR [init] Mixer undefined" >> $LOG_FILE
|
||||
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
|
||||
fi
|
||||
fi
|
||||
@ -213,7 +211,6 @@ then
|
||||
echo "INFO [init] Mixer: ${MIXER_AUX_FILE} appended to ${OUTPUT_DEV}"
|
||||
else
|
||||
echo "ERROR [init] Failed appending mixer: ${MIXER_AUX_FILE}"
|
||||
echo "ERROR [init] Failed appending mixer: ${MIXER_AUX_FILE}" >> $LOG_FILE
|
||||
fi
|
||||
fi
|
||||
if [ -e $OUTPUT_AUX_DEV -a $OUTPUT_MODE != hil ]
|
||||
@ -223,14 +220,13 @@ then
|
||||
echo "INFO [init] Mixer: ${MIXER_AUX_FILE} on ${OUTPUT_AUX_DEV}"
|
||||
else
|
||||
echo "ERROR [init] Failed loading mixer: ${MIXER_AUX_FILE}"
|
||||
echo "ERROR [init] Failed loading mixer: ${MIXER_AUX_FILE}" >> $LOG_FILE
|
||||
fi
|
||||
else
|
||||
set PWM_AUX_OUT none
|
||||
set FAILSAFE_AUX none
|
||||
fi
|
||||
else
|
||||
echo "ERROR: Could not start: pwm_out mode_pwm" >> $LOG_FILE
|
||||
echo "ERROR: Could not start: pwm_out mode_pwm"
|
||||
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
|
||||
set PWM_AUX_OUT none
|
||||
set FAILSAFE_AUX none
|
||||
|
||||
@ -17,7 +17,7 @@ then
|
||||
# Allow PX4IO to recover from midair restarts.
|
||||
px4io recovery
|
||||
else
|
||||
echo "PX4IO start failed" >> $LOG_FILE
|
||||
echo "PX4IO start failed"
|
||||
tune_control play -t 18 # PROG_PX4IO_ERR
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -40,7 +40,7 @@ else
|
||||
# EKF2
|
||||
#
|
||||
param set SYS_MC_EST_GROUP 2
|
||||
ekf2 start
|
||||
ekf2 start &
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
#
|
||||
# Start the attitude and position estimator.
|
||||
#
|
||||
ekf2 start
|
||||
ekf2 start &
|
||||
#attitude_estimator_q start
|
||||
#local_position_estimator start
|
||||
|
||||
|
||||
@ -71,6 +71,13 @@ then
|
||||
lightware_laser_i2c start -X
|
||||
fi
|
||||
|
||||
# Sensor HY-SRF05 or HC-SR05 ultrasonic sensor
|
||||
if param compare -s SENS_EN_SR05 1
|
||||
then
|
||||
srf05 start
|
||||
fi
|
||||
|
||||
|
||||
# Heater driver for temperature regulated IMUs.
|
||||
if param compare -s SENS_EN_THERMAL 1
|
||||
then
|
||||
@ -95,6 +102,12 @@ then
|
||||
paw3902 -S start
|
||||
fi
|
||||
|
||||
# vl53l1x i2c distance sensor
|
||||
if param compare -s SENS_EN_VL53L1X 1
|
||||
then
|
||||
vl53l1x start -X
|
||||
fi
|
||||
|
||||
# probe for optional external I2C devices
|
||||
if param compare SENS_EXT_I2C_PRB 1
|
||||
then
|
||||
|
||||
@ -7,17 +7,17 @@
|
||||
|
||||
set TEMP_COMP_START ""
|
||||
|
||||
if param compare TC_A_ENABLE 1
|
||||
if param compare -s TC_A_ENABLE 1
|
||||
then
|
||||
set TEMP_COMP_START "true"
|
||||
fi
|
||||
|
||||
if param compare TC_B_ENABLE 1
|
||||
if param compare -s TC_B_ENABLE 1
|
||||
then
|
||||
set TEMP_COMP_START "true"
|
||||
fi
|
||||
|
||||
if param compare TC_G_ENABLE 1
|
||||
if param compare -s TC_G_ENABLE 1
|
||||
then
|
||||
set TEMP_COMP_START "true"
|
||||
fi
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
# Begin Estimator Group Selection #
|
||||
###############################################################################
|
||||
|
||||
ekf2 start
|
||||
ekf2 start &
|
||||
|
||||
###############################################################################
|
||||
# End Estimator Group Selection #
|
||||
|
||||
@ -183,6 +183,13 @@ then
|
||||
echo "UUV mixer undefined"
|
||||
fi
|
||||
|
||||
if [ $MAV_TYPE = none ]
|
||||
then
|
||||
# Set default MAV_TYPE to submarine if not defined
|
||||
set MAV_TYPE 12
|
||||
fi
|
||||
|
||||
param set MAV_TYPE ${MAV_TYPE}
|
||||
# Load mixer and configure outputs.
|
||||
. ${R}etc/init.d/rc.interface
|
||||
|
||||
@ -199,5 +206,5 @@ fi
|
||||
if [ $VEHICLE_TYPE = none ]
|
||||
then
|
||||
echo "No autostart ID found"
|
||||
ekf2 start
|
||||
ekf2 start &
|
||||
fi
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
# Begin Estimator group selection #
|
||||
###############################################################################
|
||||
|
||||
ekf2 start
|
||||
ekf2 start &
|
||||
|
||||
###############################################################################
|
||||
# End Estimator group selection #
|
||||
|
||||
@ -15,8 +15,10 @@ then
|
||||
param set MIS_TAKEOFF_ALT 20
|
||||
param set MIS_YAW_TMT 10
|
||||
|
||||
param set EKF2_ARSP_THR 10
|
||||
param set EKF2_FUSE_BETA 1
|
||||
|
||||
param set MPC_ACC_HOR_MAX 2
|
||||
param set MPC_LAND_SPEED 0.7
|
||||
param set MPC_TKO_SPEED 1
|
||||
param set MPC_VEL_MANUAL 3
|
||||
param set MPC_XY_CRUISE 3
|
||||
|
||||
@ -32,7 +32,6 @@ set FMU_MODE pwm
|
||||
set FRC /fs/microsd/etc/rc.txt
|
||||
set IOFW "/etc/extras/px4_io-v2_default.bin"
|
||||
set IO_PRESENT no
|
||||
set LOG_FILE /fs/microsd/bootlog.txt
|
||||
set LOGGER_ARGS ""
|
||||
set LOGGER_BUF 14
|
||||
set MAV_TYPE none
|
||||
@ -140,10 +139,7 @@ else
|
||||
else
|
||||
set STARTUP_TUNE 15 # tune 15 = SD_ERROR
|
||||
echo "ERROR [init] format failed"
|
||||
set LOG_FILE /dev/null
|
||||
fi
|
||||
else
|
||||
set LOG_FILE /dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -157,9 +153,10 @@ then
|
||||
else
|
||||
|
||||
#
|
||||
# Set the parameter file if mtd starts successfully.
|
||||
# Set the parameter file the board supports params on
|
||||
# MTD device.
|
||||
#
|
||||
if mtd start
|
||||
if mft query -q -k MTD -s MTD_PARAMETERS -v /fs/mtd_params
|
||||
then
|
||||
set PARAM_FILE /fs/mtd_params
|
||||
fi
|
||||
@ -167,13 +164,10 @@ else
|
||||
#
|
||||
# Load parameters.
|
||||
#
|
||||
# if MTD has a secondary storage it is used for (factory) calibration data
|
||||
if mtd has-secondary
|
||||
# if the board has a storage for (factory) calibration data
|
||||
if mft query -q -k MTD -s MTD_CALDATA -v /fs/mtd_caldata
|
||||
then
|
||||
if mtd start -i 1 /fs/mtd_caldata
|
||||
then
|
||||
param load /fs/mtd_caldata
|
||||
fi
|
||||
param load /fs/mtd_caldata
|
||||
fi
|
||||
|
||||
param select $PARAM_FILE
|
||||
@ -244,7 +238,7 @@ else
|
||||
rgbled start -X -q
|
||||
rgbled_ncp5623c start -X -q
|
||||
|
||||
if param greater LIGHT_EN_BLINKM 0
|
||||
if param greater -s LIGHT_EN_BLINKM 0
|
||||
then
|
||||
if blinkm start -X
|
||||
then
|
||||
@ -313,7 +307,7 @@ else
|
||||
tune_control stop
|
||||
if px4io checkcrc ${IOFW}
|
||||
then
|
||||
echo "PX4IO CRC OK after updating" >> $LOG_FILE
|
||||
echo "PX4IO CRC OK after updating"
|
||||
tune_control play -t 17 # tune 17 = PROG_PX4IO_OK
|
||||
set IO_PRESENT yes
|
||||
fi
|
||||
@ -321,7 +315,7 @@ else
|
||||
|
||||
if [ $IO_PRESENT = no ]
|
||||
then
|
||||
echo "PX4IO update failed" >> $LOG_FILE
|
||||
echo "PX4IO update failed"
|
||||
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
|
||||
fi
|
||||
fi
|
||||
@ -338,7 +332,7 @@ else
|
||||
|
||||
if [ $USE_IO = yes -a $IO_PRESENT = no ]
|
||||
then
|
||||
echo "PX4IO not found" >> $LOG_FILE
|
||||
echo "PX4IO not found"
|
||||
tune_control play error
|
||||
fi
|
||||
|
||||
@ -410,7 +404,7 @@ else
|
||||
set AUX_MODE pwm4
|
||||
fi
|
||||
|
||||
if param greater TRIG_MODE 0
|
||||
if param greater -s TRIG_MODE 0
|
||||
then
|
||||
# We ONLY support trigger on pins 5+6 or 7+8 when simultanously using AUX for actuator output.
|
||||
if param compare TRIG_PINS 56
|
||||
@ -509,23 +503,28 @@ else
|
||||
#
|
||||
# Start vmount to control mounts such as gimbals, disabled by default.
|
||||
#
|
||||
if ! param compare MNT_MODE_IN -1
|
||||
if param greater -s MNT_MODE_IN -1
|
||||
then
|
||||
vmount start
|
||||
fi
|
||||
|
||||
# Check for flow sensor
|
||||
if param compare SENS_EN_PX4FLOW 1
|
||||
if param compare -s SENS_EN_PX4FLOW 1
|
||||
then
|
||||
px4flow start -X
|
||||
fi
|
||||
|
||||
# Blacksheep telemetry
|
||||
if param greater TEL_BST_EN 0
|
||||
if param compare -s TEL_BST_EN 1
|
||||
then
|
||||
bst start -X
|
||||
fi
|
||||
|
||||
if param compare -s IMU_GYRO_FFT_EN 1
|
||||
then
|
||||
gyro_fft start
|
||||
fi
|
||||
|
||||
#
|
||||
# Optional board supplied extras: rc.board_extras
|
||||
#
|
||||
@ -588,7 +587,6 @@ unset FMU_MODE
|
||||
unset FRC
|
||||
unset IO_PRESENT
|
||||
unset IOFW
|
||||
unset LOG_FILE
|
||||
unset LOGGER_ARGS
|
||||
unset LOGGER_BUF
|
||||
unset MAV_TYPE
|
||||
|
||||
@ -42,4 +42,5 @@ px4_add_romfs_files(
|
||||
standard_vtol_sitl.main.mix
|
||||
tiltrotor_sitl.main.mix
|
||||
uuv_x_sitl.main.mix
|
||||
vectored6dof_sitl.main.mix
|
||||
)
|
||||
|
||||
32
ROMFS/px4fmu_common/mixers-sitl/vectored6dof_sitl.main.mix
Normal file
32
ROMFS/px4fmu_common/mixers-sitl/vectored6dof_sitl.main.mix
Normal file
@ -0,0 +1,32 @@
|
||||
# Motor 1
|
||||
M: 2
|
||||
S: 0 2 -4000 -4000 0 -4000 +4000
|
||||
S: 0 3 +4000 +4000 0 -4000 +4000
|
||||
# Motor 2
|
||||
M: 2
|
||||
S: 0 2 +4000 +4000 0 -4000 +4000
|
||||
S: 0 3 +4000 +4000 0 -4000 +4000
|
||||
# Motor 3
|
||||
M: 2
|
||||
S: 0 2 -4000 -4000 0 -4000 +4000
|
||||
S: 0 3 +4000 +4000 0 -4000 +4000
|
||||
# Motor 4
|
||||
M: 2
|
||||
S: 0 2 +4000 +4000 0 -4000 +4000
|
||||
S: 0 3 +4000 +4000 0 -4000 +4000
|
||||
# Motor 5
|
||||
M: 2
|
||||
S: 0 0 -4000 -4000 0 -4000 +4000
|
||||
S: 0 1 +4000 +4000 0 -4000 +4000
|
||||
# Motor 6
|
||||
M: 2
|
||||
S: 0 0 -4000 -4000 0 -4000 +4000
|
||||
S: 0 1 -4000 -4000 0 -4000 +4000
|
||||
# Motor 7
|
||||
M: 2
|
||||
S: 0 0 +4000 +4000 0 -4000 +4000
|
||||
S: 0 1 +4000 +4000 0 -4000 +4000
|
||||
# Motor 8
|
||||
M: 2
|
||||
S: 0 0 +4000 +4000 0 -4000 +4000
|
||||
S: 0 1 -4000 -4000 0 -4000 +4000
|
||||
@ -85,6 +85,7 @@ px4_add_romfs_files(
|
||||
tri_y_yaw+.main.mix
|
||||
tri_y_yaw-.main.mix
|
||||
uuv_x.main.mix
|
||||
vectored6dof.main.mix
|
||||
Viper.main.mix
|
||||
vtol_AAERT.aux.mix
|
||||
vtol_AAVVT.aux.mix
|
||||
|
||||
32
ROMFS/px4fmu_common/mixers/vectored6dof.main.mix
Normal file
32
ROMFS/px4fmu_common/mixers/vectored6dof.main.mix
Normal file
@ -0,0 +1,32 @@
|
||||
# Motor 1
|
||||
M: 2
|
||||
S: 0 2 -4000 -4000 0 -4000 +4000
|
||||
S: 0 3 +4000 +4000 0 -4000 +4000
|
||||
# Motor 2
|
||||
M: 2
|
||||
S: 0 2 +4000 +4000 0 -4000 +4000
|
||||
S: 0 3 +4000 +4000 0 -4000 +4000
|
||||
# Motor 3
|
||||
M: 2
|
||||
S: 0 2 -4000 -4000 0 -4000 +4000
|
||||
S: 0 3 +4000 +4000 0 -4000 +4000
|
||||
# Motor 4
|
||||
M: 2
|
||||
S: 0 2 +4000 +4000 0 -4000 +4000
|
||||
S: 0 3 +4000 +4000 0 -4000 +4000
|
||||
# Motor 5
|
||||
M: 2
|
||||
S: 0 0 -4000 -4000 0 -4000 +4000
|
||||
S: 0 1 +4000 +4000 0 -4000 +4000
|
||||
# Motor 6
|
||||
M: 2
|
||||
S: 0 0 -4000 -4000 0 -4000 +4000
|
||||
S: 0 1 -4000 -4000 0 -4000 +4000
|
||||
# Motor 7
|
||||
M: 2
|
||||
S: 0 0 +4000 +4000 0 -4000 +4000
|
||||
S: 0 1 +4000 +4000 0 -4000 +4000
|
||||
# Motor 8
|
||||
M: 2
|
||||
S: 0 0 +4000 +4000 0 -4000 +4000
|
||||
S: 0 1 -4000 -4000 0 -4000 +4000
|
||||
@ -29,11 +29,9 @@ Channel 5 connects to the right (starboard) elevon.
|
||||
Channel 6 connects to the left (port) elevon.
|
||||
|
||||
M: 2
|
||||
O: 7500 7500 0 -10000 10000
|
||||
S: 1 0 10000 10000 0 -10000 10000
|
||||
S: 1 1 10000 10000 0 -10000 10000
|
||||
|
||||
M: 2
|
||||
O: 7500 7500 0 -10000 10000
|
||||
S: 1 0 10000 10000 0 -10000 10000
|
||||
S: 1 1 -10000 -10000 0 -10000 10000
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#! /usr/bin/python
|
||||
#! /usr/bin/env python3
|
||||
|
||||
import serial, time
|
||||
import subprocess
|
||||
@ -10,7 +10,7 @@ def monitor_firmware_upload(port, baudrate):
|
||||
databits = serial.EIGHTBITS
|
||||
stopbits = serial.STOPBITS_ONE
|
||||
parity = serial.PARITY_NONE
|
||||
ser = serial.Serial(port, baudrate, databits, parity, stopbits, timeout=10)
|
||||
ser = serial.Serial(port, baudrate, databits, parity, stopbits, timeout=1)
|
||||
|
||||
finished = 0
|
||||
|
||||
@ -19,8 +19,9 @@ def monitor_firmware_upload(port, baudrate):
|
||||
timeout_newline = time.time()
|
||||
|
||||
while finished == 0:
|
||||
serial_line = ser.readline()
|
||||
print(serial_line.replace('\n',''))
|
||||
serial_line = ser.readline().decode("ascii", errors='ignore')
|
||||
if (len(serial_line) > 0):
|
||||
print(serial_line.replace('\n', ''))
|
||||
|
||||
if "NuttShell (NSH)" in serial_line:
|
||||
finished = 1
|
||||
@ -36,16 +37,17 @@ def monitor_firmware_upload(port, baudrate):
|
||||
finished = 1
|
||||
break
|
||||
|
||||
# newline every 30 seconds if still running
|
||||
if time.time() - timeout_newline > 30:
|
||||
ser.write('\n')
|
||||
# newline every 10 seconds if still running
|
||||
if time.time() - timeout_newline > 10:
|
||||
timeout_newline = time.time()
|
||||
ser.write('\n'.encode("ascii"))
|
||||
ser.flush()
|
||||
|
||||
ser.close()
|
||||
|
||||
def main():
|
||||
parser = ArgumentParser(description=__doc__)
|
||||
parser.add_argument('--device', "-d", nargs='?', default = None, help='')
|
||||
parser.add_argument('--device', "-d", nargs='?', default=None, help='', required=True)
|
||||
parser.add_argument("--baudrate", "-b", dest="baudrate", type=int, help="Mavlink port baud rate (default=57600)", default=57600)
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
@ -1,72 +1,87 @@
|
||||
#! /usr/bin/python
|
||||
#! /usr/bin/env python3
|
||||
|
||||
import serial, time
|
||||
import subprocess
|
||||
from subprocess import call, Popen
|
||||
from argparse import ArgumentParser
|
||||
import re
|
||||
import sys
|
||||
|
||||
def do_nsh_cmd(port, baudrate, cmd):
|
||||
databits = serial.EIGHTBITS
|
||||
stopbits = serial.STOPBITS_ONE
|
||||
parity = serial.PARITY_NONE
|
||||
ser = serial.Serial(port, baudrate, databits, parity, stopbits, timeout=10)
|
||||
|
||||
ser.write('\n')
|
||||
|
||||
finished = 0
|
||||
success = False
|
||||
|
||||
timeout = 10 # 10 seconds
|
||||
timeout_start = time.time()
|
||||
|
||||
while True:
|
||||
serial_line = ser.readline()
|
||||
print(serial_line.replace('\n',''))
|
||||
|
||||
if "nsh>" in serial_line:
|
||||
break
|
||||
elif "NuttShell (NSH)" in serial_line:
|
||||
break
|
||||
|
||||
if time.time() > timeout_start + timeout:
|
||||
print("Error, timeout")
|
||||
break
|
||||
|
||||
ser.write('\n')
|
||||
time.sleep(0.01)
|
||||
|
||||
ser = serial.Serial(port, baudrate, databits, parity, stopbits, timeout=0.1)
|
||||
|
||||
# run command
|
||||
ser.write(cmd + '\n')
|
||||
|
||||
timeout = 30 # 30 seconds
|
||||
timeout_start = time.time()
|
||||
timeout_newline = timeout_start
|
||||
timeout = 10 # 10 seconds
|
||||
|
||||
# clear
|
||||
ser.write("\n".encode("ascii"))
|
||||
ser.flush()
|
||||
ser.readline()
|
||||
|
||||
success_cmd = "cmd succeeded!"
|
||||
|
||||
serial_cmd = '{0}; echo "{1}"\n'.format(cmd, success_cmd)
|
||||
ser.write(serial_cmd.encode("ascii"))
|
||||
ser.flush()
|
||||
ser.readline()
|
||||
|
||||
# TODO: require successful command echo
|
||||
# while True:
|
||||
# serial_cmd = '{0}; echo "{1}"\n'.format(cmd, success_cmd)
|
||||
# ser.write(serial_cmd.encode("ascii"))
|
||||
# ser.flush()
|
||||
|
||||
# serial_line = ser.readline().decode("ascii", errors='ignore')
|
||||
|
||||
# if cmd in serial_line:
|
||||
# break
|
||||
# else:
|
||||
# print(serial_line, end='')
|
||||
|
||||
# if time.time() > timeout_start + timeout:
|
||||
# print("Error, timeout")
|
||||
# sys.exit(-1)
|
||||
# break
|
||||
|
||||
# time.sleep(1)
|
||||
|
||||
|
||||
timeout_start = time.time()
|
||||
timeout = 30 # 30 seconds
|
||||
|
||||
while True:
|
||||
serial_line = ser.readline()
|
||||
print(serial_line.replace('\n',''))
|
||||
serial_line = ser.readline().decode("ascii", errors='ignore')
|
||||
|
||||
if cmd in serial_line:
|
||||
continue
|
||||
elif "nsh>" in serial_line:
|
||||
break
|
||||
elif "NuttShell (NSH)" in serial_line:
|
||||
if success_cmd in serial_line:
|
||||
break
|
||||
else:
|
||||
if len(serial_line) > 0:
|
||||
print(serial_line, end='')
|
||||
|
||||
if "nsh>" in serial_line:
|
||||
#sys.exit(-1) # error, command didn't complete successfully
|
||||
break # TODO: return error on failure
|
||||
elif "NuttShell (NSH)" in serial_line:
|
||||
#sys.exit(-1) # error, command didn't complete successfully
|
||||
break # TODO: return error on failure
|
||||
|
||||
if len(serial_line) <= 0:
|
||||
ser.write("\n".encode("ascii"))
|
||||
ser.flush()
|
||||
|
||||
if time.time() > timeout_start + timeout:
|
||||
print("Error, timeout")
|
||||
break
|
||||
|
||||
ser.write('\n')
|
||||
time.sleep(0.01)
|
||||
sys.exit(-1)
|
||||
|
||||
ser.close()
|
||||
|
||||
def main():
|
||||
parser = ArgumentParser(description=__doc__)
|
||||
parser.add_argument('--device', "-d", nargs='?', default = None, help='')
|
||||
parser.add_argument('--device', "-d", nargs='?', default=None, help='', required=True)
|
||||
parser.add_argument("--baudrate", "-b", dest="baudrate", type=int, help="Mavlink port baud rate (default=57600)", default=57600)
|
||||
parser.add_argument("--cmd", "-c", dest="cmd", help="Command to run")
|
||||
args = parser.parse_args()
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#! /usr/bin/python
|
||||
#! /usr/bin/env python3
|
||||
|
||||
import serial, time
|
||||
import subprocess
|
||||
@ -7,64 +7,70 @@ from argparse import ArgumentParser
|
||||
import re
|
||||
import unittest
|
||||
import os
|
||||
import sys
|
||||
|
||||
def do_test(port, baudrate, test_name):
|
||||
databits = serial.EIGHTBITS
|
||||
stopbits = serial.STOPBITS_ONE
|
||||
parity = serial.PARITY_NONE
|
||||
ser = serial.Serial(port, baudrate, databits, parity, stopbits, timeout=10)
|
||||
ser = serial.Serial(port, baudrate, databits, parity, stopbits, timeout=1)
|
||||
|
||||
ser.write('\n')
|
||||
|
||||
finished = 0
|
||||
success = False
|
||||
|
||||
timeout = 10 # 10 seconds
|
||||
timeout_start = time.time()
|
||||
|
||||
while True:
|
||||
serial_line = ser.readline()
|
||||
print(serial_line.replace('\n',''))
|
||||
|
||||
if "nsh>" in serial_line:
|
||||
break
|
||||
elif "NuttShell (NSH)" in serial_line:
|
||||
break
|
||||
|
||||
if time.time() > timeout_start + timeout:
|
||||
print("Error, timeout")
|
||||
break
|
||||
|
||||
ser.write('\n')
|
||||
time.sleep(0.01)
|
||||
|
||||
|
||||
# run test cmd
|
||||
print('\n|======================================================================')
|
||||
cmd = 'tests ' + test_name
|
||||
ser.write(cmd + '\n')
|
||||
print("| Running:", cmd)
|
||||
print('|======================================================================')
|
||||
timeout_start = time.time()
|
||||
timeout = 10 # 10 seconds
|
||||
|
||||
# clear
|
||||
ser.write("\n".encode("ascii"))
|
||||
ser.flush()
|
||||
ser.readline()
|
||||
|
||||
serial_cmd = '{0}\n'.format(cmd)
|
||||
ser.write(serial_cmd.encode("ascii"))
|
||||
ser.flush()
|
||||
ser.readline()
|
||||
|
||||
# TODO: retry command
|
||||
# while True:
|
||||
# serial_cmd = '{0}\n'.format(cmd)
|
||||
# ser.write(serial_cmd.encode("ascii"))
|
||||
# ser.flush()
|
||||
|
||||
# serial_line = ser.readline().decode("ascii", errors='ignore')
|
||||
|
||||
# if cmd in serial_line:
|
||||
# break
|
||||
# else:
|
||||
# print(serial_line.replace('\n', ''))
|
||||
|
||||
# if time.time() > timeout_start + timeout:
|
||||
# print("Error, unable to write cmd")
|
||||
# return False
|
||||
|
||||
# time.sleep(1)
|
||||
|
||||
|
||||
# print results, wait for final result (PASSED or FAILED)
|
||||
timeout = 180 # 3 minutes
|
||||
timeout_start = time.time()
|
||||
timeout_newline = timeout_start
|
||||
|
||||
while True:
|
||||
serial_line = ser.readline()
|
||||
print(serial_line.replace('\n',''))
|
||||
serial_line = ser.readline().decode("ascii", errors='ignore')
|
||||
if (len(serial_line) > 0):
|
||||
print(serial_line, end='')
|
||||
|
||||
if cmd in serial_line:
|
||||
continue
|
||||
elif test_name + " PASSED" in serial_line:
|
||||
if test_name + " PASSED" in serial_line:
|
||||
success = True
|
||||
break
|
||||
elif test_name + " FAILED" in serial_line:
|
||||
success = False
|
||||
break
|
||||
elif "nsh>" in serial_line:
|
||||
success = False
|
||||
break
|
||||
elif "NuttShell (NSH)" in serial_line:
|
||||
success = False
|
||||
break
|
||||
|
||||
if time.time() > timeout_start + timeout:
|
||||
print("Error, timeout")
|
||||
@ -72,22 +78,28 @@ def do_test(port, baudrate, test_name):
|
||||
success = False
|
||||
break
|
||||
|
||||
# newline every 30 seconds if still running
|
||||
if time.time() - timeout_newline > 30:
|
||||
ser.write('\n')
|
||||
# newline every 10 seconds if still running
|
||||
if time.time() - timeout_newline > 10:
|
||||
ser.write("\n".encode("ascii"))
|
||||
timeout_newline = time.time()
|
||||
|
||||
ser.close()
|
||||
|
||||
return success
|
||||
|
||||
class TestHadrwareMethods(unittest.TestCase):
|
||||
class TestHardwareMethods(unittest.TestCase):
|
||||
TEST_DEVICE = 0
|
||||
TEST_BAUDRATE = 0
|
||||
|
||||
def test_atomic_bitset(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "atomic_bitset"))
|
||||
|
||||
def test_bezier(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "bezier"))
|
||||
|
||||
def test_bitset(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "bitset"))
|
||||
|
||||
def test_bson(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "bson"))
|
||||
|
||||
@ -97,8 +109,8 @@ class TestHadrwareMethods(unittest.TestCase):
|
||||
def test_controllib(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "controllib"))
|
||||
|
||||
# def test_dataman(self):
|
||||
# self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "dataman"))
|
||||
# def test_dataman(self):
|
||||
# self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "dataman"))
|
||||
|
||||
def floattest_float(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "float"))
|
||||
@ -109,6 +121,9 @@ class TestHadrwareMethods(unittest.TestCase):
|
||||
def test_IntrusiveQueue(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "IntrusiveQueue"))
|
||||
|
||||
def test_IntrusiveSortedList(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "IntrusiveSortedList"))
|
||||
|
||||
def test_List(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "List"))
|
||||
|
||||
@ -133,8 +148,8 @@ class TestHadrwareMethods(unittest.TestCase):
|
||||
def test_microbench_uorb(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "microbench_uorb"))
|
||||
|
||||
# def test_mixer(self):
|
||||
# self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "mixer"))
|
||||
# def test_mixer(self):
|
||||
# self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "mixer"))
|
||||
|
||||
def test_param(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "param"))
|
||||
@ -145,34 +160,34 @@ class TestHadrwareMethods(unittest.TestCase):
|
||||
def test_perf(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "perf"))
|
||||
|
||||
def search_mintest_xxx(self):
|
||||
# def test_rc(self):
|
||||
# self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "rc"))
|
||||
|
||||
def test_search_min(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "search_min"))
|
||||
|
||||
def test_sleep(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "sleep"))
|
||||
|
||||
def test_smoothz(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "smoothz"))
|
||||
|
||||
def test_time(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "time"))
|
||||
|
||||
#def test_uorb(self):
|
||||
# self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "uorb"))
|
||||
def test_uorb(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "uorb"))
|
||||
|
||||
def test_versioning(self):
|
||||
self.assertTrue(do_test(self.TEST_DEVICE, self.TEST_BAUDRATE, "versioning"))
|
||||
|
||||
def main():
|
||||
parser = ArgumentParser(description=__doc__)
|
||||
parser.add_argument('--device', "-d", nargs='?', default = None, help='')
|
||||
parser.add_argument('--device', "-d", nargs='?', default=None, help='', required=True)
|
||||
parser.add_argument("--baudrate", "-b", dest="baudrate", type=int, help="Mavlink port baud rate (default=57600)", default=57600)
|
||||
args = parser.parse_args()
|
||||
|
||||
TestHadrwareMethods.TEST_DEVICE = args.device
|
||||
TestHadrwareMethods.TEST_BAUDRATE = args.baudrate
|
||||
TestHardwareMethods.TEST_DEVICE = args.device
|
||||
TestHardwareMethods.TEST_BAUDRATE = args.baudrate
|
||||
|
||||
unittest.main(__name__, argv=['main'])
|
||||
unittest.main(__name__, failfast=True, verbosity=0, argv=['main'])
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@ -5,8 +5,8 @@ function check_git_submodule {
|
||||
# The .git exists in a submodule if init and update have been done.
|
||||
if [[ -f $1"/.git" || -d $1"/.git" ]]; then
|
||||
|
||||
# CI environment always update
|
||||
if [ "$CI" == "true" ]; then
|
||||
# always update within CI environment or configuring withing VSCode CMake where you can't interact
|
||||
if [ "$CI" == "true" ] || [ -n "${VSCODE_PID+set}" ]; then
|
||||
git submodule --quiet sync --recursive -- $1
|
||||
git submodule --quiet update --init --recursive --jobs=8 -- $1 || true
|
||||
git submodule --quiet update --init --recursive --jobs=8 -- $1
|
||||
|
||||
@ -4,22 +4,25 @@ if [ -z ${PX4_DOCKER_REPO+x} ]; then
|
||||
echo "guessing PX4_DOCKER_REPO based on input";
|
||||
if [[ $@ =~ .*px4_fmu.* ]]; then
|
||||
# nuttx-px4fmu-v{1,2,3,4,5}
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2020-09-14"
|
||||
elif [[ $@ =~ .*ocpoc.* ]] || [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*beaglebone.* ]] || [[ $@ =~ .*airpi2.* ]]; then
|
||||
# aerotenna_ocpoc_default, beaglebone_blue_default, emlid_navio2_default, px4_raspberrypi_default, scumaker_airpi2_default
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2020-04-01"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2020-11-18"
|
||||
elif [[ $@ =~ .*ocpoc.* ]] || [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*beaglebone.* ]] || [[ $@ =~ .*pilotpi.default ]]; then
|
||||
# aerotenna_ocpoc_default, beaglebone_blue_default, emlid_navio2_default, px4_raspberrypi_default, scumaker_pilotpi_default
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2020-11-18"
|
||||
elif [[ $@ =~ .*pilotpi.arm64 ]]; then
|
||||
# scumaker_pilotpi_arm64
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-aarch64:latest"
|
||||
elif [[ $@ =~ .*eagle.* ]] || [[ $@ =~ .*excelsior.* ]]; then
|
||||
# eagle, excelsior
|
||||
PX4_DOCKER_REPO="lorenzmeier/px4-dev-snapdragon:2020-04-01"
|
||||
elif [[ $@ =~ .*ocpoc.* ]] || [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*bebop.* ]]; then
|
||||
# aerotenna_ocpoc_default, posix_rpi_cross, posix_bebop_default
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2020-04-01"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2020-11-18"
|
||||
elif [[ $@ =~ .*clang.* ]] || [[ $@ =~ .*scan-build.* ]]; then
|
||||
# clang tools
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-clang:2020-04-01"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-clang:2020-11-18"
|
||||
elif [[ $@ =~ .*tests* ]]; then
|
||||
# run all tests with simulation
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-simulation-bionic:2020-04-01"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-simulation-bionic:2020-11-18"
|
||||
fi
|
||||
else
|
||||
echo "PX4_DOCKER_REPO is set to '$PX4_DOCKER_REPO'";
|
||||
|
||||
@ -14,13 +14,14 @@ from analysis.checks import perform_ecl_ekf_checks
|
||||
from analysis.post_processing import get_estimator_check_flags
|
||||
|
||||
def analyse_ekf(
|
||||
ulog: ULog, check_levels: Dict[str, float], red_thresh: float = 1.0,
|
||||
amb_thresh: float = 0.5, min_flight_duration_seconds: float = 5.0,
|
||||
ulog: ULog, check_levels: Dict[str, float], multi_instance: int = 0,
|
||||
red_thresh: float = 1.0, amb_thresh: float = 0.5, min_flight_duration_seconds: float = 5.0,
|
||||
in_air_margin_seconds: float = 5.0, pos_checks_when_sensors_not_fused: bool = False) -> \
|
||||
Tuple[str, Dict[str, str], Dict[str, float], Dict[str, float]]:
|
||||
"""
|
||||
:param ulog:
|
||||
:param check_levels:
|
||||
:param multi_instance:
|
||||
:param red_thresh:
|
||||
:param amb_thresh:
|
||||
:param min_flight_duration_seconds:
|
||||
@ -30,22 +31,19 @@ def analyse_ekf(
|
||||
"""
|
||||
|
||||
try:
|
||||
estimator_states = ulog.get_dataset('estimator_states').data
|
||||
print('found estimator_states data')
|
||||
estimator_states = ulog.get_dataset('estimator_states', multi_instance).data
|
||||
except:
|
||||
raise PreconditionError('could not find estimator_states data')
|
||||
raise PreconditionError('could not find estimator_states instance', multi_instance)
|
||||
|
||||
try:
|
||||
estimator_status = ulog.get_dataset('estimator_status').data
|
||||
print('found estimator_status data')
|
||||
estimator_status = ulog.get_dataset('estimator_status', multi_instance).data
|
||||
except:
|
||||
raise PreconditionError('could not find estimator_status data')
|
||||
raise PreconditionError('could not find estimator_status instance', multi_instance)
|
||||
|
||||
try:
|
||||
_ = ulog.get_dataset('estimator_innovations').data
|
||||
print('found estimator_innovations data')
|
||||
_ = ulog.get_dataset('estimator_innovations', multi_instance).data
|
||||
except:
|
||||
raise PreconditionError('could not find estimator_innovations data')
|
||||
raise PreconditionError('could not find estimator_innovations instance', multi_instance)
|
||||
|
||||
try:
|
||||
in_air = InAirDetector(
|
||||
@ -71,7 +69,7 @@ def analyse_ekf(
|
||||
|
||||
metrics = calculate_ecl_ekf_metrics(
|
||||
ulog, innov_flags, innov_fail_checks, sensor_checks, in_air, in_air_no_ground_effects,
|
||||
red_thresh=red_thresh, amb_thresh=amb_thresh)
|
||||
multi_instance, red_thresh=red_thresh, amb_thresh=amb_thresh)
|
||||
|
||||
check_status, master_status = perform_ecl_ekf_checks(
|
||||
metrics, sensor_checks, innov_fail_checks, check_levels)
|
||||
|
||||
@ -13,7 +13,7 @@ from analysis.detectors import InAirDetector
|
||||
def calculate_ecl_ekf_metrics(
|
||||
ulog: ULog, innov_flags: Dict[str, float], innov_fail_checks: List[str],
|
||||
sensor_checks: List[str], in_air: InAirDetector, in_air_no_ground_effects: InAirDetector,
|
||||
red_thresh: float = 1.0, amb_thresh: float = 0.5) -> Tuple[dict, dict, dict, dict]:
|
||||
multi_instance: int = 0, red_thresh: float = 1.0, amb_thresh: float = 0.5) -> Tuple[dict, dict, dict, dict]:
|
||||
|
||||
sensor_metrics = calculate_sensor_metrics(
|
||||
ulog, sensor_checks, in_air, in_air_no_ground_effects,
|
||||
@ -22,9 +22,9 @@ def calculate_ecl_ekf_metrics(
|
||||
innov_fail_metrics = calculate_innov_fail_metrics(
|
||||
innov_flags, innov_fail_checks, in_air, in_air_no_ground_effects)
|
||||
|
||||
imu_metrics = calculate_imu_metrics(ulog, in_air_no_ground_effects)
|
||||
imu_metrics = calculate_imu_metrics(ulog, multi_instance, in_air_no_ground_effects)
|
||||
|
||||
estimator_status_data = ulog.get_dataset('estimator_status').data
|
||||
estimator_status_data = ulog.get_dataset('estimator_status', multi_instance).data
|
||||
|
||||
# Check for internal filter nummerical faults
|
||||
ekf_metrics = {'filter_faults_max': np.amax(estimator_status_data['filter_fault_flags'])}
|
||||
@ -44,10 +44,10 @@ def calculate_ecl_ekf_metrics(
|
||||
|
||||
def calculate_sensor_metrics(
|
||||
ulog: ULog, sensor_checks: List[str], in_air: InAirDetector,
|
||||
in_air_no_ground_effects: InAirDetector, red_thresh: float = 1.0,
|
||||
amb_thresh: float = 0.5) -> Dict[str, float]:
|
||||
in_air_no_ground_effects: InAirDetector, multi_instance: int = 0,
|
||||
red_thresh: float = 1.0, amb_thresh: float = 0.5) -> Dict[str, float]:
|
||||
|
||||
estimator_status_data = ulog.get_dataset('estimator_status').data
|
||||
estimator_status_data = ulog.get_dataset('estimator_status', multi_instance).data
|
||||
|
||||
sensor_metrics = dict()
|
||||
|
||||
@ -131,10 +131,9 @@ def calculate_innov_fail_metrics(
|
||||
return innov_fail_metrics
|
||||
|
||||
|
||||
def calculate_imu_metrics(
|
||||
ulog: ULog, in_air_no_ground_effects: InAirDetector) -> dict:
|
||||
def calculate_imu_metrics(ulog: ULog, multi_instance, in_air_no_ground_effects: InAirDetector) -> dict:
|
||||
|
||||
estimator_status_data = ulog.get_dataset('estimator_status').data
|
||||
estimator_status_data = ulog.get_dataset('estimator_status', multi_instance).data
|
||||
|
||||
imu_metrics = dict()
|
||||
|
||||
@ -158,7 +157,7 @@ def calculate_imu_metrics(
|
||||
in_air_no_ground_effects, np.mean)
|
||||
|
||||
# IMU bias checks
|
||||
estimator_states_data = ulog.get_dataset('estimator_states').data
|
||||
estimator_states_data = ulog.get_dataset('estimator_states', multi_instance).data
|
||||
|
||||
imu_metrics['imu_dang_bias_median'] = np.sqrt(np.sum([np.square(calculate_stat_from_signal(
|
||||
estimator_states_data, 'estimator_states', signal, in_air_no_ground_effects, np.median))
|
||||
|
||||
@ -17,7 +17,7 @@ from plotting.data_plots import TimeSeriesPlot, InnovationPlot, ControlModeSumma
|
||||
from analysis.detectors import PreconditionError
|
||||
import analysis.data_version_handler as dvh
|
||||
|
||||
def create_pdf_report(ulog: ULog, output_plot_filename: str) -> None:
|
||||
def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str) -> None:
|
||||
"""
|
||||
creates a pdf report of the ekf analysis.
|
||||
:param ulog:
|
||||
@ -29,20 +29,18 @@ def create_pdf_report(ulog: ULog, output_plot_filename: str) -> None:
|
||||
# save the plots to PDF
|
||||
|
||||
try:
|
||||
estimator_status = ulog.get_dataset('estimator_status').data
|
||||
print('found estimator_status data')
|
||||
estimator_status = ulog.get_dataset('estimator_status', multi_instance).data
|
||||
except:
|
||||
raise PreconditionError('could not find estimator_status data')
|
||||
raise PreconditionError('could not find estimator_status instance', multi_instance)
|
||||
|
||||
try:
|
||||
estimator_states = ulog.get_dataset('estimator_states').data
|
||||
print('found estimator_states data')
|
||||
estimator_states = ulog.get_dataset('estimator_states', multi_instance).data
|
||||
except:
|
||||
raise PreconditionError('could not find estimator_states data')
|
||||
raise PreconditionError('could not find estimator_states instance', multi_instance)
|
||||
|
||||
try:
|
||||
estimator_innovations = ulog.get_dataset('estimator_innovations').data
|
||||
estimator_innovation_variances = ulog.get_dataset('estimator_innovation_variances').data
|
||||
estimator_innovations = ulog.get_dataset('estimator_innovations', multi_instance).data
|
||||
estimator_innovation_variances = ulog.get_dataset('estimator_innovation_variances', multi_instance).data
|
||||
innovation_data = estimator_innovations
|
||||
for key in estimator_innovation_variances:
|
||||
# append 'var' to the field name such that we can distingush between innov and innov_var
|
||||
@ -65,7 +63,7 @@ def create_pdf_report(ulog: ULog, output_plot_filename: str) -> None:
|
||||
for key in innovation_data:
|
||||
innovation_data[key] = innovation_data[key][0:innovation_data_min_length]
|
||||
|
||||
print('found innovation data (merged estimator_innovations + estimator_innovation_variances)')
|
||||
print('found innovation data (merged estimator_innovations + estimator_innovation_variances) instance', multi_instance)
|
||||
|
||||
except:
|
||||
raise PreconditionError('could not find innovation data')
|
||||
|
||||
@ -90,6 +90,21 @@ def process_logdata_ekf(
|
||||
except:
|
||||
raise PreconditionError('could not open {:s}'.format(filename))
|
||||
|
||||
ekf_instances = 1
|
||||
|
||||
try:
|
||||
estimator_selector_status = ulog.get_dataset('estimator_selector_status',).data
|
||||
print('found estimator_selector_status (multi-ekf) data')
|
||||
|
||||
for instances_available in estimator_selector_status['instances_available']:
|
||||
if instances_available > ekf_instances:
|
||||
ekf_instances = instances_available
|
||||
|
||||
print(ekf_instances, 'ekf instances')
|
||||
|
||||
except:
|
||||
print('could not find estimator_selector_status data')
|
||||
|
||||
try:
|
||||
# get the dictionary of fail and warning test thresholds from a csv file
|
||||
with open(check_level_dict_filename, 'r') as file:
|
||||
@ -100,30 +115,35 @@ def process_logdata_ekf(
|
||||
raise PreconditionError('could not find {:s}'.format(check_level_dict_filename))
|
||||
|
||||
in_air_margin = 5.0 if sensor_safety_margins else 0.0
|
||||
# perform the ekf analysis
|
||||
master_status, check_status, metrics, airtime_info = analyse_ekf(
|
||||
ulog, check_levels, red_thresh=1.0, amb_thresh=0.5, min_flight_duration_seconds=5.0,
|
||||
in_air_margin_seconds=in_air_margin)
|
||||
|
||||
test_results = create_results_table(
|
||||
check_table_filename, master_status, check_status, metrics, airtime_info)
|
||||
for multi_instance in range(ekf_instances):
|
||||
|
||||
# write metadata to a .csv file
|
||||
with open('{:s}.mdat.csv'.format(filename), "w") as file:
|
||||
print('\nestimator instance:', multi_instance)
|
||||
|
||||
file.write("name,value,description\n")
|
||||
# perform the ekf analysis
|
||||
master_status, check_status, metrics, airtime_info = analyse_ekf(
|
||||
ulog, check_levels, multi_instance, red_thresh=1.0, amb_thresh=0.5, min_flight_duration_seconds=5.0,
|
||||
in_air_margin_seconds=in_air_margin)
|
||||
|
||||
# loop through the test results dictionary and write each entry on a separate row, with data comma separated
|
||||
# save data in alphabetical order
|
||||
key_list = list(test_results.keys())
|
||||
key_list.sort()
|
||||
for key in key_list:
|
||||
file.write(key + "," + str(test_results[key][0]) + "," + test_results[key][1] + "\n")
|
||||
print('Test results written to {:s}.mdat.csv'.format(filename))
|
||||
test_results = create_results_table(
|
||||
check_table_filename, master_status, check_status, metrics, airtime_info)
|
||||
|
||||
if plot:
|
||||
create_pdf_report(ulog, '{:s}.pdf'.format(filename))
|
||||
print('Plots saved to {:s}.pdf'.format(filename))
|
||||
# write metadata to a .csv file
|
||||
with open('{:s}-{:d}.mdat.csv'.format(filename, multi_instance), "w") as file:
|
||||
|
||||
file.write("name,value,description\n")
|
||||
|
||||
# loop through the test results dictionary and write each entry on a separate row, with data comma separated
|
||||
# save data in alphabetical order
|
||||
key_list = list(test_results.keys())
|
||||
key_list.sort()
|
||||
for key in key_list:
|
||||
file.write(key + "," + str(test_results[key][0]) + "," + test_results[key][1] + "\n")
|
||||
print('Test results written to {:s}-{:d}.mdat.csv'.format(filename, multi_instance))
|
||||
|
||||
if plot:
|
||||
create_pdf_report(ulog, multi_instance, '{:s}-{:d}.pdf'.format(filename, multi_instance))
|
||||
print('Plots saved to {:s}-{:d}.pdf'.format(filename, multi_instance))
|
||||
|
||||
return test_results
|
||||
|
||||
|
||||
@ -16,8 +16,8 @@ function spawn_model() {
|
||||
MODEL=$1
|
||||
N=$2 #Instance Number
|
||||
|
||||
SUPPORTED_MODELS=("iris" "iris_rtps" "plane" "standard_vtol")
|
||||
if [[ " ${SUPPORTED_MODELS[*]} " != *"$MODEL "* ]];
|
||||
SUPPORTED_MODELS=("iris" "iris_rtps" "plane" "standard_vtol" "rover" "r1_rover" "typhoon_h480")
|
||||
if [[ " ${SUPPORTED_MODELS[*]} " != *"$MODEL"* ]];
|
||||
then
|
||||
echo "ERROR: Currently only vehicle model $MODEL is not supported!"
|
||||
echo " Supported Models: [${SUPPORTED_MODELS[@]}]"
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 9f46d5529158096e955a7950dc6ac55d0cdb1710
|
||||
Subproject commit c51a61b9ebf9aed10fedba249e643ec296d5c40e
|
||||
@ -26,7 +26,7 @@ as well (such as `free`). Use `help` on the console to get a list of all
|
||||
available commands, and in most cases `command help` will print the usage.
|
||||
|
||||
Since this is generated from source, errors must be reported/fixed
|
||||
in the [Firmware](https://github.com/PX4/Firmware) repository.
|
||||
in the [PX4-Autopilot](https://github.com/PX4/PX4-Autopilot) repository.
|
||||
The documentation pages can be generated by running the following command from
|
||||
the root of the Firmware directory:
|
||||
```
|
||||
@ -72,7 +72,7 @@ The generated files will be written to the `modules` directory.
|
||||
result += "%s\n" % doc
|
||||
usage_string = module.usage_string()
|
||||
if len(usage_string) > 0:
|
||||
result += "### Usage {#%s_usage}\n```\n%s\n```\n" % (module.name(), usage_string)
|
||||
result += '<a id="%s_usage"></a>\n### Usage\n```\n%s\n```\n' % (module.name(), usage_string)
|
||||
return result
|
||||
|
||||
def Save(self, dirname):
|
||||
|
||||
@ -11,6 +11,8 @@ pandas>=0.21
|
||||
pkgconfig
|
||||
psutil
|
||||
pygments
|
||||
wheel>=0.31.1
|
||||
pymavlink
|
||||
pyros-genmsg
|
||||
pyserial>=3.0
|
||||
pyulog>=0.5.0
|
||||
@ -19,4 +21,3 @@ requests
|
||||
setuptools>=39.2.0
|
||||
six>=1.12.0
|
||||
toml>=0.9
|
||||
wheel>=0.31.1
|
||||
|
||||
64
Tools/setup/shell.nix
Normal file
64
Tools/setup/shell.nix
Normal file
@ -0,0 +1,64 @@
|
||||
let
|
||||
pkgs = import (builtins.fetchTarball {
|
||||
name = "nixos-20.09-2020-10-29";
|
||||
url = "https://github.com/nixos/nixpkgs/archive/edb26126d98bc696f4f3e206583faa65d3d6e818.tar.gz";
|
||||
sha256 = "1cl4ka4kk7kh3bl78g06dhiidazf65q8miyzaxi9930d6gwyzkci";
|
||||
}) {};
|
||||
empy = with pkgs.python3Packages; buildPythonPackage rec {
|
||||
pname = "empy";
|
||||
version = "3.3.4";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1cq1izl6l87i5i3vj0jcqfksh10kpiwpr2m19vgpj530bdw4kb3k";
|
||||
};
|
||||
doCheck = false;
|
||||
};
|
||||
pyros-genmsg = with pkgs.python3Packages; buildPythonPackage rec {
|
||||
pname = "pyros-genmsg";
|
||||
version = "0.5.8";
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "pyros_genmsg";
|
||||
sha256 = "0y7l131lc77v0c1rhxza41cxnnxc7acfqzlqf84fdya0kiyv071w";
|
||||
};
|
||||
doCheck = false;
|
||||
};
|
||||
pyulog = with pkgs.python3Packages; buildPythonPackage rec {
|
||||
pname = "pyulog";
|
||||
version = "0.8.0";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1ivvhfi9rsrqdk9f06rj0q1d367ngyy0xyc2x9mdwjx3dazwgn45";
|
||||
};
|
||||
propagatedBuildInputs = [ numpy ];
|
||||
doCheck = false;
|
||||
};
|
||||
in pkgs.mkShell {
|
||||
nativeBuildInputs = [ pkgs.cmake ];
|
||||
buildInputs = [
|
||||
pkgs.gcc-arm-embedded
|
||||
pkgs.python3
|
||||
] ++ (with pkgs.python3Packages; [
|
||||
argcomplete
|
||||
cerberus
|
||||
coverage
|
||||
empy
|
||||
jinja2
|
||||
matplotlib
|
||||
numpy
|
||||
packaging
|
||||
pandas
|
||||
pkgconfig
|
||||
psutil
|
||||
pygments
|
||||
pyros-genmsg
|
||||
pyserial
|
||||
pyulog
|
||||
pyyaml
|
||||
requests
|
||||
setuptools
|
||||
six
|
||||
toml
|
||||
wheel
|
||||
]);
|
||||
}
|
||||
@ -1 +1 @@
|
||||
Subproject commit 4f03afc7def0b958e7567a35093bacf93dcc824f
|
||||
Subproject commit 4043287bbe07a9d091d579b755796e70d45058e8
|
||||
@ -127,7 +127,30 @@ elif [ "$program" == "gazebo" ] && [ ! -n "$no_sim" ]; then
|
||||
gzserver $verbose $world_path &
|
||||
SIM_PID=$!
|
||||
|
||||
while gz model --verbose --spawn-file="${src_path}/Tools/sitl_gazebo/models/${model}/${model_name}.sdf" --model-name=${model} -x 1.01 -y 0.98 -z 0.83 2>&1 | grep -q "An instance of Gazebo is not running."; do
|
||||
# Check all paths in ${GAZEBO_MODEL_PATH} for specified model
|
||||
IFS_bak=$IFS
|
||||
IFS=":"
|
||||
for possible_model_path in ${GAZEBO_MODEL_PATH}; do
|
||||
if [ -z $possible_model_path ]; then
|
||||
continue
|
||||
fi
|
||||
# trim \r from path
|
||||
possible_model_path=$(echo $possible_model_path | tr -d '\r')
|
||||
if test -f "${possible_model_path}/${model}/${model}.sdf" ; then
|
||||
modelpath=$possible_model_path
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$IFS_bak
|
||||
|
||||
if [ -z $modelpath ]; then
|
||||
echo "Model ${model} not found in model path: ${GAZEBO_MODEL_PATH}"
|
||||
exit 1
|
||||
else
|
||||
echo "Using: ${modelpath}/${model}/${model}.sdf"
|
||||
fi
|
||||
|
||||
while gz model --verbose --spawn-file="${modelpath}/${model}/${model_name}.sdf" --model-name=${model} -x 1.01 -y 0.98 -z 0.83 2>&1 | grep -q "An instance of Gazebo is not running."; do
|
||||
echo "gzserver not ready yet, trying again!"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
@ -87,6 +87,7 @@ px4_add_board(
|
||||
hardfault_log
|
||||
i2cdetect
|
||||
led_control
|
||||
mft
|
||||
mixer
|
||||
motor_ramp
|
||||
motor_test
|
||||
|
||||
@ -89,8 +89,8 @@ CONFIG_MTD=y
|
||||
CONFIG_MTD_BYTE_WRITE=y
|
||||
CONFIG_MTD_PARTITION=y
|
||||
CONFIG_MTD_RAMTRON=y
|
||||
CONFIG_NAME_MAX=40
|
||||
CONFIG_NFILE_DESCRIPTORS=12
|
||||
CONFIG_NFILE_STREAMS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_ARCHROMFS=y
|
||||
CONFIG_NSH_ARGCAT=y
|
||||
|
||||
@ -307,5 +307,9 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
#endif
|
||||
|
||||
/* Configure the HW based on the manifest */
|
||||
|
||||
px4_platform_configure();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@ -122,7 +122,6 @@ CONFIG_NET_TCP_WRITE_BUFFERS=y
|
||||
CONFIG_NET_UDP=y
|
||||
CONFIG_NET_UDP_CHECKSUMS=y
|
||||
CONFIG_NFILE_DESCRIPTORS=12
|
||||
CONFIG_NFILE_STREAMS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_ARCHROMFS=y
|
||||
CONFIG_NSH_ARGCAT=y
|
||||
|
||||
@ -192,6 +192,10 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
configure_switch();
|
||||
|
||||
/* Configure the HW based on the manifest */
|
||||
|
||||
px4_platform_configure();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
@ -43,6 +43,7 @@ px4_add_board(
|
||||
hardfault_log
|
||||
i2cdetect
|
||||
led_control
|
||||
mft
|
||||
mixer
|
||||
motor_ramp
|
||||
motor_test
|
||||
|
||||
@ -85,7 +85,6 @@ CONFIG_MTD_AT24XX=y
|
||||
CONFIG_MTD_BYTE_WRITE=y
|
||||
CONFIG_MTD_PARTITION=y
|
||||
CONFIG_NFILE_DESCRIPTORS=12
|
||||
CONFIG_NFILE_STREAMS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_ARCHROMFS=y
|
||||
CONFIG_NSH_ARGCAT=y
|
||||
|
||||
@ -64,6 +64,7 @@ EXTERN(_vectors) /* force the vectors to be included in the output */
|
||||
* code pulled in by libgcc.a requires it (and that code cannot be easily avoided).
|
||||
*/
|
||||
EXTERN(abort)
|
||||
EXTERN(board_get_manifest)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
@ -35,6 +35,7 @@ add_library(drivers_board
|
||||
i2c.cpp
|
||||
init.c
|
||||
led.c
|
||||
mtd.cpp
|
||||
spi.cpp
|
||||
timer_config.cpp
|
||||
usb.c
|
||||
|
||||
@ -169,5 +169,9 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
#endif
|
||||
|
||||
/* Configure the HW based on the manifest */
|
||||
|
||||
px4_platform_configure();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
81
boards/bitcraze/crazyflie/src/mtd.cpp
Normal file
81
boards/bitcraze/crazyflie/src/mtd.cpp
Normal file
@ -0,0 +1,81 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2020 PX4 Development Team. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name PX4 nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/spi/spi.h>
|
||||
#include <px4_platform_common/px4_manifest.h>
|
||||
// KiB BS nB
|
||||
static const px4_mft_device_t i2c1 = { // 24AA64FT on Base 8K 32 X 256
|
||||
.bus_type = px4_mft_device_t::I2C,
|
||||
.devid = PX4_MK_I2C_DEVID(1, 0x50)
|
||||
};
|
||||
|
||||
|
||||
static const px4_mtd_entry_t fmu_eeprom = {
|
||||
.device = &i2c1,
|
||||
.npart = 2,
|
||||
.partd = {
|
||||
{
|
||||
.type = MTD_PARAMETERS,
|
||||
.path = "/fs/mtd_params",
|
||||
.nblocks = 128
|
||||
},
|
||||
{
|
||||
.type = MTD_WAYPOINTS,
|
||||
.path = "/fs/mtd_waypoints",
|
||||
.nblocks = 128
|
||||
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
static const px4_mtd_manifest_t board_mtd_config = {
|
||||
.nconfigs = 1,
|
||||
.entries = {
|
||||
&fmu_eeprom,
|
||||
}
|
||||
};
|
||||
|
||||
static const px4_mft_entry_s mtd_mft = {
|
||||
.type = MTD,
|
||||
.pmft = (void *) &board_mtd_config,
|
||||
};
|
||||
|
||||
static const px4_mft_s mft = {
|
||||
.nmft = 1,
|
||||
.mfts = &mtd_mft
|
||||
};
|
||||
|
||||
const px4_mft_s *board_get_manifest(void)
|
||||
{
|
||||
return &mft;
|
||||
}
|
||||
@ -37,6 +37,7 @@ px4_add_module(
|
||||
COMPILE_FLAGS
|
||||
-Wno-cast-align # TODO: fix and enable
|
||||
SRCS
|
||||
ringbuffer.cpp
|
||||
syslink_main.cpp
|
||||
syslink_bridge.cpp
|
||||
syslink_memory.cpp
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
#include <battery/battery.h>
|
||||
|
||||
#include <drivers/device/device.h>
|
||||
#include <drivers/device/ringbuffer.h>
|
||||
#include "ringbuffer.h"
|
||||
|
||||
#include <uORB/PublicationMulti.hpp>
|
||||
#include <uORB/topics/parameter_update.h>
|
||||
|
||||
@ -51,6 +51,7 @@ px4_add_board(
|
||||
#hardfault_log
|
||||
#i2cdetect
|
||||
#led_control
|
||||
#mft
|
||||
#mixer
|
||||
#motor_ramp
|
||||
#motor_test
|
||||
|
||||
@ -39,7 +39,6 @@ CONFIG_LIB_BOARDCTL=y
|
||||
CONFIG_MAX_TASKS=0
|
||||
CONFIG_MM_REGIONS=2
|
||||
CONFIG_NAME_MAX=0
|
||||
CONFIG_NFILE_STREAMS=0
|
||||
CONFIG_NUNGET_CHARS=0
|
||||
CONFIG_NXFONTS_DISABLE_16BPP=y
|
||||
CONFIG_NXFONTS_DISABLE_1BPP=y
|
||||
|
||||
@ -69,8 +69,8 @@ CONFIG_MTD=y
|
||||
CONFIG_MTD_BYTE_WRITE=y
|
||||
CONFIG_MTD_PARTITION=y
|
||||
CONFIG_MTD_RAMTRON=y
|
||||
CONFIG_NAME_MAX=40
|
||||
CONFIG_NFILE_DESCRIPTORS=12
|
||||
CONFIG_NFILE_STREAMS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_ARCHROMFS=y
|
||||
CONFIG_NSH_ARGCAT=y
|
||||
|
||||
@ -123,5 +123,9 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
{
|
||||
px4_platform_init();
|
||||
|
||||
/* Configure the HW based on the manifest */
|
||||
|
||||
px4_platform_configure();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@ -92,6 +92,7 @@ px4_add_board(
|
||||
hardfault_log
|
||||
i2cdetect
|
||||
led_control
|
||||
mft
|
||||
mixer
|
||||
motor_ramp
|
||||
motor_test
|
||||
|
||||
@ -56,7 +56,6 @@ CONFIG_MEMSET_64BIT=y
|
||||
CONFIG_MEMSET_OPTSPEED=y
|
||||
CONFIG_MM_REGIONS=3
|
||||
CONFIG_NFILE_DESCRIPTORS=5
|
||||
CONFIG_NFILE_STREAMS=3
|
||||
CONFIG_PREALLOC_TIMERS=50
|
||||
CONFIG_PTHREAD_STACK_MIN=512
|
||||
CONFIG_RAM_SIZE=245760
|
||||
|
||||
@ -94,8 +94,8 @@ CONFIG_MTD_BYTE_WRITE=y
|
||||
CONFIG_MTD_PARTITION=y
|
||||
CONFIG_MTD_PROGMEM=y
|
||||
CONFIG_MTD_RAMTRON=y
|
||||
CONFIG_NAME_MAX=40
|
||||
CONFIG_NFILE_DESCRIPTORS=12
|
||||
CONFIG_NFILE_STREAMS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_ARCHROMFS=y
|
||||
CONFIG_NSH_ARGCAT=y
|
||||
@ -156,7 +156,6 @@ CONFIG_STDIO_BUFFER_SIZE=256
|
||||
CONFIG_STM32H7_ADC1=y
|
||||
CONFIG_STM32H7_BBSRAM=y
|
||||
CONFIG_STM32H7_BBSRAM_FILES=5
|
||||
CONFIG_STM32H7_BDMA=y
|
||||
CONFIG_STM32H7_BKPSRAM=y
|
||||
CONFIG_STM32H7_DMA1=y
|
||||
CONFIG_STM32H7_DMA2=y
|
||||
|
||||
@ -129,7 +129,7 @@
|
||||
#define GPIO_nVDD_5V_PERIPH_OC /* PJ4 */ (GPIO_INPUT|GPIO_FLOAT|GPIO_PORTJ|GPIO_PIN4)
|
||||
|
||||
/* Power switch controls ******************************************************/
|
||||
#define VDD_5V_PERIPH_EN(on_true) px4_arch_gpiowrite(GPIO_nVDD_5V_PERIPH_EN, !(on_true))
|
||||
#define VDD_5V_PERIPH_EN(on_true) px4_arch_gpiowrite(GPIO_nVDD_5V_PERIPH_EN, (on_true))
|
||||
#define VDD_5V_HIPOWER_EN(on_true) px4_arch_gpiowrite(GPIO_VDD_5V_HIPOWER_EN, (on_true))
|
||||
#define VDD_3V3_SD_CARD_EN(on_true) px4_arch_gpiowrite(GPIO_VDD_3V3_SD_CARD_EN, (on_true))
|
||||
|
||||
|
||||
@ -46,6 +46,8 @@
|
||||
#include <stm32_uart.h>
|
||||
#include <arch/board/board.h>
|
||||
#include "arm_internal.h"
|
||||
#include <px4_platform_common/init.h>
|
||||
|
||||
|
||||
extern int sercon_main(int c, char **argv);
|
||||
|
||||
@ -64,6 +66,7 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
void board_late_initialize(void)
|
||||
{
|
||||
px4_platform_console_init();
|
||||
sercon_main(0, NULL);
|
||||
}
|
||||
|
||||
|
||||
@ -209,5 +209,9 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
sdio_mediachange(sdio_dev, true);
|
||||
#endif /* CONFIG_MMCSD */
|
||||
|
||||
/* Configure the HW based on the manifest */
|
||||
|
||||
px4_platform_configure();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@ -95,6 +95,7 @@ px4_add_board(
|
||||
hardfault_log
|
||||
i2cdetect
|
||||
led_control
|
||||
mft
|
||||
mixer
|
||||
motor_ramp
|
||||
motor_test
|
||||
|
||||
@ -56,7 +56,6 @@ CONFIG_MEMSET_64BIT=y
|
||||
CONFIG_MEMSET_OPTSPEED=y
|
||||
CONFIG_MM_REGIONS=3
|
||||
CONFIG_NFILE_DESCRIPTORS=5
|
||||
CONFIG_NFILE_STREAMS=3
|
||||
CONFIG_PREALLOC_TIMERS=50
|
||||
CONFIG_PTHREAD_STACK_MIN=512
|
||||
CONFIG_RAM_SIZE=245760
|
||||
|
||||
@ -94,8 +94,8 @@ CONFIG_MTD_BYTE_WRITE=y
|
||||
CONFIG_MTD_PARTITION=y
|
||||
CONFIG_MTD_PROGMEM=y
|
||||
CONFIG_MTD_RAMTRON=y
|
||||
CONFIG_NAME_MAX=40
|
||||
CONFIG_NFILE_DESCRIPTORS=12
|
||||
CONFIG_NFILE_STREAMS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_ARCHROMFS=y
|
||||
CONFIG_NSH_ARGCAT=y
|
||||
@ -156,7 +156,6 @@ CONFIG_STDIO_BUFFER_SIZE=256
|
||||
CONFIG_STM32H7_ADC1=y
|
||||
CONFIG_STM32H7_BBSRAM=y
|
||||
CONFIG_STM32H7_BBSRAM_FILES=5
|
||||
CONFIG_STM32H7_BDMA=y
|
||||
CONFIG_STM32H7_BKPSRAM=y
|
||||
CONFIG_STM32H7_DMA1=y
|
||||
CONFIG_STM32H7_DMA2=y
|
||||
|
||||
@ -46,6 +46,7 @@
|
||||
#include <stm32_uart.h>
|
||||
#include <arch/board/board.h>
|
||||
#include "arm_internal.h"
|
||||
#include <px4_platform_common/init.h>
|
||||
|
||||
extern int sercon_main(int c, char **argv);
|
||||
|
||||
@ -64,6 +65,7 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
void board_late_initialize(void)
|
||||
{
|
||||
px4_platform_console_init();
|
||||
sercon_main(0, NULL);
|
||||
}
|
||||
|
||||
|
||||
@ -209,5 +209,9 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
sdio_mediachange(sdio_dev, true);
|
||||
#endif /* CONFIG_MMCSD */
|
||||
|
||||
/* Configure the HW based on the manifest */
|
||||
|
||||
px4_platform_configure();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@ -97,6 +97,7 @@ px4_add_board(
|
||||
hardfault_log
|
||||
i2cdetect
|
||||
led_control
|
||||
mft
|
||||
mixer
|
||||
motor_ramp
|
||||
motor_test
|
||||
|
||||
@ -97,6 +97,7 @@ px4_add_board(
|
||||
hardfault_log
|
||||
i2cdetect
|
||||
led_control
|
||||
mft
|
||||
mixer
|
||||
motor_ramp
|
||||
motor_test
|
||||
|
||||
@ -4,14 +4,14 @@
|
||||
#------------------------------------------------------------------------------
|
||||
board_adc start
|
||||
|
||||
# SPI1
|
||||
ms5611 -s -b 1 start
|
||||
icm20649 -s -b 1 start
|
||||
|
||||
# SPI4
|
||||
ms5611 -s -b 4 start
|
||||
icm20602 -s -b 4 -R 12 start
|
||||
icm20948 -s -b 4 -R 10 -M start
|
||||
|
||||
# SPI1
|
||||
ms5611 -s -b 1 start
|
||||
icm20649 -s -b 1 start
|
||||
|
||||
# standard Here/Here2 connected to GPS1
|
||||
ak09916 -X -b 1 -R 6 start # external AK09916 (Here2) is rotated 270 degrees yaw
|
||||
|
||||
@ -56,7 +56,6 @@ CONFIG_MEMSET_64BIT=y
|
||||
CONFIG_MEMSET_OPTSPEED=y
|
||||
CONFIG_MM_REGIONS=3
|
||||
CONFIG_NFILE_DESCRIPTORS=5
|
||||
CONFIG_NFILE_STREAMS=3
|
||||
CONFIG_PREALLOC_TIMERS=50
|
||||
CONFIG_PTHREAD_STACK_MIN=512
|
||||
CONFIG_RAM_SIZE=245760
|
||||
|
||||
@ -95,8 +95,8 @@ CONFIG_MTD_BYTE_WRITE=y
|
||||
CONFIG_MTD_PARTITION=y
|
||||
CONFIG_MTD_PROGMEM=y
|
||||
CONFIG_MTD_RAMTRON=y
|
||||
CONFIG_NAME_MAX=40
|
||||
CONFIG_NFILE_DESCRIPTORS=12
|
||||
CONFIG_NFILE_STREAMS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_ARCHROMFS=y
|
||||
CONFIG_NSH_ARGCAT=y
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user