mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-15 22:11:29 +08:00
Compare commits
25 Commits
mrpollo/me
...
cs_preflig
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ecf53d911 | ||
|
|
2d7653406a | ||
|
|
c7c020bd73 | ||
|
|
9cfab0482e | ||
|
|
d2fa519249 | ||
|
|
013862e9d6 | ||
|
|
9b8cb8c981 | ||
|
|
e47d3331fd | ||
|
|
7edf7f8631 | ||
|
|
c75ea70f3e | ||
|
|
25539fc419 | ||
|
|
9e4b058935 | ||
|
|
bb423bc007 | ||
|
|
6e7638c14b | ||
|
|
c9658f28e9 | ||
|
|
df2ee22d1b | ||
|
|
9a2a8d4d3c | ||
|
|
da39385544 | ||
|
|
c0f6cfa30f | ||
|
|
e346e24158 | ||
|
|
457ce90541 | ||
|
|
ff87361ffa | ||
|
|
64989c3b8d | ||
|
|
7f4e6189ae | ||
|
|
c7ef12545c |
47
.github/workflows/docs_metadata_check.yml
vendored
47
.github/workflows/docs_metadata_check.yml
vendored
@ -1,47 +0,0 @@
|
||||
name: Docs Metadata
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
pull_request: {}
|
||||
|
||||
jobs:
|
||||
metadata-check:
|
||||
name: ${{ matrix.name }}
|
||||
runs-on: [runs-on,runner=2cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=true]
|
||||
container:
|
||||
image: ghcr.io/px4/px4-dev:v1.16.0-ondemand
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- name: uORB Graphs
|
||||
script: Tools/ci/metadata_uorb_graph.sh
|
||||
- name: Failsafe Web
|
||||
script: Tools/ci/metadata_failsafe_web.sh --debug
|
||||
- name: uORB Messages
|
||||
script: Tools/ci/metadata_msg_docs.sh
|
||||
- name: Parameter Reference
|
||||
script: Tools/ci/metadata_parameters.sh
|
||||
- name: Airframe Reference
|
||||
script: Tools/ci/metadata_airframe.sh
|
||||
- name: Module Reference
|
||||
script: Tools/ci/metadata_modules.sh
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
fetch-depth: 0
|
||||
persist-credentials: true
|
||||
|
||||
- name: Mark all directories safe for Git
|
||||
run: git config --system --add safe.directory '*'
|
||||
|
||||
- name: Run ${{ matrix.name }} metadata check
|
||||
run: ${{ matrix.script }} --test-only
|
||||
|
||||
- name: Setup tmate session
|
||||
if: ${{ failure() }}
|
||||
uses: mxschmitt/action-tmate@v3
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -109,6 +109,3 @@ src/systemcmds/topic_listener/listener_generated.cpp
|
||||
# colcon
|
||||
log/
|
||||
keys/
|
||||
|
||||
# metadata dependencies
|
||||
_emscripten_sdk/
|
||||
|
||||
@ -7,33 +7,34 @@ See [the documentation on Maintainers](https://docs.px4.io/main/en/contribute/ma
|
||||
|
||||
| Name | Sector | GitHub | Chat | email
|
||||
|-------------------------|--------|--------|------|----------------
|
||||
| Lorenz Meier | Founder | [LorenzMeier][LorenzMeier] | | <lorenz@px4.io>
|
||||
| Daniel Agar | Architecture | [dagar][dagar] | daniel_agar | <daniel@agar.ca>
|
||||
| Beat Küng | Architecture | [bkueng][bkueng] | beatkueng | <beat-kueng@gmx.net>
|
||||
| Ramón Roche | CI / Testing | [mrpollo][mrpollo] | rroche | <rroche@linuxfoundation.org>
|
||||
| Mathieu Bresciani | State Estimation | [bresch][bresch] | mbresch |
|
||||
| Paul Riseborough | State Estimation | [priseborough][priseborough] | |
|
||||
| David Sidrane | RTOS / NuttX | [davids5][davids5] | david_s5 | <David.Sidrane@Nscdg.com>
|
||||
| Jayoung Lim | Simulation | [Jaeyoung-Lim][Jaeyoung-Lim] | jaeyounglim. | <jalim@ethz.ch>
|
||||
| Beniamino Pozzan | ROS 2 | [beniaminopozzan][beniaminopozzan] | beniaminopozzan | <beniamino.pozzan@gmail.com>
|
||||
| Matthias Grob | Multirotor | [MaEtUgR][MaEtUgR] | maetugr |
|
||||
| Silvan Fuhrer | Fixed-Wing / VTOL | [sfuhrer][sfuhrer] | sfuhrer |
|
||||
| Christian Friedrich | Rover | [chfriedrich98][chfriedrich98] | christian982564 |
|
||||
| Pedro Roque | Spacecraft | [Pedro-Roque][Pedro-Roque] | .pedroroque | <padr@kth.se>
|
||||
| Lorenz Meier | Founder | [@LorenzMeier](https://github.com/LorenzMeier) | | <lorenz@px4.io>
|
||||
| Daniel Agar | Architecture | [@dagar](https://github.com/dagar) | daniel_agar | <daniel@agar.ca>
|
||||
| Beat Küng | Architecture | [@bkueng](https://github.com/bkueng) | beatkueng | <beat-kueng@gmx.net>
|
||||
| Ramón Roche | CI / Testing | [@mrpollo](https://github.com/mrpollo) | rroche | <rroche@linuxfoundation.org>
|
||||
| Mathieu Bresciani | State Estimation | [@bresch](https://github.com/bresch) | mbresch |
|
||||
| Paul Riseborough | State Estimation | [@priseborough](https://github.com/priseborough) | |
|
||||
| David Sidrane | RTOS / NuttX | [@davids5](https://github.com/davids5) | david_s5 | <David.Sidrane@Nscdg.com>
|
||||
| Jayoung Lim | Simulation | [@Jaeyoung-Lim](https://github.com/Jaeyoung-Lim) | jaeyounglim. | <jalim@ethz.ch>
|
||||
| Beniamino Pozzan | ROS 2 | [@beniaminopozzan](https://github.com/beniaminopozzan) | beniaminopozzan | <beniamino.pozzan@gmail.com>
|
||||
| Matthias Grob | Multirotor | [@MaEtUgR](https://github.com/MaEtUgR) | maetugr |
|
||||
| Silvan Fuhrer | Fixed-Wing / VTOL | [@sfuhrer](https://github.com/sfuhrer) | sfuhrer |
|
||||
| Christian Friedrich | Rover | [@chfriedrich98](https://github.com/chfriedrich98) | christian982564 |
|
||||
| Pedro Roque | Spacecraft | [@Pedro-Roque](https://github.com/Pedro-Roque) | .pedroroque | <padr@kth.se>
|
||||
| Jacob Dahl | Simulation | [@dakejahl](https://github.com/dakejahl) | dakejahl | <dahl.jakejacob@gmail.com>
|
||||
|
||||
|
||||
**Documentation Maintainers**
|
||||
|
||||
| Name | GitHub | Chat | email
|
||||
|------|--------|------|----------------------
|
||||
| Hamish Willee | [hamishwillee][hamishwillee] | hamishwillee |
|
||||
| Hamish Willee | [@hamishwillee](https://github.com/hamishwillee) | hamishwillee |
|
||||
|
||||
**Release Managers**
|
||||
|
||||
| Name | GitHub | Chat | email
|
||||
|------|--------|------|----------------------
|
||||
| Ramón Roche | [mrpollo][mrpollo] | rroche | <rroche@linuxfoundation.org>
|
||||
| Daniel Agar | [dagar][dagar] | daniel_agar | <daniel@agar.ca>
|
||||
| Ramón Roche | [@mrpollo](https://github.com/mrpollo) | rroche | <rroche@linuxfoundation.org>
|
||||
| Daniel Agar | [@dagar](https://github.com/dagar) | daniel_agar | <daniel@agar.ca>
|
||||
|
||||
**Retired Maintainers**
|
||||
|
||||
|
||||
5
Makefile
5
Makefile
@ -379,10 +379,7 @@ module_documentation:
|
||||
extract_events:
|
||||
@$(MAKE) --no-print-directory px4_sitl_default metadata_extract_events ver_gen
|
||||
|
||||
msg_docs:
|
||||
@$(MAKE) --no-print-directory px4_sitl_default metadata_msg_documentation ver_gen
|
||||
|
||||
px4_metadata: parameters_metadata airframe_metadata module_documentation extract_events msg_docs
|
||||
px4_metadata: parameters_metadata airframe_metadata module_documentation extract_events
|
||||
|
||||
doxygen:
|
||||
@mkdir -p "$(SRC_DIR)"/build/doxygen
|
||||
|
||||
@ -110,25 +110,36 @@ if [ -n "${PX4_SIM_MODEL#*gz_}" ] && [ -z "${PX4_GZ_MODEL_NAME}" ]; then
|
||||
MODEL_NAME="${PX4_SIM_MODEL#*gz_}"
|
||||
MODEL_NAME_INSTANCE="${MODEL_NAME}_${px4_instance}"
|
||||
|
||||
POSE_ARG=""
|
||||
if [ -n "${PX4_GZ_MODEL_POSE}" ]; then
|
||||
pos_x=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $1}')
|
||||
pos_y=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $2}')
|
||||
pos_z=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $3}')
|
||||
pos_x=${pos_x:-0}
|
||||
pos_y=${pos_y:-0}
|
||||
pos_z=${pos_z:-0}
|
||||
sdf_pose_str=""
|
||||
|
||||
POSE_ARG=", pose: { position: { x: ${pos_x}, y: ${pos_y}, z: ${pos_z} } }"
|
||||
echo "INFO [init] Spawning model at position: ${pos_x} ${pos_y} ${pos_z}"
|
||||
if [ -n "${PX4_GZ_MODEL_POSE}" ]; then
|
||||
pose_x=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $1}')
|
||||
pose_y=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $2}')
|
||||
pose_z=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $3}')
|
||||
pose_roll=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $4}')
|
||||
pose_pitch=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $5}')
|
||||
pose_yaw=$(echo "${PX4_GZ_MODEL_POSE}" | awk -F',' '{print $6}')
|
||||
|
||||
pose_x=${pose_x:-0}
|
||||
pose_y=${pose_y:-0}
|
||||
pose_z=${pose_z:-0}
|
||||
pose_roll=${pose_roll:-0}
|
||||
pose_pitch=${pose_pitch:-0}
|
||||
pose_yaw=${pose_yaw:-0}
|
||||
|
||||
sdf_pose_str="<pose> ${pose_x} ${pose_y} ${pose_z} ${pose_roll} ${pose_pitch} ${pose_yaw} </pose>"
|
||||
echo "INFO [init] Gazebo model pose: ${pose_x} ${pose_y} ${pose_z} ${pose_roll} ${pose_pitch} ${pose_yaw}"
|
||||
fi
|
||||
|
||||
echo "INFO [init] Spawning model"
|
||||
echo "INFO [init] Spawning Gazebo model"
|
||||
|
||||
# include the actual SDF in this one, containing the pose if given
|
||||
sdf_str="<sdf version=\"1.6\"> <include> <uri>file://${PX4_GZ_MODELS}/${MODEL_NAME}/model.sdf</uri> ${sdf_pose_str} </include> </sdf>"
|
||||
|
||||
# Spawn model
|
||||
${gz_command} service -s "/world/${PX4_GZ_WORLD}/create" --reqtype gz.msgs.EntityFactory \
|
||||
--reptype gz.msgs.Boolean --timeout 5000 \
|
||||
--req "sdf_filename: \"${PX4_GZ_MODELS}/${MODEL_NAME}/model.sdf\", name: \"${MODEL_NAME_INSTANCE}\", allow_renaming: false${POSE_ARG}" > /dev/null 2>&1
|
||||
--req "name: \"${MODEL_NAME_INSTANCE}\", allow_renaming: false, sdf: '${sdf_str}'" > /dev/null 2>&1
|
||||
|
||||
# Wait for model to spawn
|
||||
sleep 1
|
||||
|
||||
@ -1,68 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# metadata_airframe.sh — generate and sync PX4 airframe reference documentation
|
||||
#
|
||||
# Usage:
|
||||
# Tools/ci/metadata_airframe.sh [--test-only] [--debug]
|
||||
#
|
||||
# Options:
|
||||
# --test-only Run make target and comparison; exit 1 if diffs found, without copying file
|
||||
# --debug Show full make output and debug info for comparison
|
||||
#
|
||||
set -euo pipefail
|
||||
shopt -s nullglob
|
||||
|
||||
# Parse flags
|
||||
test_only=false
|
||||
debug=false
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--test-only) test_only=true; shift ;;
|
||||
--debug) debug=true; shift ;;
|
||||
*) echo "Usage: $0 [--test-only] [--debug]"; exit 2 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Paths and make target
|
||||
make_target="airframe_metadata"
|
||||
src_file="build/px4_sitl_default/docs/airframes.md"
|
||||
dest_file="docs/en/airframes/airframe_reference.md"
|
||||
|
||||
# Run make target
|
||||
if [ "$debug" = true ]; then
|
||||
echo "🔧 Running 'make $make_target' (verbose)"
|
||||
make $make_target
|
||||
else
|
||||
echo "🔧 Running 'make $make_target'"
|
||||
make $make_target > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Verify build output
|
||||
if [[ ! -f "$src_file" ]]; then
|
||||
echo "❌ Generated file not found: $src_file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔍 Comparing airframe reference docs"
|
||||
|
||||
# Compare files
|
||||
if cmp -s "$src_file" "$dest_file"; then
|
||||
echo "✅ Airframe reference is up to date."
|
||||
exit 0
|
||||
else
|
||||
if [ "$debug" = true ]; then
|
||||
echo "DEBUG: cmp -s '$src_file' '$dest_file'; echo \$?"
|
||||
fi
|
||||
echo "⚠️ Airframe reference needs updating."
|
||||
if [ "$test_only" = true ]; then
|
||||
exit 1
|
||||
fi
|
||||
# Copy over updated file
|
||||
echo "📂 Copying updated airframe_reference.md"
|
||||
cp -v "$src_file" "$dest_file"
|
||||
echo "🚨 Airframe docs updated; commit the change:"
|
||||
echo " git status -s $dest_file"
|
||||
echo " git add $dest_file"
|
||||
echo " git commit -m 'docs: update airframe reference metadata'"
|
||||
exit 1
|
||||
fi
|
||||
@ -1,112 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# metadata_failsafe_web.sh — build and sync failsafe webapp metadata files
|
||||
#
|
||||
# Usage:
|
||||
# Tools/ci/metadata_failsafe_web.sh [--test-only] [--debug]
|
||||
#
|
||||
# Options:
|
||||
# --test-only Run build and comparison; exit 1 if diffs found, without copying files
|
||||
# --debug Show full build output and debug info for file comparisons and EMSDK install
|
||||
#
|
||||
set -euo pipefail
|
||||
shopt -s nullglob
|
||||
|
||||
# Parse flags
|
||||
test_only=false
|
||||
debug=false
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--test-only) test_only=true; shift ;;
|
||||
--debug) debug=true; shift ;;
|
||||
*) echo "Usage: $0 [--test-only] [--debug]"; exit 2 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Paths and commands
|
||||
build_cmd="make failsafe_web"
|
||||
src_dir="build/px4_sitl_default_failsafe_web"
|
||||
dest_dir="docs/public/config/failsafe"
|
||||
|
||||
# Ensure Emscripten SDK is available
|
||||
if ! command -v emcc >/dev/null 2>&1; then
|
||||
echo "🔧 Emscripten not found. Ensuring EMSDK is installed."
|
||||
# Clone SDK only if not already present
|
||||
if [ ! -d "_emscripten_sdk" ]; then
|
||||
if [ "$debug" = true ]; then
|
||||
git clone https://github.com/emscripten-core/emsdk.git _emscripten_sdk
|
||||
else
|
||||
git clone https://github.com/emscripten-core/emsdk.git _emscripten_sdk > /dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
pushd _emscripten_sdk >/dev/null
|
||||
if [ "$debug" = true ]; then
|
||||
./emsdk install latest
|
||||
./emsdk activate latest
|
||||
else
|
||||
./emsdk install latest > /dev/null 2>&1
|
||||
./emsdk activate latest > /dev/null 2>&1
|
||||
fi
|
||||
popd >/dev/null
|
||||
# Load environment into current shell
|
||||
if [ "$debug" = true ]; then
|
||||
# shellcheck source=/dev/null
|
||||
. ./_emscripten_sdk/emsdk_env.sh
|
||||
else
|
||||
# shellcheck source=/dev/null
|
||||
. ./_emscripten_sdk/emsdk_env.sh > /dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Build step
|
||||
if [ "$debug" = true ]; then
|
||||
echo "🔧 Running build: $build_cmd"
|
||||
$build_cmd
|
||||
else
|
||||
echo "🔧 Running build"
|
||||
$build_cmd > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Gather built files
|
||||
src_files=("$src_dir"/*.{js,wasm,json})
|
||||
if [ ${#src_files[@]} -eq 0 ]; then
|
||||
echo "❌ No generated files found in $src_dir. Build failed or path wrong."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prepare destination
|
||||
echo "🔍 Checking failsafe web metadata"
|
||||
mkdir -p "$dest_dir"
|
||||
|
||||
changed=()
|
||||
for src in "${src_files[@]}"; do
|
||||
name=$(basename "$src")
|
||||
dst="$dest_dir/$name"
|
||||
|
||||
if [[ ! -f "$dst" ]]; then
|
||||
[ "$debug" = true ] && echo "DEBUG: missing $dst"
|
||||
changed+=("$name")
|
||||
elif ! cmp -s "$src" "$dst"; then
|
||||
[ "$debug" = true ] && echo "DEBUG: cmp -s '$src' '$dst'; echo \$?"
|
||||
changed+=("$name")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#changed[@]} -eq 0 ]; then
|
||||
echo "✅ All failsafe web metadata files are in sync."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "⚠️ Detected updates in:"
|
||||
for f in "${changed[@]}"; do echo " - $f"; done
|
||||
|
||||
if [ "$test_only" = true ]; then
|
||||
echo "🚨 Failsafe web metadata needs update; rerun without --test-only to apply."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📂 Copying updated files"
|
||||
for f in "${changed[@]}"; do cp -v "$src_dir/$f" "$dest_dir/$f"; done
|
||||
|
||||
echo "🚨 Failsafe web metadata updated; please commit changes."
|
||||
exit 1
|
||||
@ -1,99 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# metadata_modules.sh - generate and sync PX4 module reference documentation
|
||||
#
|
||||
# Usage:
|
||||
# Tools/ci/metadata_modules.sh [--test-only] [--debug]
|
||||
#
|
||||
# Options:
|
||||
# --test-only Run make target and comparison; exit 1 if diffs found, without copying files
|
||||
# --debug Show full make output and debug info for file comparisons
|
||||
#
|
||||
set -euo pipefail
|
||||
shopt -s nullglob
|
||||
|
||||
# Parse flags
|
||||
test_only=false
|
||||
debug=false
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--test-only) test_only=true; shift ;;
|
||||
--debug) debug=true; shift ;;
|
||||
*) echo "Usage: $0 [--test-only] [--debug]"; exit 2 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Paths and make target
|
||||
make_target="module_documentation"
|
||||
src_dir="build/px4_sitl_default/docs/modules"
|
||||
dest_dir="docs/en/modules"
|
||||
|
||||
# Run make target
|
||||
if [ "$debug" = true ]; then
|
||||
echo "🔧 Running 'make $make_target' (verbose)"
|
||||
make $make_target
|
||||
else
|
||||
echo "🔧 Running 'make $make_target'"
|
||||
make $make_target > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Verify build output
|
||||
src_files=("$src_dir"/*)
|
||||
if [ ${#src_files[@]} -eq 0 ]; then
|
||||
echo "❌ No generated module docs found in $src_dir. Build failed or path wrong."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ─── Strip trailing whitespace from all generated module docs (unless test-only) ─────────────
|
||||
if [ "$test_only" = false ]; then
|
||||
echo "✂️ Removing trailing whitespace from generated module docs"
|
||||
for src in "${src_files[@]}"; do
|
||||
sed -i 's/[[:space:]]\+$//' "$src"
|
||||
done
|
||||
else
|
||||
[ "$debug" = true ] && echo "🧪 Test-only mode: skipping whitespace removal"
|
||||
fi
|
||||
|
||||
echo "🔍 Checking module reference docs in $dest_dir"
|
||||
mkdir -p "$dest_dir"
|
||||
|
||||
changed=()
|
||||
for src in "${src_files[@]}"; do
|
||||
name=$(basename "$src")
|
||||
dst="$dest_dir/$name"
|
||||
|
||||
if [[ ! -e "$dst" ]]; then
|
||||
[ "$debug" = true ] && echo "DEBUG: missing $dst"
|
||||
changed+=("$name")
|
||||
else
|
||||
# Use diff -q -b (ignore whitespace changes) and --strip-trailing-cr (ignore CRLF vs LF)
|
||||
if ! diff -q -b --strip-trailing-cr "$src" "$dst" > /dev/null; then
|
||||
[ "$debug" = true ] && echo "DEBUG: diff -q -b --strip-trailing-cr '$src' '$dst' (exit_code=$?)"
|
||||
changed+=("$name")
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#changed[@]} -eq 0 ]; then
|
||||
echo "✅ All module reference docs are up to date."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "⚠️ Detected updates in module docs:"
|
||||
for f in "${changed[@]}"; do echo " - $f"; done
|
||||
|
||||
if [ "$test_only" = true ]; then
|
||||
echo "🚨 Module reference docs need updating; rerun without --test-only to apply."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📂 Copying updated module docs to $dest_dir"
|
||||
for f in "${changed[@]}"; do
|
||||
cp -rv "$src_dir/$f" "$dest_dir/$f"
|
||||
done
|
||||
|
||||
echo "🚨 Module reference docs updated; please commit changes:"
|
||||
echo " git status -s $dest_dir"
|
||||
echo " git add $dest_dir/*"
|
||||
echo " git commit -m 'docs: update module reference metadata'"
|
||||
exit 1
|
||||
@ -1,97 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# metadata_msg_docs.sh — generate and sync uORB message reference documentation
|
||||
#
|
||||
# Usage:
|
||||
# Tools/ci/metadata_msg_docs.sh [--test-only] [--debug]
|
||||
#
|
||||
# Options:
|
||||
# --test-only Run make target and comparison; exit 1 if diffs found, without copying files
|
||||
# --debug Show full make output and debug info for file comparisons
|
||||
#
|
||||
set -euo pipefail
|
||||
shopt -s nullglob
|
||||
|
||||
# Parse flags
|
||||
test_only=false
|
||||
debug=false
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--test-only) test_only=true; shift ;;
|
||||
--debug) debug=true; shift ;;
|
||||
*) echo "Usage: $0 [--test-only] [--debug]"; exit 2 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Paths and make target
|
||||
make_target="msg_docs"
|
||||
src_dir="build/px4_sitl_default/msg_docs"
|
||||
dest_dir="docs/en/msg_docs"
|
||||
middleware_dir="docs/en/middleware"
|
||||
|
||||
# Run make target
|
||||
if [ "$debug" = true ]; then
|
||||
echo "🔧 Running 'make $make_target' (verbose)"
|
||||
make $make_target
|
||||
else
|
||||
echo "🔧 Running 'make $make_target'"
|
||||
make $make_target > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Verify build output
|
||||
src_files=("$src_dir"/*)
|
||||
if [ ${#src_files[@]} -eq 0 ]; then
|
||||
echo "❌ No files found in $src_dir. Build target '$make_target' failed or path is wrong."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔍 Checking uORB message docs in $dest_dir"
|
||||
mkdir -p "$dest_dir"
|
||||
|
||||
changed=()
|
||||
for src in "${src_files[@]}"; do
|
||||
name=$(basename "$src")
|
||||
|
||||
# special-case dds_topics.md
|
||||
if [[ "$name" == "dds_topics.md" ]]; then
|
||||
dst="$middleware_dir/$name"
|
||||
else
|
||||
dst="$dest_dir/$name"
|
||||
fi
|
||||
|
||||
if [[ ! -f "$dst" ]]; then
|
||||
[ "$debug" = true ] && echo "DEBUG: missing $dst"
|
||||
changed+=("$name")
|
||||
elif ! cmp -s "$src" "$dst"; then
|
||||
[ "$debug" = true ] && echo "DEBUG: cmp -s '$src' '$dst'; echo \$?"
|
||||
changed+=("$name")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#changed[@]} -eq 0 ]; then
|
||||
echo "✅ All uORB message docs are up to date."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "⚠️ Detected updates in the following docs:"
|
||||
for f in "${changed[@]}"; do echo " - $f"; done
|
||||
|
||||
if [ "$test_only" = true ]; then
|
||||
echo "🚨 uORB message docs need updating! Rerun without --test-only to apply changes."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📂 Copying updated doc files to $dest_dir"
|
||||
for f in "${changed[@]}"; do
|
||||
if [[ "$f" == "dds_topics.md" ]]; then
|
||||
cp -v "$src_dir/$f" "$middleware_dir/$f"
|
||||
else
|
||||
cp -v "$src_dir/$f" "$dest_dir/$f"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "🚨 uORB message docs updated; please commit changes:"
|
||||
echo " git status -s $dest_dir"
|
||||
echo " git add $dest_dir/*"
|
||||
echo " git commit -m 'docs: update uORB message reference docs'"
|
||||
exit 1
|
||||
@ -1,71 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# metadata_parameters.sh — generate and sync PX4 parameter reference documentation
|
||||
#
|
||||
# Usage:
|
||||
# Tools/ci/metadata_parameters.sh [--test-only] [--debug]
|
||||
#
|
||||
# Options:
|
||||
# --test-only Run make target and comparison; exit 1 if diffs found, without copying file
|
||||
# --debug Show full make output and debug info for comparison
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
# Parse flags
|
||||
test_only=false
|
||||
debug=false
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--test-only) test_only=true; shift ;;
|
||||
--debug) debug=true; shift ;;
|
||||
*) echo "Usage: $0 [--test-only] [--debug]"; exit 2 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Paths and make target
|
||||
make_target="parameters_metadata"
|
||||
src_file="build/px4_sitl_default/docs/parameters.md"
|
||||
dest_file="docs/en/advanced_config/parameter_reference.md"
|
||||
|
||||
# Run make target
|
||||
if [ "$debug" = true ]; then
|
||||
echo "🔧 Running 'make $make_target' (verbose)"
|
||||
make $make_target
|
||||
else
|
||||
echo "🔧 Running 'make $make_target'"
|
||||
make $make_target > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
# ─── Strip trailing whitespace from the newly generated Markdown ────────────────────────────────
|
||||
echo "✂️ Removing trailing whitespace from $src_file"
|
||||
sed -i 's/[[:space:]]\+$//' "$src_file"
|
||||
|
||||
# Verify build output
|
||||
if [[ ! -f "$src_file" ]]; then
|
||||
echo "❌ Generated file not found: $src_file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔍 Comparing parameter docs"
|
||||
|
||||
# Compare files
|
||||
if cmp -s "$src_file" "$dest_file"; then
|
||||
echo "✅ Parameter reference is up to date."
|
||||
exit 0
|
||||
else
|
||||
if [ "$debug" = true ]; then
|
||||
echo "DEBUG: cmp -s '$src_file' '$dest_file'; echo \$?"
|
||||
fi
|
||||
echo "⚠️ Parameter reference needs updating."
|
||||
if [ "$test_only" = true ]; then
|
||||
exit 1
|
||||
fi
|
||||
# Copy over updated file
|
||||
echo "📂 Copying updated parameter_reference.md"
|
||||
cp -v "$src_file" "$dest_file"
|
||||
echo "🚨 Parameter docs updated; commit the change:"
|
||||
echo " git status -s $dest_file"
|
||||
echo " git add $dest_file"
|
||||
echo " git commit -m 'docs: update parameter reference metadata'"
|
||||
exit 1
|
||||
fi
|
||||
@ -1,108 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# update_uorb_graphs.sh — generate, compare, and sync uORB graph JSONs
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/update_uorb_graphs.sh [--test-only] [--debug]
|
||||
#
|
||||
# Options:
|
||||
# --test-only Run generation and comparison only; exit 1 if diffs found, without copying files
|
||||
# --debug Echo debug info for missing or differing files and show full make output
|
||||
#
|
||||
# Examples:
|
||||
# # CI mode: fail if docs need updates
|
||||
# ./scripts/update_uorb_graphs.sh --test-only
|
||||
#
|
||||
# # Developer mode: regenerate and sync JSONs
|
||||
# ./scripts/update_uorb_graphs.sh
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
# Parse flags
|
||||
test_only=false
|
||||
debug=false
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--test-only)
|
||||
test_only=true
|
||||
shift
|
||||
;;
|
||||
--debug)
|
||||
debug=true
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 [--test-only] [--debug]"
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Paths
|
||||
graph_dir="Tools/uorb_graph"
|
||||
dest_dir="docs/public/middleware"
|
||||
|
||||
# Generate uORB graphs (conditionally silent)
|
||||
if [ "$debug" = true ]; then
|
||||
echo "🔧 Generating uORB message graphs (verbose output)"
|
||||
make uorb_graphs
|
||||
else
|
||||
echo "🔧 Generating uORB message graphs"
|
||||
make uorb_graphs > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Verify generation
|
||||
src_files=("$graph_dir"/*.json)
|
||||
if [ ${#src_files[@]} -eq 0 ]; then
|
||||
echo "❌ No JSON files found in $graph_dir. Generation failed or path is wrong."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔍 Checking for updated uORB graph JSONs"
|
||||
mkdir -p "$dest_dir"
|
||||
|
||||
changed=()
|
||||
for src in "${src_files[@]}"; do
|
||||
name=$(basename "$src")
|
||||
dst="$dest_dir/$name"
|
||||
|
||||
if [[ ! -f "$dst" ]]; then
|
||||
[ "$debug" = true ] && echo "DEBUG: $dst missing"
|
||||
changed+=("$name")
|
||||
|
||||
elif ! cmp -s "$src" "$dst"; then
|
||||
[ "$debug" = true ] && echo "DEBUG: cmp -s '$src' '$dst'; echo \$?"
|
||||
changed+=("$name")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#changed[@]} -eq 0 ]; then
|
||||
echo "✅ All uORB graph JSONs are already in sync."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "⚠️ Detected updates in the following files:"
|
||||
for name in "${changed[@]}"; do
|
||||
echo " - $name"
|
||||
done
|
||||
|
||||
if [ "$test_only" = true ]; then
|
||||
echo
|
||||
echo "🚨 uORB graph docs need updating! Rerun without --test-only to apply changes."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "📂 Copying updated files over"
|
||||
for name in "${changed[@]}"; do
|
||||
cp -v "$graph_dir/$name" "$dest_dir/$name"
|
||||
done
|
||||
|
||||
echo
|
||||
echo "🚨 uORB graph docs need updating! Review above, then run:"
|
||||
echo " git status -s $dest_dir/"
|
||||
echo " git add $dest_dir/*.json"
|
||||
echo " git commit -m 'docs: metadata: update uORB graph JSONs'"
|
||||
exit 1
|
||||
@ -12,25 +12,14 @@ import sys
|
||||
|
||||
import yaml
|
||||
|
||||
def sort_dds_topics(topics):
|
||||
return sorted(
|
||||
topics,
|
||||
key=lambda pub: pub["type"].rsplit("::", 1)[-1]
|
||||
)
|
||||
|
||||
def generate_dds_yaml_doc(allMessageFiles, output_dir):
|
||||
def generate_dds_yaml_doc(allMessageFiles, output_file = 'dds_topics.md'):
|
||||
"""
|
||||
Generates human readable version of dds_topics.yaml.
|
||||
Default output is to docs/en/middleware/dds_topics.md
|
||||
"""
|
||||
output_file = 'dds_topics.md'
|
||||
dds_markdown = ""
|
||||
if not os.path.isdir(output_dir):
|
||||
print("Output directory not found")
|
||||
sys.exit(1)
|
||||
|
||||
dds_file_path = os.path.join(os.path.dirname(os.path.realpath(__file__)),"../../src/modules/uxrce_dds_client/dds_topics.yaml")
|
||||
output_file_path = os.path.join(output_dir, output_file)
|
||||
output_file_path = os.path.join(os.path.dirname(os.path.realpath(__file__)),f"../../docs/en/middleware/{output_file}")
|
||||
|
||||
try:
|
||||
with open(dds_file_path, 'r') as file:
|
||||
@ -54,7 +43,7 @@ def generate_dds_yaml_doc(allMessageFiles, output_dir):
|
||||
all_topics.add(message['topic'].split('/')[-1])
|
||||
for message in allMessageFiles:
|
||||
all_messages_in_source.add(message.split('/')[-1].split('.')[0])
|
||||
messagesNotExported = sorted(all_messages_in_source - all_message_types)
|
||||
messagesNotExported = all_messages_in_source - all_message_types
|
||||
|
||||
# write out the dds file
|
||||
dds_markdown="""# dds_topics.yaml — PX4 Topics Exposed to ROS 2
|
||||
@ -74,14 +63,14 @@ Topic | Type| Rate Limit
|
||||
--- | --- | ---
|
||||
"""
|
||||
|
||||
for message in sort_dds_topics(data["publications"]):
|
||||
for message in data["publications"]:
|
||||
type = message['type']
|
||||
px4Type=type.split("::")[-1]
|
||||
dds_markdown += f"`{message['topic']}` | [{type}](../msg_docs/{px4Type}.md) | {message.get('rate_limit','')}\n"
|
||||
|
||||
dds_markdown += "\n## Subscriptions\n\nTopic | Type\n--- | ---\n"
|
||||
|
||||
for message in sort_dds_topics(data["subscriptions"]):
|
||||
for message in data["subscriptions"]:
|
||||
type = message['type']
|
||||
px4Type=type.split("::")[-1]
|
||||
dds_markdown += f"{message['topic']} | [{type}](../msg_docs/{px4Type}.md)\n"
|
||||
@ -93,17 +82,18 @@ Topic | Type| Rate Limit
|
||||
else:
|
||||
print("Warning - we now have subscription_multi data - check format")
|
||||
dds_markdown += "Topic | Type\n--- | ---\n"
|
||||
for message in sort_dds_topics(data["subscriptions_multi"]):
|
||||
for message in data["subscriptions_multi"]:
|
||||
dds_markdown += f"{message['topic']} | {message['type']}\n"
|
||||
|
||||
if messagesNotExported:
|
||||
# Print the topics that are not exported to DDS
|
||||
dds_markdown += "\n## Not Exported\n\nThese messages are not listed in the yaml file.\nThey are not build into the module, and hence are neither published or subscribed."
|
||||
dds_markdown += "\n\n::: details See messages\n"
|
||||
for item in sorted(messagesNotExported):
|
||||
for item in messagesNotExported:
|
||||
dds_markdown += f"\n- [{item}](../msg_docs/{item}.md)"
|
||||
dds_markdown += "\n:::\n" # End of details block
|
||||
|
||||
#print(dds_markdown)
|
||||
with open(output_file_path, 'w') as content_file:
|
||||
content_file.write(dds_markdown)
|
||||
|
||||
@ -137,7 +127,6 @@ if __name__ == "__main__":
|
||||
|
||||
parser = argparse.ArgumentParser(description='Generate docs from .msg files')
|
||||
parser.add_argument('-d', dest='dir', help='output directory', required=True)
|
||||
parser.add_argument('--dds_topics', dest='dds_topics', help='Generate dds yaml doc', action='store_true')
|
||||
args = parser.parse_args()
|
||||
|
||||
output_dir = args.dir
|
||||
@ -148,9 +137,6 @@ if __name__ == "__main__":
|
||||
msg_files = get_msgs_list(msg_path)
|
||||
msg_files.sort()
|
||||
|
||||
if args.dds_topics:
|
||||
generate_dds_yaml_doc(msg_files, output_dir)
|
||||
|
||||
versioned_msgs_list = ''
|
||||
unversioned_msgs_list = ''
|
||||
|
||||
@ -241,3 +227,5 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
|
||||
index_file = os.path.join(output_dir, 'index.md')
|
||||
with open(index_file, 'w') as content_file:
|
||||
content_file.write(index_text)
|
||||
|
||||
generate_dds_yaml_doc(msg_files)
|
||||
|
||||
@ -59,7 +59,7 @@ def get_N_colors(N, s=0.8, v=0.9):
|
||||
def topic_filename(topic):
|
||||
MSG_PATH = 'msg/'
|
||||
|
||||
file_list = sorted(os.listdir(MSG_PATH))
|
||||
file_list = os.listdir(MSG_PATH)
|
||||
msg_files = [file.replace('.msg', '') for file in file_list if file.endswith(".msg")]
|
||||
|
||||
if topic in msg_files:
|
||||
@ -369,14 +369,12 @@ class Graph(object):
|
||||
if not scope.is_empty():
|
||||
scopes_with_topic[name] = scope
|
||||
|
||||
# scopes_with_topic = sorted(scopes_with_topic)
|
||||
|
||||
self._print_ambiguities = ambiguous_topics
|
||||
if use_topic_pubsub_union:
|
||||
self._print_topics = sorted(subscribed_topics | published_topics)
|
||||
self._print_topics = subscribed_topics | published_topics
|
||||
self._print_scopes = scopes_with_topic
|
||||
else:
|
||||
self._print_topics = sorted(subscribed_topics & published_topics)
|
||||
self._print_topics = subscribed_topics & published_topics
|
||||
|
||||
# cull scopes to only those that pub or sub to a topic that has both
|
||||
intersect_scopes = {}
|
||||
@ -394,7 +392,7 @@ class Graph(object):
|
||||
log.debug('ignoring excluded path '+path)
|
||||
return
|
||||
|
||||
entries = sorted(os.listdir(path))
|
||||
entries = os.listdir(path)
|
||||
|
||||
# check if entering a new scope
|
||||
cmake_file = 'CMakeLists.txt'
|
||||
@ -687,8 +685,8 @@ class OutputJSON(object):
|
||||
|
||||
|
||||
# edges
|
||||
for name,scope in sorted(output_scopes.items(), key=lambda kv: kv[0]):
|
||||
for topic in sorted(scope.publications):
|
||||
for name,scope in output_scopes.items():
|
||||
for topic in scope.publications:
|
||||
if topic in output_topics:
|
||||
edge = {}
|
||||
edge['source'] = 'm_'+name
|
||||
@ -697,8 +695,8 @@ class OutputJSON(object):
|
||||
edge['style'] = 'dashed'
|
||||
edges.append(edge)
|
||||
|
||||
for name,scope in sorted(output_scopes.items(), key=lambda kv: kv[0]):
|
||||
for topic in sorted(scope.subscriptions):
|
||||
for name,scope in output_scopes.items():
|
||||
for topic in scope.subscriptions:
|
||||
if topic in output_topics:
|
||||
edge = {}
|
||||
edge['source'] = 't_'+topic
|
||||
@ -725,16 +723,10 @@ if "__main__" == __name__:
|
||||
log.setLevel(logging.DEBUG)
|
||||
print("set log level to DEBUG")
|
||||
|
||||
|
||||
print('')
|
||||
print('== Starting uorb_graph/create.py ==')
|
||||
if args.file:
|
||||
print(' =Filename:', os.path.basename(args.file))
|
||||
|
||||
# ignore topics that are subscribed/published by many topics, but are not really
|
||||
# useful to show in the graph
|
||||
topic_blacklist = [ 'parameter_update', 'mavlink_log', 'log_message' ]
|
||||
print(' =Excluded Topics: '+str(topic_blacklist))
|
||||
print('Excluded topics: '+str(topic_blacklist))
|
||||
|
||||
if len(args.modules) == 0:
|
||||
scope_whitelist = []
|
||||
@ -765,7 +757,7 @@ if "__main__" == __name__:
|
||||
if 0 < len(args.exclude_path):
|
||||
path_blacklist = args.exclude_path
|
||||
if path_blacklist:
|
||||
print(' =Excluded Path: '+str(path_blacklist))
|
||||
print('Excluded Path: '+str(path_blacklist))
|
||||
|
||||
graph.build(source_paths, path_blacklist=path_blacklist, use_topic_pubsub_union=args.use_topic_union, merge_depends=args.merge_depends)
|
||||
|
||||
@ -792,6 +784,3 @@ if "__main__" == __name__:
|
||||
pass
|
||||
else:
|
||||
print('Error: unknown output format '+args.output)
|
||||
|
||||
print("== Completed uorb_graph/create.py ==")
|
||||
print("")
|
||||
|
||||
@ -34,75 +34,25 @@
|
||||
#pragma once
|
||||
|
||||
// DMAMUX1 Using at most 8 Channels on DMA1 -------- Assigned
|
||||
// V
|
||||
|
||||
// Timer 4 Channel 1 /* DMA1:29 TIM4CH1 */
|
||||
|
||||
#define DMAMAP_SPI1_RX DMAMAP_DMA12_SPI1RX_0 /* 1 DMA1:37 IIM-42653 */
|
||||
#define DMAMAP_SPI1_TX DMAMAP_DMA12_SPI1TX_0 /* 2 DMA1:38 IIM-42653 */
|
||||
|
||||
//#define DMAMAP_SPI2_RX DMAMAP_DMA12_SPI2RX_0 /* 3 DMA1:39 ICM-42688-P */
|
||||
//#define DMAMAP_SPI2_TX DMAMAP_DMA12_SPI2TX_0 /* 4 DMA1:40 ICM-42688-P */
|
||||
|
||||
#define DMAMAP_USART1_RX DMAMAP_DMA12_USART1RX_0 /* DMA1:41 GPS1 */
|
||||
#define DMAMAP_USART1_TX DMAMAP_DMA12_USART1TX_0 /* DMA1:42 GPS1 */
|
||||
|
||||
//#define DMAMAP_USART3_RX DMAMAP_DMA12_USART3RX_0 /* DMA1:45 DEBUG */
|
||||
//#define DMAMAP_USART3_TX DMAMAP_DMA12_USART3TX_0 /* DMA1:46 DEBUG */
|
||||
|
||||
// Timer 8 Channel 1 /* DMA1:47 TIM8CH1 */
|
||||
// Timer 8 Channel 2 /* DMA1:48 TIM8CH2 */
|
||||
// Timer 8 Channel 3 /* DMA1:49 TIM8CH3 */
|
||||
// Timer 8 Channel 4 /* DMA1:50 TIM8CH4 */
|
||||
|
||||
// Timer 5 Channel 1 /* DMA1:55 TIM5CH1 */
|
||||
// Timer 5 Channel 2 /* DMA1:56 TIM5CH2 */
|
||||
// Timer 5 Channel 3 /* DMA1:57 TIM5CH3 */
|
||||
// Timer 5 Channel 4 /* DMA1:58 TIM5CH4 */
|
||||
|
||||
// #define DMAMAP_UART4_RX DMAMAP_DMA12_UART4RX_0 /* DMA1:63 UART4 */
|
||||
// #define DMAMAP_UART4_TX DMAMAP_DMA12_UART4TX_0 /* DMA1:64 UART4 */
|
||||
|
||||
#define DMAMAP_USART6_RX DMAMAP_DMA12_USART6RX_0 /* 5 DMA1:71 RC */
|
||||
// #define DMAMAP_USART6_TX DMAMAP_DMA12_USART6TX_0 /* 6 DMA1:72 RC */
|
||||
|
||||
// Assigned in timer_config.cpp
|
||||
|
||||
// Timer 4 /* 7 DMA1:32 TIM4UP */
|
||||
// Timer 5 /* 8 DMA1:50 TIM5UP */
|
||||
#define DMAMAP_SPI1_RX DMAMAP_DMA12_SPI1RX_0 // 1 DMA1:37 IIM-42653
|
||||
#define DMAMAP_SPI1_TX DMAMAP_DMA12_SPI1TX_0 // 2 DMA1:38 IIM-42653
|
||||
#define DMAMAP_USART1_RX DMAMAP_DMA12_USART1RX_0 // 3 DMA1:41 GPS1
|
||||
#define DMAMAP_USART1_TX DMAMAP_DMA12_USART1TX_0 // 4 DMA1:42 GPS1
|
||||
#define DMAMAP_USART6_RX DMAMAP_DMA12_USART6RX_0 // 5 DMA1:71 RC
|
||||
#define DMAMAP_USART6_TX DMAMAP_DMA12_USART6TX_0 // 6 DMA1:72 RC
|
||||
// Timer 4 (DMAMAP_DMA12_TIM4UP_0) // 7 DMA1:32 TIM4UP/TIM4CH1-4
|
||||
// Timer 5 (DMAMAP_DMA12_TIM5UP_0) // 8 DMA1:50 TIM5UP/TIM5CH1-4
|
||||
|
||||
// DMAMUX2 Using at most 8 Channels on DMA2 -------- Assigned
|
||||
// V
|
||||
|
||||
// Timer 4 Channel 1 /* DMA2:29 TIM4CH1 */
|
||||
|
||||
#define DMAMAP_USART2_RX DMAMAP_DMA12_USART2RX_1 /* 3 DMA2:43 TELEM3 */
|
||||
#define DMAMAP_USART2_TX DMAMAP_DMA12_USART2TX_1 /* 4 DMA2:44 TELEM3 */
|
||||
|
||||
#define DMAMAP_USART3_RX DMAMAP_DMA12_USART3RX_1 /* 3 DMA2:45 DEBUG */
|
||||
#define DMAMAP_USART3_TX DMAMAP_DMA12_USART3TX_1 /* 4 DMA2:46 DEBUG */
|
||||
|
||||
// Timer 8 Channel 1 /* DMA2:47 TIM8CH1 */
|
||||
// Timer 8 Channel 2 /* DMA2:48 TIM8CH2 */
|
||||
// Timer 8 Channel 3 /* DMA2:49 TIM8CH3 */
|
||||
// Timer 8 Channel 4 /* DMA2:50 TIM8CH4 */
|
||||
|
||||
// Timer 5 Channel 1 /* DMA2:55 TIM5CH1 */
|
||||
// Timer 5 Channel 2 /* DMA2:56 TIM5CH2 */
|
||||
// Timer 5 Channel 3 /* DMA2:57 TIM5CH3 */
|
||||
// Timer 5 Channel 4 /* DMA2:58 TIM5CH4 */
|
||||
|
||||
//#define DMAMAP_SPI3_RX DMAMAP_DMA12_SPI3RX_1 /* 1 DMA2:61 BMI088 */
|
||||
//#define DMAMAP_SPI3_TX DMAMAP_DMA12_SPI3TX_1 /* 2 DMA2:62 BMI088 */
|
||||
|
||||
#define DMAMAP_UART5_RX DMAMAP_DMA12_UART5RX_1 /* 5 DMA2:65 TELEM2 */
|
||||
#define DMAMAP_UART5_TX DMAMAP_DMA12_UART5TX_1 /* 6 DMA2:66 TELEM2 */
|
||||
|
||||
#define DMAMAP_UART7_RX DMAMAP_DMA12_UART7RX_1 /* 7 DMA1:79 TELEM1 */
|
||||
#define DMAMAP_UART7_TX DMAMAP_DMA12_UART7TX_1 /* 8 DMA1:80 TELEM1 */
|
||||
#define DMAMAP_USART2_RX DMAMAP_DMA12_USART2RX_1 // 1 DMA2:43 VTX
|
||||
#define DMAMAP_UART5_RX DMAMAP_DMA12_UART5RX_1 // 2 DMA2:65 VTX
|
||||
#define DMAMAP_UART5_TX DMAMAP_DMA12_UART5TX_1 // 3 DMA2:66 VTX
|
||||
#define DMAMAP_UART7_RX DMAMAP_DMA12_UART7RX_1 // 4 DMA2:79 TELEM1
|
||||
#define DMAMAP_UART7_TX DMAMAP_DMA12_UART7TX_1 // 5 DMA2:80 TELEM1
|
||||
#define DMAMAP_USART3_RX DMAMAP_DMA12_USART3RX_1 // 6 DMA2:45 DEBUG
|
||||
#define DMAMAP_USART3_TX DMAMAP_DMA12_USART3TX_1 // 7 DMA2:46 DEBUG
|
||||
// available
|
||||
|
||||
// DMAMUX2 Using at most 8 Channels on BDMA -------- Assigned
|
||||
// V
|
||||
|
||||
#define DMAMAP_SPI6_RX DMAMAP_BDMA_SPI6_RX /* 1 BDMA:11 SPI J11 */
|
||||
#define DMAMAP_SPI6_TX DMAMAP_BDMA_SPI6_TX /* 2 BDMA:12 SPI J11 */
|
||||
#define DMAMAP_SPI6_RX DMAMAP_BDMA_SPI6_RX // 1 BDMA:11 SPI J11
|
||||
#define DMAMAP_SPI6_TX DMAMAP_BDMA_SPI6_TX // 2 BDMA:12 SPI J11
|
||||
|
||||
@ -260,8 +260,6 @@ CONFIG_USART1_TXDMA=y
|
||||
CONFIG_USART2_BAUD=57600
|
||||
CONFIG_USART2_RXBUFSIZE=600
|
||||
CONFIG_USART2_RXDMA=y
|
||||
CONFIG_USART2_TXBUFSIZE=1500
|
||||
CONFIG_USART2_TXDMA=y
|
||||
CONFIG_USART3_BAUD=57600
|
||||
CONFIG_USART3_RXBUFSIZE=180
|
||||
CONFIG_USART3_RXDMA=y
|
||||
@ -272,6 +270,7 @@ CONFIG_USART6_BAUD=57600
|
||||
CONFIG_USART6_RXBUFSIZE=600
|
||||
CONFIG_USART6_RXDMA=y
|
||||
CONFIG_USART6_TXBUFSIZE=1500
|
||||
CONFIG_USART6_TXDMA=y
|
||||
CONFIG_USBDEV=y
|
||||
CONFIG_USBDEV_BUSPOWERED=y
|
||||
CONFIG_USBDEV_MAXPOWER=500
|
||||
|
||||
@ -116,18 +116,10 @@ add_custom_target(metadata_extract_events
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
add_custom_target(metadata_msg_documentation
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PX4_BINARY_DIR}/msg_docs
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/msg/generate_msg_docs.py --dds_topics -d ${PX4_BINARY_DIR}/msg_docs
|
||||
COMMENT "Generating uORB message documentation"
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
add_custom_target(all_metadata
|
||||
DEPENDS
|
||||
metadata_airframes
|
||||
metadata_parameters
|
||||
metadata_module_documentation
|
||||
metadata_extract_events
|
||||
metadata_msg_documentation
|
||||
)
|
||||
|
||||
@ -730,7 +730,6 @@
|
||||
- [Protocols/Microservices](mavlink/protocols.md)
|
||||
- [Standard Modes Protocol](mavlink/standard_modes.md)
|
||||
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](middleware/uxrce_dds.md)
|
||||
- [DDS Topic List](middleware/dds_topics.md)
|
||||
- [Modules & Commands](modules/modules_main.md)
|
||||
- [Autotune](modules/modules_autotune.md)
|
||||
- [Commands](modules/modules_command.md)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,276 +0,0 @@
|
||||
# dds_topics.yaml — PX4 Topics Exposed to ROS 2
|
||||
|
||||
::: info
|
||||
This document is [auto-generated](https://github.com/PX4/PX4-Autopilot/blob/main/Tools/msg/generate_msg_docs.py) from the source code.
|
||||
:::
|
||||
|
||||
|
||||
The [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml) file specifies which uORB message definitions are compiled into the [uxrce_dds_client](../modules/modules_system.md#uxrce-dds-client) module when [PX4 is built](../middleware/uxrce_dds.md#code-generation), and hence which topics are available for ROS 2 applications to subscribe or publish (by default).
|
||||
|
||||
This document shows a markdown-rendered version of [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml), listing the publications, subscriptions, and so on.
|
||||
|
||||
## Publications
|
||||
|
||||
Topic | Type| Rate Limit
|
||||
--- | --- | ---
|
||||
`/fmu/out/airspeed_validated` | [px4_msgs::msg::AirspeedValidated](../msg_docs/AirspeedValidated.md) | 50.0
|
||||
`/fmu/out/arming_check_request` | [px4_msgs::msg::ArmingCheckRequest](../msg_docs/ArmingCheckRequest.md) | 5.0
|
||||
`/fmu/out/battery_status` | [px4_msgs::msg::BatteryStatus](../msg_docs/BatteryStatus.md) | 1.0
|
||||
`/fmu/out/collision_constraints` | [px4_msgs::msg::CollisionConstraints](../msg_docs/CollisionConstraints.md) | 50.0
|
||||
`/fmu/out/estimator_status_flags` | [px4_msgs::msg::EstimatorStatusFlags](../msg_docs/EstimatorStatusFlags.md) | 5.0
|
||||
`/fmu/out/failsafe_flags` | [px4_msgs::msg::FailsafeFlags](../msg_docs/FailsafeFlags.md) | 5.0
|
||||
`/fmu/out/home_position` | [px4_msgs::msg::HomePosition](../msg_docs/HomePosition.md) | 5.0
|
||||
`/fmu/out/manual_control_setpoint` | [px4_msgs::msg::ManualControlSetpoint](../msg_docs/ManualControlSetpoint.md) | 25.0
|
||||
`/fmu/out/message_format_response` | [px4_msgs::msg::MessageFormatResponse](../msg_docs/MessageFormatResponse.md) |
|
||||
`/fmu/out/mode_completed` | [px4_msgs::msg::ModeCompleted](../msg_docs/ModeCompleted.md) | 50.0
|
||||
`/fmu/out/position_setpoint_triplet` | [px4_msgs::msg::PositionSetpointTriplet](../msg_docs/PositionSetpointTriplet.md) | 5.0
|
||||
`/fmu/out/register_ext_component_reply` | [px4_msgs::msg::RegisterExtComponentReply](../msg_docs/RegisterExtComponentReply.md) |
|
||||
`/fmu/out/sensor_combined` | [px4_msgs::msg::SensorCombined](../msg_docs/SensorCombined.md) |
|
||||
`/fmu/out/vehicle_gps_position` | [px4_msgs::msg::SensorGps](../msg_docs/SensorGps.md) | 50.0
|
||||
`/fmu/out/timesync_status` | [px4_msgs::msg::TimesyncStatus](../msg_docs/TimesyncStatus.md) | 10.0
|
||||
`/fmu/out/vehicle_attitude` | [px4_msgs::msg::VehicleAttitude](../msg_docs/VehicleAttitude.md) |
|
||||
`/fmu/out/vehicle_command_ack` | [px4_msgs::msg::VehicleCommandAck](../msg_docs/VehicleCommandAck.md) |
|
||||
`/fmu/out/vehicle_control_mode` | [px4_msgs::msg::VehicleControlMode](../msg_docs/VehicleControlMode.md) | 50.0
|
||||
`/fmu/out/vehicle_global_position` | [px4_msgs::msg::VehicleGlobalPosition](../msg_docs/VehicleGlobalPosition.md) | 50.0
|
||||
`/fmu/out/vehicle_land_detected` | [px4_msgs::msg::VehicleLandDetected](../msg_docs/VehicleLandDetected.md) | 5.0
|
||||
`/fmu/out/vehicle_local_position` | [px4_msgs::msg::VehicleLocalPosition](../msg_docs/VehicleLocalPosition.md) | 50.0
|
||||
`/fmu/out/vehicle_odometry` | [px4_msgs::msg::VehicleOdometry](../msg_docs/VehicleOdometry.md) |
|
||||
`/fmu/out/vehicle_status` | [px4_msgs::msg::VehicleStatus](../msg_docs/VehicleStatus.md) | 5.0
|
||||
`/fmu/out/vtol_vehicle_status` | [px4_msgs::msg::VtolVehicleStatus](../msg_docs/VtolVehicleStatus.md) |
|
||||
|
||||
## Subscriptions
|
||||
|
||||
Topic | Type
|
||||
--- | ---
|
||||
/fmu/in/actuator_motors | [px4_msgs::msg::ActuatorMotors](../msg_docs/ActuatorMotors.md)
|
||||
/fmu/in/actuator_servos | [px4_msgs::msg::ActuatorServos](../msg_docs/ActuatorServos.md)
|
||||
/fmu/in/arming_check_reply | [px4_msgs::msg::ArmingCheckReply](../msg_docs/ArmingCheckReply.md)
|
||||
/fmu/in/config_overrides_request | [px4_msgs::msg::ConfigOverrides](../msg_docs/ConfigOverrides.md)
|
||||
/fmu/in/distance_sensor | [px4_msgs::msg::DistanceSensor](../msg_docs/DistanceSensor.md)
|
||||
/fmu/in/fixed_wing_lateral_setpoint | [px4_msgs::msg::FixedWingLateralSetpoint](../msg_docs/FixedWingLateralSetpoint.md)
|
||||
/fmu/in/fixed_wing_longitudinal_setpoint | [px4_msgs::msg::FixedWingLongitudinalSetpoint](../msg_docs/FixedWingLongitudinalSetpoint.md)
|
||||
/fmu/in/goto_setpoint | [px4_msgs::msg::GotoSetpoint](../msg_docs/GotoSetpoint.md)
|
||||
/fmu/in/lateral_control_configuration | [px4_msgs::msg::LateralControlConfiguration](../msg_docs/LateralControlConfiguration.md)
|
||||
/fmu/in/longitudinal_control_configuration | [px4_msgs::msg::LongitudinalControlConfiguration](../msg_docs/LongitudinalControlConfiguration.md)
|
||||
/fmu/in/manual_control_input | [px4_msgs::msg::ManualControlSetpoint](../msg_docs/ManualControlSetpoint.md)
|
||||
/fmu/in/message_format_request | [px4_msgs::msg::MessageFormatRequest](../msg_docs/MessageFormatRequest.md)
|
||||
/fmu/in/mode_completed | [px4_msgs::msg::ModeCompleted](../msg_docs/ModeCompleted.md)
|
||||
/fmu/in/obstacle_distance | [px4_msgs::msg::ObstacleDistance](../msg_docs/ObstacleDistance.md)
|
||||
/fmu/in/offboard_control_mode | [px4_msgs::msg::OffboardControlMode](../msg_docs/OffboardControlMode.md)
|
||||
/fmu/in/onboard_computer_status | [px4_msgs::msg::OnboardComputerStatus](../msg_docs/OnboardComputerStatus.md)
|
||||
/fmu/in/register_ext_component_request | [px4_msgs::msg::RegisterExtComponentRequest](../msg_docs/RegisterExtComponentRequest.md)
|
||||
/fmu/in/sensor_optical_flow | [px4_msgs::msg::SensorOpticalFlow](../msg_docs/SensorOpticalFlow.md)
|
||||
/fmu/in/telemetry_status | [px4_msgs::msg::TelemetryStatus](../msg_docs/TelemetryStatus.md)
|
||||
/fmu/in/trajectory_setpoint | [px4_msgs::msg::TrajectorySetpoint](../msg_docs/TrajectorySetpoint.md)
|
||||
/fmu/in/unregister_ext_component | [px4_msgs::msg::UnregisterExtComponent](../msg_docs/UnregisterExtComponent.md)
|
||||
/fmu/in/vehicle_attitude_setpoint | [px4_msgs::msg::VehicleAttitudeSetpoint](../msg_docs/VehicleAttitudeSetpoint.md)
|
||||
/fmu/in/vehicle_command | [px4_msgs::msg::VehicleCommand](../msg_docs/VehicleCommand.md)
|
||||
/fmu/in/vehicle_command_mode_executor | [px4_msgs::msg::VehicleCommand](../msg_docs/VehicleCommand.md)
|
||||
/fmu/in/config_control_setpoints | [px4_msgs::msg::VehicleControlMode](../msg_docs/VehicleControlMode.md)
|
||||
/fmu/in/aux_global_position | [px4_msgs::msg::VehicleGlobalPosition](../msg_docs/VehicleGlobalPosition.md)
|
||||
/fmu/in/vehicle_mocap_odometry | [px4_msgs::msg::VehicleOdometry](../msg_docs/VehicleOdometry.md)
|
||||
/fmu/in/vehicle_visual_odometry | [px4_msgs::msg::VehicleOdometry](../msg_docs/VehicleOdometry.md)
|
||||
/fmu/in/vehicle_rates_setpoint | [px4_msgs::msg::VehicleRatesSetpoint](../msg_docs/VehicleRatesSetpoint.md)
|
||||
/fmu/in/vehicle_thrust_setpoint | [px4_msgs::msg::VehicleThrustSetpoint](../msg_docs/VehicleThrustSetpoint.md)
|
||||
/fmu/in/vehicle_torque_setpoint | [px4_msgs::msg::VehicleTorqueSetpoint](../msg_docs/VehicleTorqueSetpoint.md)
|
||||
|
||||
## Subscriptions Multi
|
||||
|
||||
None
|
||||
|
||||
## Not Exported
|
||||
|
||||
These messages are not listed in the yaml file.
|
||||
They are not build into the module, and hence are neither published or subscribed.
|
||||
|
||||
::: details See messages
|
||||
|
||||
- [ActionRequest](../msg_docs/ActionRequest.md)
|
||||
- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
|
||||
- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
|
||||
- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
|
||||
- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
|
||||
- [ActuatorTest](../msg_docs/ActuatorTest.md)
|
||||
- [AdcReport](../msg_docs/AdcReport.md)
|
||||
- [Airspeed](../msg_docs/Airspeed.md)
|
||||
- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
|
||||
- [AirspeedWind](../msg_docs/AirspeedWind.md)
|
||||
- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
|
||||
- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
|
||||
- [ButtonEvent](../msg_docs/ButtonEvent.md)
|
||||
- [CameraCapture](../msg_docs/CameraCapture.md)
|
||||
- [CameraStatus](../msg_docs/CameraStatus.md)
|
||||
- [CameraTrigger](../msg_docs/CameraTrigger.md)
|
||||
- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
|
||||
- [CellularStatus](../msg_docs/CellularStatus.md)
|
||||
- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
|
||||
- [Cpuload](../msg_docs/Cpuload.md)
|
||||
- [DatamanRequest](../msg_docs/DatamanRequest.md)
|
||||
- [DatamanResponse](../msg_docs/DatamanResponse.md)
|
||||
- [DebugArray](../msg_docs/DebugArray.md)
|
||||
- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
|
||||
- [DebugValue](../msg_docs/DebugValue.md)
|
||||
- [DebugVect](../msg_docs/DebugVect.md)
|
||||
- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
|
||||
- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
|
||||
- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
|
||||
- [EscReport](../msg_docs/EscReport.md)
|
||||
- [EscStatus](../msg_docs/EscStatus.md)
|
||||
- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
|
||||
- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
|
||||
- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
|
||||
- [EstimatorBias](../msg_docs/EstimatorBias.md)
|
||||
- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
|
||||
- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
|
||||
- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
|
||||
- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
|
||||
- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
|
||||
- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
|
||||
- [EstimatorStates](../msg_docs/EstimatorStates.md)
|
||||
- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
|
||||
- [Event](../msg_docs/Event.md)
|
||||
- [EventV0](../msg_docs/EventV0.md)
|
||||
- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
|
||||
- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
|
||||
- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
|
||||
- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
|
||||
- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
|
||||
- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
|
||||
- [FollowTarget](../msg_docs/FollowTarget.md)
|
||||
- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
|
||||
- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
|
||||
- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
|
||||
- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
|
||||
- [GeofenceResult](../msg_docs/GeofenceResult.md)
|
||||
- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
|
||||
- [GimbalControls](../msg_docs/GimbalControls.md)
|
||||
- [GimbalDeviceAttitudeStatus](../msg_docs/GimbalDeviceAttitudeStatus.md)
|
||||
- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
|
||||
- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
|
||||
- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
|
||||
- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
|
||||
- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
|
||||
- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
|
||||
- [GpioConfig](../msg_docs/GpioConfig.md)
|
||||
- [GpioIn](../msg_docs/GpioIn.md)
|
||||
- [GpioOut](../msg_docs/GpioOut.md)
|
||||
- [GpioRequest](../msg_docs/GpioRequest.md)
|
||||
- [GpsDump](../msg_docs/GpsDump.md)
|
||||
- [GpsInjectData](../msg_docs/GpsInjectData.md)
|
||||
- [Gripper](../msg_docs/Gripper.md)
|
||||
- [HealthReport](../msg_docs/HealthReport.md)
|
||||
- [HeaterStatus](../msg_docs/HeaterStatus.md)
|
||||
- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
|
||||
- [InputRc](../msg_docs/InputRc.md)
|
||||
- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
|
||||
- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
|
||||
- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
|
||||
- [IrlockReport](../msg_docs/IrlockReport.md)
|
||||
- [LandingGear](../msg_docs/LandingGear.md)
|
||||
- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
|
||||
- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
|
||||
- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
|
||||
- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
|
||||
- [LedControl](../msg_docs/LedControl.md)
|
||||
- [LogMessage](../msg_docs/LogMessage.md)
|
||||
- [LoggerStatus](../msg_docs/LoggerStatus.md)
|
||||
- [MagWorkerData](../msg_docs/MagWorkerData.md)
|
||||
- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
|
||||
- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
|
||||
- [MavlinkLog](../msg_docs/MavlinkLog.md)
|
||||
- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
|
||||
- [Mission](../msg_docs/Mission.md)
|
||||
- [MissionResult](../msg_docs/MissionResult.md)
|
||||
- [MountOrientation](../msg_docs/MountOrientation.md)
|
||||
- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
|
||||
- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
|
||||
- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
|
||||
- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
|
||||
- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
|
||||
- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
|
||||
- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
|
||||
- [OrbTest](../msg_docs/OrbTest.md)
|
||||
- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
|
||||
- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
|
||||
- [OrbitStatus](../msg_docs/OrbitStatus.md)
|
||||
- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
|
||||
- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
|
||||
- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
|
||||
- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
|
||||
- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
|
||||
- [Ping](../msg_docs/Ping.md)
|
||||
- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
|
||||
- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
|
||||
- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
|
||||
- [PowerButtonState](../msg_docs/PowerButtonState.md)
|
||||
- [PowerMonitor](../msg_docs/PowerMonitor.md)
|
||||
- [PpsCapture](../msg_docs/PpsCapture.md)
|
||||
- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
|
||||
- [PwmInput](../msg_docs/PwmInput.md)
|
||||
- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
|
||||
- [QshellReq](../msg_docs/QshellReq.md)
|
||||
- [QshellRetval](../msg_docs/QshellRetval.md)
|
||||
- [RadioStatus](../msg_docs/RadioStatus.md)
|
||||
- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
|
||||
- [RcChannels](../msg_docs/RcChannels.md)
|
||||
- [RcParameterMap](../msg_docs/RcParameterMap.md)
|
||||
- [RoverAttitudeSetpoint](../msg_docs/RoverAttitudeSetpoint.md)
|
||||
- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
|
||||
- [RoverPositionSetpoint](../msg_docs/RoverPositionSetpoint.md)
|
||||
- [RoverRateSetpoint](../msg_docs/RoverRateSetpoint.md)
|
||||
- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
|
||||
- [RoverSteeringSetpoint](../msg_docs/RoverSteeringSetpoint.md)
|
||||
- [RoverThrottleSetpoint](../msg_docs/RoverThrottleSetpoint.md)
|
||||
- [RoverVelocitySetpoint](../msg_docs/RoverVelocitySetpoint.md)
|
||||
- [RoverVelocityStatus](../msg_docs/RoverVelocityStatus.md)
|
||||
- [Rpm](../msg_docs/Rpm.md)
|
||||
- [RtlStatus](../msg_docs/RtlStatus.md)
|
||||
- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
|
||||
- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
|
||||
- [SensorAccel](../msg_docs/SensorAccel.md)
|
||||
- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
|
||||
- [SensorAirflow](../msg_docs/SensorAirflow.md)
|
||||
- [SensorBaro](../msg_docs/SensorBaro.md)
|
||||
- [SensorCorrection](../msg_docs/SensorCorrection.md)
|
||||
- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
|
||||
- [SensorGyro](../msg_docs/SensorGyro.md)
|
||||
- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
|
||||
- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
|
||||
- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
|
||||
- [SensorMag](../msg_docs/SensorMag.md)
|
||||
- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
|
||||
- [SensorSelection](../msg_docs/SensorSelection.md)
|
||||
- [SensorUwb](../msg_docs/SensorUwb.md)
|
||||
- [SensorsStatus](../msg_docs/SensorsStatus.md)
|
||||
- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
|
||||
- [SystemPower](../msg_docs/SystemPower.md)
|
||||
- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
|
||||
- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
|
||||
- [TecsStatus](../msg_docs/TecsStatus.md)
|
||||
- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
|
||||
- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
|
||||
- [TransponderReport](../msg_docs/TransponderReport.md)
|
||||
- [TuneControl](../msg_docs/TuneControl.md)
|
||||
- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
|
||||
- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
|
||||
- [UlogStream](../msg_docs/UlogStream.md)
|
||||
- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
|
||||
- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
|
||||
- [VehicleAirData](../msg_docs/VehicleAirData.md)
|
||||
- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
|
||||
- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
|
||||
- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md)
|
||||
- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
|
||||
- [VehicleImu](../msg_docs/VehicleImu.md)
|
||||
- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
|
||||
- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
|
||||
- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
|
||||
- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
|
||||
- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
|
||||
- [VehicleRoi](../msg_docs/VehicleRoi.md)
|
||||
- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
|
||||
- [VelocityLimits](../msg_docs/VelocityLimits.md)
|
||||
- [WheelEncoders](../msg_docs/WheelEncoders.md)
|
||||
- [Wind](../msg_docs/Wind.md)
|
||||
- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
|
||||
:::
|
||||
@ -1141,7 +1141,7 @@ px4io <command> [arguments...]
|
||||
|
||||
## rgbled
|
||||
|
||||
Source: [drivers/lights/rgbled](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled)
|
||||
Source: [drivers/lights/rgbled_ncp5623c](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled_ncp5623c)
|
||||
|
||||
### Usage {#rgbled_usage}
|
||||
|
||||
@ -1156,7 +1156,9 @@ rgbled <command> [arguments...]
|
||||
[-f <val>] bus frequency in kHz
|
||||
[-q] quiet startup (no message if no device found)
|
||||
[-a <val>] I2C address
|
||||
default: 85
|
||||
default: 57
|
||||
[-o <val>] RGB PWM Assignment
|
||||
default: 123
|
||||
|
||||
stop
|
||||
|
||||
@ -1477,7 +1479,7 @@ Start the driver with a given device:
|
||||
```
|
||||
uwb start -d /dev/ttyS2
|
||||
```
|
||||
|
||||
|
||||
### Usage {#uwb_usage}
|
||||
|
||||
```
|
||||
@ -1637,7 +1639,7 @@ Source: [modules/zenoh](https://github.com/PX4/PX4-Autopilot/tree/main/src/modul
|
||||
### Description
|
||||
|
||||
Zenoh demo bridge
|
||||
|
||||
|
||||
### Usage {#zenoh_usage}
|
||||
|
||||
```
|
||||
|
||||
@ -200,43 +200,6 @@ lightware_sf45_serial <command> [arguments...]
|
||||
|
||||
## ll40ls
|
||||
|
||||
Source: [drivers/distance_sensor/ll40ls](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/distance_sensor/ll40ls)
|
||||
|
||||
|
||||
### Description
|
||||
|
||||
I2C bus driver for LidarLite rangefinders.
|
||||
|
||||
The sensor/driver must be enabled using the parameter SENS_EN_LL40LS.
|
||||
|
||||
Setup/usage information: https://docs.px4.io/main/en/sensor/lidar_lite.html
|
||||
|
||||
### Usage {#ll40ls_usage}
|
||||
|
||||
```
|
||||
ll40ls <command> [arguments...]
|
||||
Commands:
|
||||
start
|
||||
[-I] Internal I2C bus(es)
|
||||
[-X] External I2C bus(es)
|
||||
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
|
||||
(default=1))
|
||||
[-f <val>] bus frequency in kHz
|
||||
[-q] quiet startup (no message if no device found)
|
||||
[-a <val>] I2C address
|
||||
default: 98
|
||||
[-R <val>] Sensor rotation - downward facing by default
|
||||
default: 25
|
||||
|
||||
regdump
|
||||
|
||||
stop
|
||||
|
||||
status print status info
|
||||
```
|
||||
|
||||
## ll40ls_pwm
|
||||
|
||||
Source: [drivers/distance_sensor/ll40ls_pwm](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/distance_sensor/ll40ls_pwm)
|
||||
|
||||
|
||||
@ -248,10 +211,10 @@ The sensor/driver must be enabled using the parameter SENS_EN_LL40LS.
|
||||
|
||||
Setup/usage information: https://docs.px4.io/main/en/sensor/lidar_lite.html
|
||||
|
||||
### Usage {#ll40ls_pwm_usage}
|
||||
### Usage {#ll40ls_usage}
|
||||
|
||||
```
|
||||
ll40ls_pwm <command> [arguments...]
|
||||
ll40ls <command> [arguments...]
|
||||
Commands:
|
||||
start Start driver
|
||||
[-R <val>] Sensor rotation - downward facing by default
|
||||
@ -379,7 +342,7 @@ Source: [drivers/distance_sensor/srf05](https://github.com/PX4/PX4-Autopilot/tre
|
||||
|
||||
The sensor/driver must be enabled using the parameter SENS_EN_HXSRX0X.
|
||||
|
||||
|
||||
|
||||
### Usage {#srf05_usage}
|
||||
|
||||
```
|
||||
|
||||
@ -343,7 +343,7 @@ Source: [modules/internal_combustion_engine_control](https://github.com/PX4/PX4-
|
||||
|
||||
|
||||
### Description
|
||||
|
||||
|
||||
The module controls internal combustion engine (ICE) features including:
|
||||
ignition (on/off), throttle and choke level, starter engine delay, and user request.
|
||||
|
||||
@ -377,21 +377,18 @@ The ICE is implemented with a (4) state machine:
|
||||

|
||||
|
||||
The state machine:
|
||||
|
||||
|
||||
- Checks if [Rpm.msg](../msg_docs/Rpm.md) is updated to know if the engine is running
|
||||
- Allows for user inputs from:
|
||||
- Manual control AUX
|
||||
- AUX{N}
|
||||
- Arming state in [VehicleStatus.msg](../msg_docs/VehicleStatus.md)
|
||||
- In the state "Stopped" the throttle is set to NAN, which by definition will set the
|
||||
throttle output to the disarmed value configured for the specific output.
|
||||
|
||||
|
||||
The module publishes [InternalCombustionEngineControl.msg](../msg_docs/InternalCombustionEngineControl.md).
|
||||
|
||||
|
||||
The architecture is as shown below:
|
||||
|
||||

|
||||
|
||||
|
||||
<a id="internal_combustion_engine_control_usage"></a>
|
||||
|
||||
### Usage {#internal_combustion_engine_control_usage}
|
||||
|
||||
@ -1,59 +1,43 @@
|
||||
# ArmingCheckReply (UORB message)
|
||||
|
||||
Arming check reply.
|
||||
|
||||
This is a response to an ArmingCheckRequest message sent by the FMU to an external component, such as a ROS 2 navigation mode.
|
||||
The response contains the current set of external mode requirements, and a queue of events indicating recent failures to set the mode (which the FMU may then forward to a ground station).
|
||||
The request is sent regularly to all registered ROS modes, even while armed, so that the FMU always knows and can forward the current state.
|
||||
|
||||
Note that the external component is identified by its registration_id, which is allocated to the component during registration (arming_check_id in RegisterExtComponentReply).
|
||||
The message is not used by internal/FMU components, as their mode requirements are known at compile time.
|
||||
|
||||
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/ArmingCheckReply.msg)
|
||||
|
||||
```c
|
||||
# Arming check reply.
|
||||
#
|
||||
# This is a response to an ArmingCheckRequest message sent by the FMU to an external component, such as a ROS 2 navigation mode.
|
||||
# The response contains the current set of external mode requirements, and a queue of events indicating recent failures to set the mode (which the FMU may then forward to a ground station).
|
||||
# The request is sent regularly to all registered ROS modes, even while armed, so that the FMU always knows and can forward the current state.
|
||||
#
|
||||
# Note that the external component is identified by its registration_id, which is allocated to the component during registration (arming_check_id in RegisterExtComponentReply).
|
||||
# The message is not used by internal/FMU components, as their mode requirements are known at compile time.
|
||||
uint32 MESSAGE_VERSION = 0
|
||||
|
||||
uint32 MESSAGE_VERSION = 1
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
|
||||
uint64 timestamp # [us] Time since system start.
|
||||
uint8 request_id
|
||||
uint8 registration_id
|
||||
|
||||
uint8 request_id # Id of ArmingCheckRequest for which this is a response.
|
||||
uint8 registration_id # Id of external component emitting this response.
|
||||
uint8 HEALTH_COMPONENT_INDEX_NONE = 0
|
||||
|
||||
uint8 HEALTH_COMPONENT_INDEX_NONE = 0 # Index of health component for which this response applies.
|
||||
uint8 health_component_index # HEALTH_COMPONENT_INDEX_*
|
||||
bool health_component_is_present
|
||||
bool health_component_warning
|
||||
bool health_component_error
|
||||
|
||||
uint8 health_component_index # [@enum HEALTH_COMPONENT_INDEX]
|
||||
bool health_component_is_present # Unused. Intended for use with health events interface (health_component_t in events.json).
|
||||
bool health_component_warning # Unused. Intended for use with health events interface (health_component_t in events.json).
|
||||
bool health_component_error # Unused. Intended for use with health events interface (health_component_t in events.json).
|
||||
bool can_arm_and_run # whether arming is possible, and if it's a navigation mode, if it can run
|
||||
|
||||
bool can_arm_and_run # True if the component can arm. For navigation mode components, true if the component can arm in the mode or switch to the mode when already armed.
|
||||
uint8 num_events
|
||||
|
||||
uint8 num_events # Number of queued failure messages (Event) in the events field.
|
||||
|
||||
Event[5] events # Arming failure reasons (Queue of events to report to GCS).
|
||||
Event[5] events
|
||||
|
||||
# Mode requirements
|
||||
bool mode_req_angular_velocity # Requires angular velocity estimate (e.g. from gyroscope).
|
||||
bool mode_req_attitude # Requires an attitude estimate.
|
||||
bool mode_req_local_alt # Requires a local altitude estimate.
|
||||
bool mode_req_local_position # Requires a local position estimate.
|
||||
bool mode_req_local_position_relaxed # Requires a more relaxed global position estimate.
|
||||
bool mode_req_global_position # Requires a global position estimate.
|
||||
bool mode_req_global_position_relaxed # Requires a relaxed global position estimate.
|
||||
bool mode_req_mission # Requires an uploaded mission.
|
||||
bool mode_req_home_position # Requires a home position (such as RTL/Return mode).
|
||||
bool mode_req_prevent_arming # Prevent arming (such as in Land mode).
|
||||
bool mode_req_manual_control # Requires a manual controller
|
||||
bool mode_req_angular_velocity
|
||||
bool mode_req_attitude
|
||||
bool mode_req_local_alt
|
||||
bool mode_req_local_position
|
||||
bool mode_req_local_position_relaxed
|
||||
bool mode_req_global_position
|
||||
bool mode_req_mission
|
||||
bool mode_req_home_position
|
||||
bool mode_req_prevent_arming
|
||||
bool mode_req_manual_control
|
||||
|
||||
uint8 ORB_QUEUE_LENGTH = 4 #
|
||||
|
||||
uint8 ORB_QUEUE_LENGTH = 4
|
||||
|
||||
```
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
# ArmingCheckReplyV0 (UORB message)
|
||||
|
||||
|
||||
|
||||
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/px4_msgs_old/msg/ArmingCheckReplyV0.msg)
|
||||
|
||||
```c
|
||||
uint32 MESSAGE_VERSION = 0
|
||||
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
|
||||
uint8 request_id
|
||||
uint8 registration_id
|
||||
|
||||
uint8 HEALTH_COMPONENT_INDEX_NONE = 0
|
||||
|
||||
uint8 health_component_index # HEALTH_COMPONENT_INDEX_*
|
||||
bool health_component_is_present
|
||||
bool health_component_warning
|
||||
bool health_component_error
|
||||
|
||||
bool can_arm_and_run # whether arming is possible, and if it's a navigation mode, if it can run
|
||||
|
||||
uint8 num_events
|
||||
|
||||
EventV0[5] events
|
||||
|
||||
# Mode requirements
|
||||
bool mode_req_angular_velocity
|
||||
bool mode_req_attitude
|
||||
bool mode_req_local_alt
|
||||
bool mode_req_local_position
|
||||
bool mode_req_local_position_relaxed
|
||||
bool mode_req_global_position
|
||||
bool mode_req_mission
|
||||
bool mode_req_home_position
|
||||
bool mode_req_prevent_arming
|
||||
bool mode_req_manual_control
|
||||
|
||||
|
||||
uint8 ORB_QUEUE_LENGTH = 4
|
||||
|
||||
```
|
||||
@ -1,30 +1,16 @@
|
||||
# ArmingCheckRequest (UORB message)
|
||||
|
||||
Arming check request.
|
||||
|
||||
Broadcast message to request arming checks be reported by all registered components, such as external ROS 2 navigation modes.
|
||||
All registered components should respond with an ArmingCheckReply message that indicates their current mode requirements, and any arming failure information.
|
||||
The request is sent regularly, even while armed, so that the FMU always knows the current arming state for external modes, and can forward it to ground stations.
|
||||
|
||||
The reply will include the published request_id, allowing correlation of all arming check information for a particular request.
|
||||
The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply).
|
||||
|
||||
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/ArmingCheckRequest.msg)
|
||||
|
||||
```c
|
||||
# Arming check request.
|
||||
#
|
||||
# Broadcast message to request arming checks be reported by all registered components, such as external ROS 2 navigation modes.
|
||||
# All registered components should respond with an ArmingCheckReply message that indicates their current mode requirements, and any arming failure information.
|
||||
# The request is sent regularly, even while armed, so that the FMU always knows the current arming state for external modes, and can forward it to ground stations.
|
||||
#
|
||||
# The reply will include the published request_id, allowing correlation of all arming check information for a particular request.
|
||||
# The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply).
|
||||
|
||||
uint32 MESSAGE_VERSION = 0
|
||||
|
||||
uint64 timestamp # [us] Time since system start.
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
|
||||
uint8 request_id # Id of this request. Allows correlation with associated ArmingCheckReply messages.
|
||||
# broadcast message to request all registered arming checks to be reported
|
||||
|
||||
uint8 request_id
|
||||
|
||||
```
|
||||
|
||||
@ -2,12 +2,10 @@
|
||||
|
||||
Events interface
|
||||
|
||||
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/Event.msg)
|
||||
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/Event.msg)
|
||||
|
||||
```c
|
||||
# Events interface
|
||||
uint32 MESSAGE_VERSION = 1
|
||||
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
|
||||
uint32 id # Event ID
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
# EventV0 (UORB message)
|
||||
|
||||
this message is required here in the msg_old folder because other msg are depending on it
|
||||
Events interface
|
||||
|
||||
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/px4_msgs_old/msg/EventV0.msg)
|
||||
|
||||
```c
|
||||
# this message is required here in the msg_old folder because other msg are depending on it
|
||||
# Events interface
|
||||
|
||||
uint32 MESSAGE_VERSION = 0
|
||||
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
|
||||
uint32 id # Event ID
|
||||
uint16 event_sequence # Event sequence number
|
||||
uint8[25] arguments # (optional) arguments, depend on event id
|
||||
|
||||
uint8 log_levels # Log levels: 4 bits MSB: internal, 4 bits LSB: external
|
||||
|
||||
uint8 ORB_QUEUE_LENGTH = 16
|
||||
|
||||
```
|
||||
@ -22,7 +22,6 @@ uint32 mode_req_local_alt
|
||||
uint32 mode_req_local_position
|
||||
uint32 mode_req_local_position_relaxed
|
||||
uint32 mode_req_global_position
|
||||
uint32 mode_req_global_position_relaxed
|
||||
uint32 mode_req_mission
|
||||
uint32 mode_req_offboard_signal
|
||||
uint32 mode_req_home_position
|
||||
@ -40,7 +39,6 @@ bool local_position_invalid # Local position estimate invalid
|
||||
bool local_position_invalid_relaxed # Local position with reduced accuracy requirements invalid (e.g. flying with optical flow)
|
||||
bool local_velocity_invalid # Local velocity estimate invalid
|
||||
bool global_position_invalid # Global position estimate invalid
|
||||
bool global_position_invalid_relaxed # Global position estimate invalid with relaxed accuracy requirements
|
||||
bool auto_mission_missing # No mission available
|
||||
bool offboard_control_signal_lost # Offboard signal lost
|
||||
bool home_position_invalid # No home position available
|
||||
|
||||
@ -7,10 +7,10 @@
|
||||
```c
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
|
||||
bool ignition_on # activate/deactivate ignition (spark plug)
|
||||
float32 throttle_control # setpoint for throttle actuator, with slew rate if enabled, idles with 0 [norm] [@range 0,1] [@uncontrolled NAN to stop motor]
|
||||
float32 choke_control # setpoint for choke actuator, 1: fully closed [norm] [@range 0,1]
|
||||
float32 starter_engine_control # setpoint for (electric) starter motor [norm] [@range 0,1]
|
||||
bool ignition_on # activate/deactivate ignition (Spark Plug)
|
||||
float32 throttle_control # [0,1] - Motor should idle with 0. Includes slew rate if enabled.
|
||||
float32 choke_control # [0,1] - 1 fully closes the air inlet.
|
||||
float32 starter_engine_control # [0,1] - control value for electric starter motor.
|
||||
|
||||
uint8 user_request # user intent for the ICE being on/off
|
||||
|
||||
|
||||
@ -16,11 +16,10 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
|
||||
- [ActuatorMotors](ActuatorMotors.md) — Motor control message
|
||||
- [ActuatorServos](ActuatorServos.md) — Servo control message
|
||||
- [AirspeedValidated](AirspeedValidated.md)
|
||||
- [ArmingCheckReply](ArmingCheckReply.md) — Arming check reply.
|
||||
- [ArmingCheckRequest](ArmingCheckRequest.md) — Arming check request.
|
||||
- [ArmingCheckReply](ArmingCheckReply.md)
|
||||
- [ArmingCheckRequest](ArmingCheckRequest.md)
|
||||
- [BatteryStatus](BatteryStatus.md)
|
||||
- [ConfigOverrides](ConfigOverrides.md) — Configurable overrides by (external) modes or mode executors
|
||||
- [Event](Event.md) — Events interface
|
||||
- [FixedWingLateralSetpoint](FixedWingLateralSetpoint.md) — Fixed Wing Lateral Setpoint message
|
||||
Used by the fw_lateral_longitudinal_control module
|
||||
At least one of course, airspeed_direction, or lateral_acceleration must be finite.
|
||||
@ -125,6 +124,7 @@ scale errors, in-run bias and thermal drift (if thermal compensation is enabled
|
||||
- [EstimatorStates](EstimatorStates.md)
|
||||
- [EstimatorStatus](EstimatorStatus.md)
|
||||
- [EstimatorStatusFlags](EstimatorStatusFlags.md)
|
||||
- [Event](Event.md) — Events interface
|
||||
- [FailsafeFlags](FailsafeFlags.md) — Input flags for the failsafe state machine set by the arming & health checks.
|
||||
- [FailureDetectorStatus](FailureDetectorStatus.md)
|
||||
- [FigureEightStatus](FigureEightStatus.md)
|
||||
@ -298,9 +298,6 @@ NaN means the state was not controlled
|
||||
- [Wind](Wind.md)
|
||||
- [YawEstimatorStatus](YawEstimatorStatus.md)
|
||||
- [AirspeedValidatedV0](AirspeedValidatedV0.md)
|
||||
- [ArmingCheckReplyV0](ArmingCheckReplyV0.md)
|
||||
- [EventV0](EventV0.md) — this message is required here in the msg_old folder because other msg are depending on it
|
||||
Events interface
|
||||
- [VehicleAttitudeSetpointV0](VehicleAttitudeSetpointV0.md)
|
||||
- [VehicleStatusV0](VehicleStatusV0.md) — Encodes the system state of the vehicle published by commander
|
||||
|
||||
|
||||
@ -725,12 +725,13 @@
|
||||
- [AirspeedValidatedV0](msg_docs/AirspeedValidatedV0.md)
|
||||
- [VehicleAttitudeSetpointV0](msg_docs/VehicleAttitudeSetpointV0.md)
|
||||
- [VehicleStatusV0](msg_docs/VehicleStatusV0.md)
|
||||
- [MAVLink Messaging](middleware/mavlink.md)
|
||||
- [MAVLink Messaging](mavlink/index.md)
|
||||
- [Adding Messages](mavlink/adding_messages.md)
|
||||
- [Streaming Messages](mavlink/streaming_messages.md)
|
||||
- [Receiving Messages](mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](mavlink/custom_messages.md)
|
||||
- [Standard Modes Protocol](mavlink/standard_modes.md)
|
||||
- [Protocols/Microservices](mavlink/protocols.md)
|
||||
- [Standard Modes Protocol](mavlink/standard_modes.md)
|
||||
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](middleware/uxrce_dds.md)
|
||||
- [모듈과 명령어](modules/modules_main.md)
|
||||
- [자동 튜닝](modules/modules_autotune.md)
|
||||
@ -860,6 +861,7 @@
|
||||
|
||||
- [출시](releases/index.md)
|
||||
- [main (alpha)](releases/main.md)
|
||||
- [1.16 (release candidate)](releases/1.16.md)
|
||||
- [1.15 (stable)](releases/1.15.md)
|
||||
- [1.14](releases/1.14.md)
|
||||
- [1.13](releases/1.13.md)
|
||||
|
||||
@ -12,7 +12,7 @@ To use it you will need to build firmware with this feature enabled and then upl
|
||||
:::
|
||||
|
||||
:::tip
|
||||
Log encryption was has been improved in PX4 main (v1.16+) to generate a single encrypted log file that contains both encrypted log data, and an encrypted symmetric key that you can use to decrypt it (provided you can decrypt the symmetric key).
|
||||
Log encryption was has been improved in PX4 v1.16 to generate a single encrypted log file that contains both encrypted log data, and an encrypted symmetric key that you can use to decrypt it (provided you can decrypt the symmetric key).
|
||||
|
||||
In earlier versions the encrypted symmetric key was stored in a separate file.
|
||||
For more information see the [Log Encryption (PX4 v1.15)](https://docs.px4.io/v1.15/en/dev_log/log_encryption.html).
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
# Holybro Kakute H7 V2
|
||||
# Holybro Kakute H743-Wing
|
||||
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
:::warning
|
||||
PX4 does not manufacture this (or any) autopilot.
|
||||
@ -31,9 +33,7 @@ The board can be bought from one of the following shops (for example):
|
||||
| Buz-, Buz+ | Piezo buzzer | |
|
||||
| M1 to M14 | Motor signal outputs | |
|
||||
|
||||
<a id="bootloader"></a>
|
||||
|
||||
## 부트로더 업데이트
|
||||
## PX4 Bootloader Update {#bootloader}
|
||||
|
||||
The board comes pre-installed with [Betaflight](https://github.com/betaflight/betaflight/wiki).
|
||||
Before the PX4 firmware can be installed, the _PX4 bootloader_ must be flashed.
|
||||
@ -50,7 +50,7 @@ make holybro_kakuteh7-wing_default
|
||||
## 펌웨어 설치
|
||||
|
||||
:::info
|
||||
KakuteH7-wing is supported with PX4 master & PX4 v1.16 or newer..
|
||||
KakuteH7-wing is supported in PX4 v1.16 or newer.
|
||||
Prior to that release you will need to manually build and install the firmware.
|
||||
:::
|
||||
|
||||
|
||||
@ -137,7 +137,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | 통신 | 설명 |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
|
||||
|
||||
@ -115,7 +115,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | 통신 | 설명 |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@ -140,7 +140,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | 통신 | 설명 |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Ackermann Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
An _Ackermann rover_ controls its direction by pointing the front wheels in the direction of travel — the [Ackermann steering geometry](https://en.wikipedia.org/wiki/Ackermann_steering_geometry) compensates for the fact that wheels on the inside and outside of the turn move at different rates.
|
||||
This kind of steering is used on most commercial vehicles, including cars, trucks etc.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Differential Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
A differential rover's motion is controlled using a differential drive mechanism, where the left and right wheel speeds are adjusted independently to achieve the desired forward speed and yaw rate.
|
||||
Forward motion is achieved by driving both wheels at the same speed in the same direction.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Mecanum Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
A Mecanum rover is a type of mobile robot that uses Mecanum wheels to achieve omnidirectional movement. These wheels are unique because they have rollers mounted at a 45-degree angle around their circumference, allowing the rover to move not only forward and backward but also side-to-side and diagonally without needing to rotate first.
|
||||
Each wheel is driven by its own motor, and by controlling the speed and direction of each motor, the rover can move in any direction or spin in place.
|
||||
|
||||
89
docs/ko/mavlink/index.md
Normal file
89
docs/ko/mavlink/index.md
Normal file
@ -0,0 +1,89 @@
|
||||
# MAVLink 메시징
|
||||
|
||||
[MAVLink](https://mavlink.io/en/) is a very lightweight messaging protocol that has been designed for the drone ecosystem.
|
||||
|
||||
PX4 uses _MAVLink_ to communicate with ground stations and MAVLink SDKs, such as _QGroundControl_ and [MAVSDK](https://mavsdk.mavlink.io/), and as the integration mechanism for connecting to drone components outside of the flight controller: companion computers, MAVLink enabled cameras, and so on.
|
||||
|
||||
This topic provides a brief overview of fundamental MAVLink concepts, such as messages, commands, and microservices.
|
||||
It also links instructions for how you can add PX4 support for:
|
||||
|
||||
- [Adding Standard Messages](../mavlink/adding_messages.md)
|
||||
- [Streaming MAVLink messages](../mavlink/streaming_messages.md)
|
||||
- [Handling incoming MAVLink messages (and writing to a uORB topic)](../mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](../mavlink/custom_messages.md)
|
||||
- [Protocols/Microservices](../mavlink/protocols.md)
|
||||
|
||||
:::info
|
||||
We do not yet cover _command_ handling and sending, or how to implement your own microservices.
|
||||
:::
|
||||
|
||||
## MAVLink Overview
|
||||
|
||||
MAVLink is a lightweight protocol that was designed for efficiently sending messages over unreliable low-bandwidth radio links.
|
||||
|
||||
_Messages_ are simplest and most "fundamental" definition in MAVLink, consisting of a name (e.g. [ATTITUDE](https://mavlink.io/en/messages/common.html#ATTITUDE)), id, and fields containing relevant data.
|
||||
They are deliberately lightweight, with a constrained size, and no semantics for resending and acknowledgement.
|
||||
Stand-alone messages are commonly used for streaming telemetry or status information, and for sending commands where no acknowledgement is required - such as setpoint commands sent at high rate.
|
||||
|
||||
[Microservices](../mavlink/protocols.md) are "meta protocols" built on top of MAVLink messages.
|
||||
They are used to communicate information that cannot be sent in a single message.
|
||||
|
||||
For example, the [Command Protocol](https://mavlink.io/en/services/command.html) is a service for sending commands that may need acknowledgement and retransmission (quality of service).
|
||||
Specific commands are defined as values of the [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) enumeration, such as the takeoff command [MAV_CMD_NAV_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_TAKEOFF), and include up to 7 numeric "param" values.
|
||||
The protocol sends a command by packaging the parameter values in a `COMMAND_INT` or `COMMAND_LONG` message, and waits for an acknowledgement with a result in a `COMMAND_ACK`.
|
||||
The command is automatically resent a number of times if no acknowledgment is received.
|
||||
Note that [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) definitions are also used to define mission actions, and that not all definitions are supported for use in commands/missions on PX4.
|
||||
|
||||
Others services include the [File Transfer Protocol](https://mavlink.io/en/services/ftp.html), [Camera Protocol](https://mavlink.io/en/services/camera.html), [Parameter Protocol](https://mavlink.io/en/services/parameter.html), and [Mission Protocol](https://mavlink.io/en/services/mission.html).
|
||||
For more information on what PX4 supports see [Microservices](../mavlink/protocols.md).
|
||||
|
||||
MAVLink messages, commands and enumerations are defined in [XML definition files](https://mavlink.io/en/guide/define_xml_element.html).
|
||||
The MAVLink toolchain includes code generators that create programming-language-specific libraries from these definitions for sending and receiving messages.
|
||||
Note that most generated libraries do not create code to implement microservices.
|
||||
|
||||
The MAVLink project standardizes a number of messages, commands, enumerations, and microservices, for exchanging data using the following definition files (note that higher level files _include_ the definitions of the files below them):
|
||||
|
||||
- [development.xml](https://mavlink.io/en/messages/development.html) — Definitions that are proposed to be part of the standard.
|
||||
The definitions move to `common.xml` if accepted following testing.
|
||||
- [common.xml](https://mavlink.io/en/messages/common.html) — A "library" of definitions meeting many common UAV use cases.
|
||||
These are supported by many flight stacks, ground stations, and MAVLink peripherals.
|
||||
Flight stacks that use these definitions are more likely to interoperate.
|
||||
- [standard.xml](https://mavlink.io/en/messages/standard.html) — Definitions that are actually standard.
|
||||
They are present on the vast majority of flight stacks and implemented in the same way.
|
||||
- [minimal.xml](https://mavlink.io/en/messages/minimal.html) — Definitions required by a minimal MAVLink implementation.
|
||||
|
||||
The project also hosts [dialect XML definitions](https://mavlink.io/en/messages/#dialects), which contain MAVLink definitions that are specific to a flight stack or other stakeholder.
|
||||
|
||||
The protocol relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
What this means is that in order to communicate both ends of the communication must use libraries generated from the same XML definition.
|
||||
|
||||
<!--
|
||||
The messages are sent over-the-wire in the "payload" of a [MAVLink packet](https://mavlink.io/en/guide/serialization.html#mavlink2_packet_format).
|
||||
In order to reduce the amount of information that must be sent, the packet does not include the message metadata, such as what fields are in the message and so on.
|
||||
Instead, the fields are serialized in a predefined order based on data size and XML definition order, and MAVLink relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
The shared identity of the message is conveyed by the message id, along with a CRC ("`CRC_EXTRA`") that uniquely identifies the message based on its name and id, and the field names and types.
|
||||
The receiving end of the communication will discard any packet for which the message id and the `CRC_EXTRA` do not match.
|
||||
-->
|
||||
|
||||
## PX4 and MAVLink
|
||||
|
||||
PX4 releases build `common.xml` MAVLink definitions by default, for the greatest compatibility with MAVLink ground stations, libraries, and external components such as MAVLink cameras.
|
||||
In the `main` branch, these are included from `development.xml` on SITL, and `common.xml` for other boards.
|
||||
|
||||
:::info
|
||||
To be part of a PX4 release, any MAVLink definitions that you use must be in `common.xml` (or included files such as `standard.xml` and `minimal.xml`).
|
||||
During development you can use definitions in `development.xml`.
|
||||
You will need to work with the [MAVLink team](https://mavlink.io/en/contributing/contributing.html) to define and contribute these definitions.
|
||||
:::
|
||||
|
||||
PX4 includes the [mavlink/mavlink](https://github.com/mavlink/mavlink) repo as a submodule under [/src/modules/mavlink](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/mavlink).
|
||||
This contains XML definition files in [/mavlink/messages/1.0/](https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/).
|
||||
|
||||
The build toolchain generates the MAVLink 2 C header files at build time.
|
||||
The XML file for which headers files are generated may be defined in the [PX4 kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) on a per-board basis, using the variable `CONFIG_MAVLINK_DIALECT`:
|
||||
|
||||
- For SITL `CONFIG_MAVLINK_DIALECT` is set to `development` in [boards/px4/sitl/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/sitl/default.px4board#L36).
|
||||
You can change this to any other definition file, but the file must include `common.xml`.
|
||||
- For other boards `CONFIG_MAVLINK_DIALECT` is not set by default, and PX4 builds the definitions in `common.xml` (these are build into the [mavlink module](../modules/modules_communication.md#mavlink) by default — search for `menuconfig MAVLINK_DIALECT` in [src/modules/mavlink/Kconfig](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/Kconfig#L10)).
|
||||
|
||||
The files are generated into the build directory: `/build/<build target>/mavlink/`.
|
||||
51
docs/ko/mavlink/protocols.md
Normal file
51
docs/ko/mavlink/protocols.md
Normal file
@ -0,0 +1,51 @@
|
||||
# MAVLink Microservices (Protocols)
|
||||
|
||||
MAVLink "microservices" are a protocols that use multiple messages exchanged between components to communicate more complicated information.
|
||||
For example, the [Command Protocol](https://mavlink.io/en/services/command.html) provides an efficient mechanism for packaging a command in a (particular) message and receiving acknowledgement of the command in another message.
|
||||
|
||||
MAVLink microservices are documented the [MAVLink Guide](https://mavlink.io/en/services/) (this is not exhaustive: not all messages are grouped into protocols and not all protocols are documented).
|
||||
|
||||
This section lists the services known to be supported/not supported by PX4 in this version.
|
||||
|
||||
## Supported Microservices
|
||||
|
||||
These services are known to be supported in some form:
|
||||
|
||||
- [Battery Protocol](https://mavlink.io/en/services/battery.html)
|
||||
- [BATTERY_STATUS](https://mavlink.io/en/messages/common.html#BATTERY_STATUS) and [BATTERY_INFO](https://mavlink.io/en/messages/common.html#BATTERY_STATUS) are streamed.
|
||||
- Camera Protocols
|
||||
- [Camera Protocol v2](https://mavlink.io/en/services/camera.html)
|
||||
- [Camera Definition](https://mavlink.io/en/services/camera_def.html)
|
||||
- [Command Protocol](https://mavlink.io/en/services/command.html)
|
||||
- [Component Metadata Protocol](https://mavlink.io/en/services/component_information.html)
|
||||
- [Events Interface](https://mavlink.io/en/services/events.html)
|
||||
- [File Transfer Protocol (FTP)](https://mavlink.io/en/services/ftp.html)
|
||||
- Gimbal Protocols
|
||||
- [Gimbal Protocol v2](https://mavlink.io/en/services/gimbal_v2.html)
|
||||
- Can be enabled by [Gimbal Configuration](../advanced/gimbal_control.md#mavlink-gimbal-mnt-mode-out-mavlink)
|
||||
- PX4 an act as a MAVLink Gimbal for one FC-connected Gimbal
|
||||
- [Heartbeat/Connection Protocol](https://mavlink.io/en/services/heartbeat.html)
|
||||
- [High Latency Protocol](https://mavlink.io/en/services/high_latency.html) — PX4 streams [HIGH_LATENCY2](https://mavlink.io/en/messages/common.html#HIGH_LATENCY2)
|
||||
- [Image Transmission Protocol](https://mavlink.io/en/services/image_transmission.html)
|
||||
- [Landing Target Protocol](https://mavlink.io/en/services/landing_target.html)
|
||||
- [Manual Control (Joystick) Protocol](https://mavlink.io/en/services/manual_control.html)
|
||||
- [MAVLink Id Assignment (sysid, compid)](https://mavlink.io/en/services/mavlink_id_assignment.html)
|
||||
- [Mission Protocol](https://mavlink.io/en/services/mission.html)
|
||||
- [Offboard Control Protocol](https://mavlink.io/en/services/offboard_control.html)
|
||||
- [Remote ID](../peripherals/remote_id.md) ([Open Drone ID Protocol](https://mavlink.io/en/services/opendroneid.html))
|
||||
- [Parameter Protocol](https://mavlink.io/en/services/parameter.html)
|
||||
- [Parameter Protocol Extended](https://mavlink.io/en/services/parameter_ext.html) — Allows setting string parameters. Used for setting string parameters set in camera definition files.
|
||||
- [Payload Protocol](https://mavlink.io/en/services/payload.html)
|
||||
- [Ping Protocol](https://mavlink.io/en/services/ping.html)
|
||||
- [Standard Modes Protocol](../mavlink/standard_modes.md)
|
||||
- [Terrain Protocol](https://mavlink.io/en/services/terrain.html)
|
||||
- [Time Synchronization](https://mavlink.io/en/services/timesync.html)
|
||||
- [Traffic Management (UTM/ADS-B)](https://mavlink.io/en/services/traffic_management.html)
|
||||
- [Arm Authorization Protocol](https://mavlink.io/en/services/arm_authorization.html)
|
||||
|
||||
## 미지원
|
||||
|
||||
These services are not supported/used by PX4:
|
||||
|
||||
- [Illuminator Protocol](https://mavlink.io/en/services/illuminator.html)
|
||||
- [Tunnel Protocol](https://mavlink.io/en/services/tunnel.html)
|
||||
@ -1,87 +1 @@
|
||||
# MAVLink 메시징
|
||||
|
||||
[MAVLink](https://mavlink.io/en/) is a very lightweight messaging protocol that has been designed for the drone ecosystem.
|
||||
|
||||
PX4 uses _MAVLink_ to communicate with ground stations and MAVLink SDKs, such as _QGroundControl_ and [MAVSDK](https://mavsdk.mavlink.io/), and as the integration mechanism for connecting to drone components outside of the flight controller: companion computers, MAVLink enabled cameras, and so on.
|
||||
|
||||
This topic provides a brief overview of fundamental MAVLink concepts, such as messages, commands, and microservices.
|
||||
It also links instructions for how you can add PX4 support for:
|
||||
|
||||
- [Adding Standard Messages](../mavlink/adding_messages.md)
|
||||
- [Streaming MAVLink messages](../mavlink/streaming_messages.md)
|
||||
- [Handling incoming MAVLink messages (and writing to a uORB topic)](../mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](../mavlink/custom_messages.md)
|
||||
|
||||
:::info
|
||||
We do not yet cover _command_ handling and sending, or how to implement your own microservices.
|
||||
:::
|
||||
|
||||
## MAVLink Overview
|
||||
|
||||
MAVLink is a lightweight protocol that was designed for efficiently sending messages over unreliable low-bandwidth radio links.
|
||||
|
||||
_Messages_ are simplest and most "fundamental" definition in MAVLink, consisting of a name (e.g. [ATTITUDE](https://mavlink.io/en/messages/common.html#ATTITUDE)), id, and fields containing relevant data.
|
||||
They are deliberately lightweight, with a constrained size, and no semantics for resending and acknowledgement.
|
||||
Stand-alone messages are commonly used for streaming telemetry or status information, and for sending commands where no acknowledgement is required - such as setpoint commands sent at high rate.
|
||||
|
||||
The [Command Protocol](https://mavlink.io/en/services/command.html) is a higher level protocol for sending commands that may need acknowledgement.
|
||||
Specific commands are defined as values of the [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) enumeration, such as the takeoff command [MAV_CMD_NAV_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_TAKEOFF), and include up to 7 numeric "param" values.
|
||||
The protocol sends a command by packaging the parameter values in a `COMMAND_INT` or `COMMAND_LONG` message, and waits for an acknowledgement with a result in a `COMMAND_ACK`.
|
||||
The command is resent automatically if no acknowledgment is received.
|
||||
Note that [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) definitions are also used to define mission actions, and that not all definitions are supported for use in commands/missions on PX4.
|
||||
|
||||
[Microservices](https://mavlink.io/en/services/) are other higher level protocols built on top of MAVLink messages.
|
||||
They are used to communicate information that cannot be sent in a single message, and to deliver features such as reliable communication.
|
||||
The command protocol described above is one such service.
|
||||
Others include the [File Transfer Protocol](https://mavlink.io/en/services/ftp.html), [Camera Protocol](https://mavlink.io/en/services/camera.html) and [Mission Protocol](https://mavlink.io/en/services/mission.html).
|
||||
|
||||
MAVLink messages, commands and enumerations are defined in [XML definition files](https://mavlink.io/en/guide/define_xml_element.html).
|
||||
The MAVLink toolchain includes code generators that create programming-language-specific libraries from these definitions for sending and receiving messages.
|
||||
Note that most generated libraries do not create code to implement microservices.
|
||||
|
||||
The MAVLink project standardizes a number of messages, commands, enumerations, and microservices, for exchanging data using the following definition files (note that higher level files _include_ the definitions of the files below them):
|
||||
|
||||
- [development.xml](https://mavlink.io/en/messages/development.html) — Definitions that are proposed to be part of the standard.
|
||||
The definitions move to `common.xml` if accepted following testing.
|
||||
- [common.xml](https://mavlink.io/en/messages/common.html) — A "library" of definitions meeting many common UAV use cases.
|
||||
These are supported by many flight stacks, ground stations, and MAVLink peripherals.
|
||||
Flight stacks that use these definitions are more likely to interoperate.
|
||||
- [standard.xml](https://mavlink.io/en/messages/standard.html) — Definitions that are actually standard.
|
||||
They are present on the vast majority of flight stacks and implemented in the same way.
|
||||
- [minimal.xml](https://mavlink.io/en/messages/minimal.html) — Definitions required by a minimal MAVLink implementation.
|
||||
|
||||
The project also hosts [dialect XML definitions](https://mavlink.io/en/messages/#dialects), which contain MAVLink definitions that are specific to a flight stack or other stakeholder.
|
||||
|
||||
The protocol relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
What this means is that in order to communicate both ends of the communication must use libraries generated from the same XML definition.
|
||||
|
||||
<!--
|
||||
The messages are sent over-the-wire in the "payload" of a [MAVLink packet](https://mavlink.io/en/guide/serialization.html#mavlink2_packet_format).
|
||||
In order to reduce the amount of information that must be sent, the packet does not include the message metadata, such as what fields are in the message and so on.
|
||||
Instead, the fields are serialized in a predefined order based on data size and XML definition order, and MAVLink relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
The shared identity of the message is conveyed by the message id, along with a CRC ("`CRC_EXTRA`") that uniquely identifies the message based on its name and id, and the field names and types.
|
||||
The receiving end of the communication will discard any packet for which the message id and the `CRC_EXTRA` do not match.
|
||||
-->
|
||||
|
||||
## PX4 and MAVLink
|
||||
|
||||
PX4 releases build `common.xml` MAVLink definitions by default, for the greatest compatibility with MAVLink ground stations, libraries, and external components such as MAVLink cameras.
|
||||
In the `main` branch, these are included from `development.xml` on SITL, and `common.xml` for other boards.
|
||||
|
||||
:::info
|
||||
To be part of a PX4 release, any MAVLink definitions that you use must be in `common.xml` (or included files such as `standard.xml` and `minimal.xml`).
|
||||
During development you can use definitions in `development.xml`.
|
||||
You will need to work with the [MAVLink team](https://mavlink.io/en/contributing/contributing.html) to define and contribute these definitions.
|
||||
:::
|
||||
|
||||
PX4 includes the [mavlink/mavlink](https://github.com/mavlink/mavlink) repo as a submodule under [/src/modules/mavlink](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/mavlink).
|
||||
This contains XML definition files in [/mavlink/messages/1.0/](https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/).
|
||||
|
||||
The build toolchain generates the MAVLink 2 C header files at build time.
|
||||
The XML file for which headers files are generated may be defined in the [PX4 kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) on a per-board basis, using the variable `CONFIG_MAVLINK_DIALECT`:
|
||||
|
||||
- For SITL `CONFIG_MAVLINK_DIALECT` is set to `development` in [boards/px4/sitl/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/sitl/default.px4board#L36).
|
||||
You can change this to any other definition file, but the file must include `common.xml`.
|
||||
- For other boards `CONFIG_MAVLINK_DIALECT` is not set by default, and PX4 builds the definitions in `common.xml` (these are build into the [mavlink module](../modules/modules_communication.md#mavlink) by default — search for `menuconfig MAVLINK_DIALECT` in [src/modules/mavlink/Kconfig](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/Kconfig#L10)).
|
||||
|
||||
The files are generated into the build directory: `/build/<build target>/mavlink/`.
|
||||
<Redirect to="../mavlink/" />
|
||||
|
||||
@ -116,9 +116,9 @@ As there are external tools using uORB messages from log files, such as [Flight
|
||||
|
||||
## Message Versioning
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" />
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
Optional message versioning was introduced in the `main` branch (planned for PX4 v1.16+) to make it easier to maintain compatibility between PX4 and ROS 2 versions compiled against different message definitions.
|
||||
Optional message versioning was introduced PX4 v1.16 to make it easier to maintain compatibility between PX4 and ROS 2 versions compiled against different message definitions.
|
||||
Versioned messages are designed to remain more stable over time compared to their non-versioned counterparts, as they are intended to be used across multiple releases of PX4 and external systems, ensuring greater compatibility over longer periods.
|
||||
|
||||
Versioned messages include an additional field `uint32 MESSAGE_VERSION = x`, where `x` corresponds to the current version of the message.
|
||||
|
||||
@ -430,16 +430,17 @@ publications:
|
||||
|
||||
- topic: /fmu/out/collision_constraints
|
||||
type: px4_msgs::msg::CollisionConstraints
|
||||
rate_limit: 50. # Limit max publication rate to 50 Hz
|
||||
|
||||
...
|
||||
|
||||
- topic: /fmu/out/vehicle_odometry
|
||||
type: px4_msgs::msg::VehicleOdometry
|
||||
rate_limit: 150.
|
||||
# Use default publication rate limit of 100 Hz
|
||||
|
||||
- topic: /fmu/out/vehicle_status
|
||||
type: px4_msgs::msg::VehicleStatus
|
||||
rate_limit: 50.
|
||||
rate_limit: 5.
|
||||
|
||||
- topic: /fmu/out/vehicle_trajectory_waypoint_desired
|
||||
type: px4_msgs::msg::VehicleTrajectoryWaypoint
|
||||
|
||||
221
docs/ko/releases/1.16.md
Normal file
221
docs/ko/releases/1.16.md
Normal file
@ -0,0 +1,221 @@
|
||||
# PX4-Autopilot v1.16.0 Release Notes
|
||||
|
||||
<Badge type="info" text="Candidate Release" />
|
||||
|
||||
<script setup>
|
||||
import { useData } from 'vitepress'
|
||||
const { site } = useData();
|
||||
</script>
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page is on a release branch, and hence possibly out of date. <a href="https://docs.px4.io/main/en/releases/main.html">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
This document covers all changes in PX4 v1.16.0 since the previous stable release ([PX4 v1.15.0](../releases/1.15.md)).
|
||||
|
||||
:::info
|
||||
These notes include only changes merged in 2023 and later — commits before 2023 are not listed.
|
||||
:::
|
||||
|
||||
## Read Before Upgrading
|
||||
|
||||
Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
## Major Changes
|
||||
|
||||
- **Rover support rework**
|
||||
- New dedicated firmware build for rovers (airframe IDs 50000–52000)
|
||||
- Separate modules for Ackermann, differential and mecanum rovers, each with manual, acro, stabilized, position and auto modes
|
||||
- Shared pure-pursuit guidance library for all rover modules
|
||||
- Legacy rover position control module deprecated in favor of the new modules
|
||||
|
||||
## Upgrade Guide
|
||||
|
||||
- [PX4-Autopilot#24648](https://github.com/PX4/PX4-Autopilot/pull/24648): Added setting default for EKF2_EV_CTRL to 15 for VOXL 2 boards
|
||||
- [PX4-Autopilot#22517](https://github.com/PX4/PX4-Autopilot/pull/22517): Change default ethernet IP
|
||||
- [PX4-Autopilot#24602](https://github.com/PX4/PX4-Autopilot/pull/24602): remove serial port default from sf45 module
|
||||
|
||||
## Other changes
|
||||
|
||||
### Hardware Support
|
||||
|
||||
- **[New Hardware]** [PX4-Autopilot#23830](https://github.com/PX4/PX4-Autopilot/pull/23830): Boards: ARK FPV FC
|
||||
- **[New Hardware]** [PX4-Autopilot#23414](https://github.com/PX4/PX4-Autopilot/pull/23414): board: add cuav 7-nano
|
||||
- **[New Hardware]** [PX4-Autopilot#24769](https://github.com/PX4/PX4-Autopilot/pull/24769): add new board corvon743v1
|
||||
- **[New Hardware]** [PX4-Autopilot#24018](https://github.com/PX4/PX4-Autopilot/pull/24018): boards: bluerobotics: navigator: Add initial support
|
||||
- **[New Hardware]** [PX4-Autopilot#24147](https://github.com/PX4/PX4-Autopilot/pull/24147): boards: add new board micoair743-v2
|
||||
- **[New Hardware]** [PX4-Autopilot#23218](https://github.com/PX4/PX4-Autopilot/pull/23218): boards: add new board micoair h743
|
||||
- **[New Hardware]** [PX4-Autopilot#24512](https://github.com/PX4/PX4-Autopilot/pull/24512): boards: Add FMUv6s target
|
||||
- **[New Hardware]** [PX4-Autopilot#23927](https://github.com/PX4/PX4-Autopilot/pull/23927): manifest: Add Skynode S baseboard
|
||||
- **[New Hardware]** [PX4-Autopilot#23257](https://github.com/PX4/PX4-Autopilot/pull/23257): Add Tropic VMU board support (Baseboard for Teensy 4.1)
|
||||
- **[New Hardware]** [PX4-Autopilot#23697](https://github.com/PX4/PX4-Autopilot/pull/23697): boards: add new board X-MAV AP-H743v2
|
||||
- **[New Hardware]** [PX4-Autopilot#23551](https://github.com/PX4/PX4-Autopilot/pull/23551): 3DR boards: Support for 3DR Control Zero H7 OEM Rev G
|
||||
- **[New Hardware]** [PX4-Autopilot#23623](https://github.com/PX4/PX4-Autopilot/pull/23623): new board support ZeroOne x6
|
||||
|
||||
### 공통
|
||||
|
||||
- [Optical flow scaling factor - SENS_FLOW_SCALE](../sensor/optical_flow.md#scale-factor). ([PX4-Autopilot#23936](https://github.com/PX4/PX4-Autopilot/pull/23936)).
|
||||
|
||||
- [PX4-Autopilot#22813](https://github.com/PX4/PX4-Autopilot/pull/22813): Reintroduce optional parameter versioning mechanism for airframe maintainers
|
||||
|
||||
- [Battery level estimation improvements](../config/battery.md). ([PX4-Autopilot#23205](https://github.com/PX4/PX4-Autopilot/pull/23205)).
|
||||
- [Voltage-based estimation with load compensation](../config/battery.md#voltage-based-estimation-with-load-compensation) now uses a real-time estimate of the internal resistance of the battery to compensate voltage drops under load (with increased current), providing a better capacity estimate than with the raw measured voltage.
|
||||
- Thrust-based load compensation has been removed (along with the `BATn_V_LOAD_DROP` parameters, where `n` is the battery number).
|
||||
|
||||
- The [Position (GNSS) loss failsafe](../config/safety.md#position-gnss-loss-failsafe) configurable delay (`COM_POS_FS_DELAY`) has been removed.
|
||||
The failsafe will now trigger 1 second after position has been lost. ([PX4-Autopilot#24063](https://github.com/PX4/PX4-Autopilot/pull/24063)).
|
||||
|
||||
- [Log Encryption](../dev_log/log_encryption.md) now generates an encrypted log that contains the public-key-encrypted symmetric key that can be used to decrypt it, instead of putting the key into a separate file.
|
||||
This makes log decryption much easier, as there is no need to download or identify a separate key file.
|
||||
([PX4-Autopilot#24024](https://github.com/PX4/PX4-Autopilot/pull/24024)).
|
||||
|
||||
- The generic mission command timeout [MIS_COMMAND_TOUT](../advanced_config/parameter_reference.md#MIS_COMMAND_TOUT) parameter replaces the delivery-specific `MIS_PD_TO` parameter.
|
||||
Mission commands that may take some time to complete, such as those for controlling gimbals, winches, and grippers, will progress to the next item when either feedback is received or the timeout expires.
|
||||
This is often used to provide a minimum delay for hardware that does not provide completion feedback, so that it can reach the commanded state before the mission progresses.
|
||||
([PX4-Autopilot#23960](https://github.com/PX4/PX4-Autopilot/pull/23960)).
|
||||
|
||||
- **[uORB]** Introduce a [version field](../middleware/uorb.md#message-versioning) for a subset of uORB messages ([PX4-Autopilot#23850](https://github.com/PX4/PX4-Autopilot/pull/23850))
|
||||
|
||||
- [Compass calibration](../config/compass.md) disables internal compasses if an external compass is available.
|
||||
This typically reduces false warnings due to magnetometer inconsistencies.
|
||||
([PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316)).
|
||||
|
||||
### 제어
|
||||
|
||||
- [PX4-Autopilot#23863](https://github.com/PX4/PX4-Autopilot/pull/23863): [Sponsored by ARK] Bidirectional DShot
|
||||
|
||||
- [PX4-Autopilot#24196](https://github.com/PX4/PX4-Autopilot/pull/24196): Make control allocation and actuator effectiveness a non-module-specific library
|
||||
|
||||
- [PX4-Autopilot#24221](https://github.com/PX4/PX4-Autopilot/pull/24221): Spacecraft Build and Bare Control Allocator
|
||||
|
||||
- Configurable multicopter orbit-mode yaw via `MC_ORBIT_YAW_MOD` ([PX4-Autopilot#23358](https://github.com/PX4/PX4-Autopilot/pull/23358))
|
||||
|
||||
- Collision prevention now works in manual (acceleration-based) flight mode (`MPC_POS_MODE`) ([PX4-Autopilot#23507](https://github.com/PX4/PX4-Autopilot/pull/23507))
|
||||
|
||||
### Estimation
|
||||
|
||||
- [PX4-Autopilot#23854](https://github.com/PX4/PX4-Autopilot/pull/23854): EKF2: ellipsoidal earth navigation
|
||||
|
||||
- [PX4-Autopilot#23263](https://github.com/PX4/PX4-Autopilot/pull/23263): EKF2: Terrain state
|
||||
|
||||
- [PX4-Autopilot#23185](https://github.com/PX4/PX4-Autopilot/pull/23185): ekf2: add mag type init
|
||||
|
||||
- [PX4-Autopilot#23436](https://github.com/PX4/PX4-Autopilot/pull/23436): ekf2: Optical flow enabled by default
|
||||
|
||||
- Position-loss failsafe delay removed; triggers 1 s after loss (see Common)
|
||||
|
||||
### 센서
|
||||
|
||||
- [PX4-Autopilot#23656](https://github.com/PX4/PX4-Autopilot/pull/23656): Implemented AUAV absolute/differential pressure sensor support
|
||||
|
||||
- [PX4-Autopilot#23639](https://github.com/PX4/PX4-Autopilot/pull/23639): Implemented temperature sensor support for INA228 / INA238
|
||||
|
||||
- [PX4-Autopilot#22744](https://github.com/PX4/PX4-Autopilot/pull/22744): Add Ublox ZED-F9P-15B
|
||||
|
||||
- [PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316): Mag cal: automatically disable internal mags if external ones are available
|
||||
|
||||
- [PX4-Autopilot#23064](https://github.com/PX4/PX4-Autopilot/pull/23064): BMP581: Add Bosch BMP581 barometer
|
||||
|
||||
- [PX4-Autopilot#22914](https://github.com/PX4/PX4-Autopilot/pull/22914): Murata SCH16T IMU driver
|
||||
|
||||
- [PX4-Autopilot#23023](https://github.com/PX4/PX4-Autopilot/pull/23023): ST IIS2MDC Magnetometer driver
|
||||
|
||||
- [PX4-Autopilot#24121](https://github.com/PX4/PX4-Autopilot/pull/24121): Include distance sensor in dds topics
|
||||
|
||||
- [PX4-Autopilot#23925](https://github.com/PX4/PX4-Autopilot/pull/23925): drivers: magnetometer: mmc5983ma: Add SPI support
|
||||
|
||||
- [PX4-Autopilot#23909](https://github.com/PX4/PX4-Autopilot/pull/23909): drivers/magnetometer/ak09916: Add support to AK09915
|
||||
|
||||
- [PX4-Autopilot#23362](https://github.com/PX4/PX4-Autopilot/pull/23362): Add Bosch BMM350 magnetometer
|
||||
|
||||
- [PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316): Compass calibration now disables internal compass when external unit present, reducing false warnings
|
||||
|
||||
### 시뮬레이션
|
||||
|
||||
- **SIH**:
|
||||
- The SIH on SITL [custom takeoff location](../sim_sih/index.md#set-custom-takeoff-location) in now set using the normal unscaled GPS position values, where previously the value needed to be multiplied by 1E7.
|
||||
([PX4-Autopilot#23363](https://github.com/PX4/PX4-Autopilot/pull/23363)).
|
||||
- SIH now supports the standard VTOL airframe
|
||||
([PX4-Autopilot#24175](https://github.com/PX4/PX4-Autopilot/pull/24175)).
|
||||
- **Gazebo**:
|
||||
- Gazebo Harmonic LTS release replaces Gazebo Garden as the version supported by PX4.
|
||||
The default installer scripts (used for CI) and documentation have been updated.
|
||||
This is required because Garden end-of-life is Nov 2024.
|
||||
([PX4-Autopilot#23603](https://github.com/PX4/PX4-Autopilot/pull/23603))
|
||||
- New vehicle model `x500_lidar_2d` — [x500 Quadrotor with 2D Lidar](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-2d-lidar). ([PX4-Autopilot#22418](https://github.com/PX4/PX4-Autopilot/pull/22418), [PX4-gazebo-models#41](https://github.com/PX4/PX4-gazebo-models/pull/41)).
|
||||
- New vehicle model `x500_lidar_front` — [X500 Quadrotor with 1D LIDAR (Front-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-front-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `x500_lidar_down` — [X500 Quadrotor with 1D LIDAR (Down-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-down-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `r1_rover` — [Aion Robotics R1 Rover](../sim_gazebo_gz/vehicles.md#differential-rover) ([PX4-Autopilot#22402](https://github.com/PX4/PX4-Autopilot/pull/22402) and [PX4-gazebo-models#21](https://github.com/PX4/PX4-gazebo-models/pull/21)).
|
||||
- New vehicle model `rover_ackermann` — [Ackermann Rover](../sim_gazebo_gz/vehicles.md#ackermann-rover) ([PX4-Autopilot#23383](https://github.com/PX4/PX4-Autopilot/pull/23383) and [PX4-gazebo-models#46](https://github.com/PX4/PX4-gazebo-models/pull/46)).
|
||||
- New vehicle model `x500_gimbal` — [Quadrotor(x500) with gimbal (Front-facing) in Gazebo](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-gimbal-front-facing) ([PX4-Autopilot#23382](https://github.com/PX4/PX4-Autopilot/pull/23382) and [PX4-gazebo-models#47](https://github.com/PX4/PX4-gazebo-models/pull/47) and [PX4-gazebo-models#70](https://github.com/PX4/PX4-gazebo-models/pull/70)).
|
||||
- New vehicle model `quadtailsitter` — [Quad Tailsitter VTOL](../sim_gazebo_gz/vehicles.md#quad-tailsitter-vtol) ([PX4-Autopilot#23943](https://github.com/PX4/PX4-Autopilot/pull/23943) and [PX4-gazebo-models#65](https://github.com/PX4/PX4-gazebo-models/pull/65)).
|
||||
- New vehicle model `tiltrotor` — [Tiltrotor VTOL](../sim_gazebo_gz/vehicles.md#tiltrotor-vtol) ([PX4-Autopilot#24028](https://github.com/PX4/PX4-Autopilot/pull/24028) and [PX4-gazebo-models#66](https://github.com/PX4/PX4-gazebo-models/pull/66)).
|
||||
- [Faster than Real-time Simulation](../simulation/index.md#simulation_speed) ([PX4-Autopilot#24421](https://github.com/PX4/PX4-Autopilot/pull/24421), [PX4-Autopilot#23783](https://github.com/PX4/PX4-Autopilot/pull/23783))
|
||||
- [PX4-Autopilot#24471](https://github.com/PX4/PX4-Autopilot/pull/24471): Gazebo: Moving platform
|
||||
|
||||
### uXRCE-DDS / ROS2
|
||||
|
||||
- **[Feature]** [PX4-Autopilot#24113](https://github.com/PX4/PX4-Autopilot/pull/24113): <Badge type="warning" text="Experimental"/> [ROS 2 Message Translation Node](../ros2/px4_ros2_msg_translation_node.md) to translate PX4 messages from one definition version to another dynamically
|
||||
- [PX4-Autopilot#24582](https://github.com/PX4/PX4-Autopilot/pull/24582): dds_topics: add vtol_vehicle_status
|
||||
- [PX4-Autopilot#24583](https://github.com/PX4/PX4-Autopilot/pull/24583): dds_topics: add home_position
|
||||
|
||||
### MAVLink
|
||||
|
||||
- TBD
|
||||
|
||||
### Multi-Rotor
|
||||
|
||||
- [PX4-Autopilot#24173](https://github.com/PX4/PX4-Autopilot/pull/24173): [Multirotor] add yaw torque low pass filter
|
||||
|
||||
- [PX4-Autopilot#23943](https://github.com/PX4/PX4-Autopilot/pull/23943): Add gz model for quadtailsitter
|
||||
|
||||
- [PX4-Autopilot#23358](https://github.com/PX4/PX4-Autopilot/pull/23358): Allow system-default [multicopter orbit mode](../flight_modes_mc/orbit.md) yaw behaviour to be configured, using the parameter [MC_ORBIT_YAW_MOD](../advanced_config/parameter_reference.md#MC_ORBIT_YAW_MOD)
|
||||
|
||||
- [PX4-Autopilot#23507](https://github.com/PX4/PX4-Autopilot/pull/23507): Adapted the [Collision Prevention](../computer_vision/collision_prevention.md) implementation to work in the default manual flight mode (Acceleration Based) [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE).
|
||||
|
||||
### 수직이착륙기(VTOL)
|
||||
|
||||
- TBD
|
||||
|
||||
### Fixed-wing
|
||||
|
||||
- [PX4-Autopilot#24167](https://github.com/PX4/PX4-Autopilot/pull/24167): Fixedwing: fix wheel controller
|
||||
|
||||
- [PX4-Autopilot#23520](https://github.com/PX4/PX4-Autopilot/pull/23520): FixedWing: allow position control without valid global position
|
||||
|
||||
- Improvement: Fixed-wing auto takeoff: enable setting takeoff flaps for hand/catapult launch. [PX4-Autopilot#23460](https://github.com/PX4/PX4-Autopilot/pull/23460)
|
||||
|
||||
### 탐사선
|
||||
|
||||
This release contains a major rework for the rover support in PX4:
|
||||
|
||||
- Complete restructure of the [rover related documentation](../frames_rover/index.md).
|
||||
- New firmware build specifically for [rovers](../frames_rover/index.md#flashing-the-rover-build).
|
||||
- New module dedicated to [Ackermann rovers](../frames_rover/ackermann.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/ackermann.md#manual-mode), [acro mode](../flight_modes_rover/ackermann.md#acro-mode), [position mode](../flight_modes_rover/ackermann.md#position-mode) and [auto modes](../flight_modes_rover/ackermann.md#auto-modes).
|
||||
- New module dedicated to [differential rovers](../frames_rover/differential.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/differential.md#manual-mode), [acro mode](../flight_modes_rover/differential.md#acro-mode), [stabilized mode](../flight_modes_rover/differential.md#stabilized-mode), [position mode](../flight_modes_rover/differential.md#position-mode) and [auto modes](../flight_modes_rover/differential.md#auto-modes).
|
||||
- New module dedicated to [mecanum rovers](../frames_rover/mecanum.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/mecanum.md#manual-mode), [acro mode](../flight_modes_rover/mecanum.md#acro-mode), [stabilized mode](../flight_modes_rover/mecanum.md#stabilized-mode), [position mode](../flight_modes_rover/mecanum.md#position-mode) and [auto modes](../flight_modes_rover/mecanum.md#auto-modes).
|
||||
- Added rover-specific firmware build (`50000–52000`) for Ackermann, differential and mecanum rovers
|
||||
- Restructure of the [rover airframe](../airframes/airframe_reference.md#rover) numbering convention ([PX4-Autopilot#23506](https://github.com/PX4/PX4-Autopilot/pull/23506)).
|
||||
This also introduces several [new rover airframes](../airframes/airframe_reference.md#rover):
|
||||
- Generic Differential Rover `50000`.
|
||||
- Generic Ackermann Rover `51000`.
|
||||
- Axial SCX10 2 Trail Honcho `51001`.
|
||||
- Generic Mecanum Rover `52000`.
|
||||
- Library for the [pure pursuit guidance algorithm](../config_rover/differential.md#pure-pursuit-guidance-logic) that is shared by all the rover modules.
|
||||
- [Simulation](../frames_rover/index.md#simulation) for differential-steering and Ackermann rovers in gazebo (for release notes see `r1_rover` and `rover_ackermann` in [simulation](#simulation)).
|
||||
- Deprecation of the [rover position control](../frames_rover/rover_position_control.md) module: Note that the legacy rover module still exists but has been superseded by the new dedicated modules.
|
||||
|
||||
### Infrastructure
|
||||
|
||||
- [PX4-Autopilot#24011](https://github.com/PX4/PX4-Autopilot/pull/24011): standard_modes: add vehicle-type specific standard modes
|
||||
- [PX4-Autopilot#24020](https://github.com/PX4/PX4-Autopilot/pull/24020): ci: build all upload to releases
|
||||
- [PX4-Autopilot#24002](https://github.com/PX4/PX4-Autopilot/pull/24002): ci: px4-dev container
|
||||
- [PX4-Autopilot#23937](https://github.com/PX4/PX4-Autopilot/pull/23937): ci: workflow for ubuntu 24
|
||||
- [PX4-Autopilot#23869](https://github.com/PX4/PX4-Autopilot/pull/23869): ci: add test for Ubuntu 22.04
|
||||
- [PX4-Autopilot#23574](https://github.com/PX4/PX4-Autopilot/pull/23574): ci: try runs-on Dronecode Infra
|
||||
- [PX4-Autopilot#23550](https://github.com/PX4/PX4-Autopilot/pull/23550): ci: replace build workflows
|
||||
@ -2,7 +2,8 @@
|
||||
|
||||
PX4 릴리스 노트는 각 릴리스의 변경 사항들을 설명합니다.
|
||||
|
||||
- [main](../releases/main.md) (changes since v1.15)
|
||||
- [main](../releases/main.md) (changes since v1.16)
|
||||
- [v1.16](../releases/1.16.md)
|
||||
- [v1.15](../releases/1.15.md)
|
||||
- [v1.14](../releases/1.14.md)
|
||||
- [v1.13](../releases/1.13.md)
|
||||
|
||||
@ -9,15 +9,15 @@ const { site } = useData();
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page is on a release bramch, and hence probably out of date. <a href="https://docs.px4.io/main/en/releases/main.html">See the latest version</a>.</p>
|
||||
<p class="custom-block-title">This page is on a release branch, and hence probably out of date. <a href="https://docs.px4.io/main/en/releases/main.html">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
This contains changes to PX4 `main` branch since the last major release ([PX v1.15](../releases/1.15.md)).
|
||||
This contains changes to PX4 `main` branch since the last major release ([PX v1.16](../releases/1.16.md)).
|
||||
|
||||
:::warning
|
||||
The PX4 v1.15 release is in beta testing, pending release.
|
||||
Update these notes with features that are going to be in `main` but not the PX4 v1.15 release.
|
||||
PX4 v1.16 is in candidate-release testing, pending release.
|
||||
Update these notes with features that are going to be in `main` but not the PX4 v1.16 release.
|
||||
:::
|
||||
|
||||
## Read Before Upgrading
|
||||
@ -40,22 +40,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### 공통
|
||||
|
||||
- [Battery level estimation improvements](../config/battery.md). ([PX4-Autopilot#23205](https://github.com/PX4/PX4-Autopilot/pull/23205)).
|
||||
- [Voltage-based estimation with load compensation](../config/battery.md#voltage-based-estimation-with-load-compensation) now uses a real-time estimate of the internal resistance of the battery to compensate voltage drops under load (with increased current), providing a better capacity estimate than with the raw measured voltage.
|
||||
- Thrust-based load compensation has been removed (along with the `BATn_V_LOAD_DROP` parameters, where `n` is the battery number).
|
||||
- The [Position (GNSS) loss failsafe](../config/safety.md#position-gnss-loss-failsafe) configurable delay (`COM_POS_FS_DELAY`) has been removed.
|
||||
The failsafe will now trigger 1 second after position has been lost. ([PX4-Autopilot#24063](https://github.com/PX4/PX4-Autopilot/pull/24063)).
|
||||
- [Log Encryption](../dev_log/log_encryption.md) now generates an encrypted log that contains the public-key-encrypted symmetric key that can be used to decrypt it, instead of putting the key into a separate file.
|
||||
This makes log decryption much easier, as there is no need to download or identify a separate key file.
|
||||
([PX4-Autopilot#24024](https://github.com/PX4/PX4-Autopilot/pull/24024)).
|
||||
- The generic mission command timeout [MIS_COMMAND_TOUT](../advanced_config/parameter_reference.md#MIS_COMMAND_TOUT) parameter replaces the delivery-specific `MIS_PD_TO` parameter.
|
||||
Mission commands that may take some time to complete, such as those for controlling gimbals, winches, and grippers, will progress to the next item when either feedback is received or the timeout expires.
|
||||
This is often used to provide a minimum delay for hardware that does not provide completion feedback, so that it can reach the commanded state before the mission progresses.
|
||||
([PX4-Autopilot#23960](https://github.com/PX4/PX4-Autopilot/pull/23960)).
|
||||
- **[uORB]** Introduce a [version field](../middleware/uorb.md#message-versioning) for a subset of uORB messages ([PX4-Autopilot#23850](https://github.com/PX4/PX4-Autopilot/pull/23850))
|
||||
- [Compass calibration](../config/compass.md) disables internal compasses if an external compass is available.
|
||||
This typically reduces false warnings due to magnetometer inconsistencies.
|
||||
([PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316)).
|
||||
- TBD
|
||||
|
||||
### 제어
|
||||
|
||||
@ -71,26 +56,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### 시뮬레이션
|
||||
|
||||
- [SIH]:
|
||||
- The SIH on SITL [custom takeoff location](../sim_sih/index.md#set-custom-takeoff-location) in now set using the normal unscaled GPS position values, where previously the value needed to be multiplied by 1E7.
|
||||
([PX4-Autopilot#23363](https://github.com/PX4/PX4-Autopilot/pull/23363)).
|
||||
- SIH now supports the standard VTOL airframe
|
||||
([PX4-Autopilot#24175](https://github.com/PX4/PX4-Autopilot/pull/24175)).
|
||||
- [Gazebo]:
|
||||
- Gazebo Harmonic LTS release replaces Gazebo Garden as the version supported by PX4.
|
||||
The default installer scripts (used for CI) and documentation have been updated.
|
||||
This is required because Garden end-of-life is Nov 2024.
|
||||
([PX4-Autopilot#23603](https://github.com/PX4/PX4-Autopilot/pull/23603))
|
||||
- New vehicle model `x500_lidar_2d` — [x500 Quadrotor with 2D Lidar](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-2d-lidar). ([PX4-Autopilot#22418](https://github.com/PX4/PX4-Autopilot/pull/22418), [PX4-gazebo-models#41](https://github.com/PX4/PX4-gazebo-models/pull/41)).
|
||||
- New vehicle model `x500_lidar_front` — [X500 Quadrotor with 1D LIDAR (Front-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-front-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `x500_lidar_down` — [X500 Quadrotor with 1D LIDAR (Down-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-down-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `r1_rover` — [Aion Robotics R1 Rover](../sim_gazebo_gz/vehicles.md#differential-rover) ([PX4-Autopilot#22402](https://github.com/PX4/PX4-Autopilot/pull/22402) and [PX4-gazebo-models#21](https://github.com/PX4/PX4-gazebo-models/pull/21)).
|
||||
- New vehicle model `rover_ackermann` — [Ackermann Rover](../sim_gazebo_gz/vehicles.md#ackermann-rover) ([PX4-Autopilot#23383](https://github.com/PX4/PX4-Autopilot/pull/23383) and [PX4-gazebo-models#46](https://github.com/PX4/PX4-gazebo-models/pull/46)).
|
||||
- New vehicle model `x500_gimbal` — [Quadrotor(x500) with gimbal (Front-facing) in Gazebo](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-gimbal-front-facing) ([PX4-Autopilot#23382](https://github.com/PX4/PX4-Autopilot/pull/23382) and [PX4-gazebo-models#47](https://github.com/PX4/PX4-gazebo-models/pull/47) and [PX4-gazebo-models#70](https://github.com/PX4/PX4-gazebo-models/pull/70)).
|
||||
- New vehicle model `quadtailsitter` — [Quad Tailsitter VTOL](../sim_gazebo_gz/vehicles.md#quad-tailsitter-vtol) ([PX4-Autopilot#23943](https://github.com/PX4/PX4-Autopilot/pull/23943) and [PX4-gazebo-models#65](https://github.com/PX4/PX4-gazebo-models/pull/65)).
|
||||
- New vehicle model `tiltrotor` — [Tiltrotor VTOL](../sim_gazebo_gz/vehicles.md#tiltrotor-vtol) ([PX4-Autopilot#24028](https://github.com/PX4/PX4-Autopilot/pull/24028) and [PX4-gazebo-models#66](https://github.com/PX4/PX4-gazebo-models/pull/66)).
|
||||
- [Faster than Real-time Simulation](../simulation/index.md#simulation_speed) ([PX4-Autopilot#24421](https://github.com/PX4/PX4-Autopilot/pull/24421), [PX4-Autopilot#23783](https://github.com/PX4/PX4-Autopilot/pull/23783))
|
||||
- [Moving platform simulation](../sim_gazebo_gz/worlds#moving-platform) ([PX4-Autopilot#24471](https://github.com/PX4/PX4-Autopilot/pull/24471))
|
||||
- TBD
|
||||
|
||||
### Ethernet
|
||||
|
||||
@ -98,7 +64,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### uXRCE-DDS / ROS2
|
||||
|
||||
- **[Feature]** <Badge type="warning" text="Experimental"/> [ROS 2 Message Translation Node](../ros2/px4_ros2_msg_translation_node.md) to translate PX4 messages from one definition version to another dynamically ([PX4-Autopilot#24113](https://github.com/PX4/PX4-Autopilot/pull/24113))
|
||||
- [PX4 ROS 2 Interface Library](../ros2/px4_ros2_control_interface.md) support for [Fixed Wing lateral/longitudinal setpoint](../ros2/px4_ros2_control_interface.md#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype) (`FwLateralLongitudinalSetpointType`) and [VTOL transitions](../ros2/px4_ros2_control_interface.md#controlling-a-vtol). ([PX4-Autopilot#24056](https://github.com/PX4/PX4-Autopilot/pull/24056)).
|
||||
|
||||
### MAVLink
|
||||
|
||||
@ -106,8 +72,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### Multi-Rotor
|
||||
|
||||
- Allow system-default [multicopter orbit mode](../flight_modes_mc/orbit.md) yaw behaviour to be configured, using the parameter [MC_ORBIT_YAW_MOD](../advanced_config/parameter_reference.md#MC_ORBIT_YAW_MOD) ([PX4-Autopilot#23358](https://github.com/PX4/PX4-Autopilot/pull/23358))
|
||||
- Adapted the [Collision Prevention](../computer_vision/collision_prevention.md) implementation to work in the default manual flight mode (Acceleration Based) [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE). ([PX4-Autopilot#23507](https://github.com/PX4/PX4-Autopilot/pull/23507)
|
||||
- TBD
|
||||
|
||||
### 수직이착륙기(VTOL)
|
||||
|
||||
@ -115,29 +80,11 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### Fixed-wing
|
||||
|
||||
- Improvement: Fixed-wing auto takeoff: enable setting takeoff flaps for hand/catapult launch. [PX4-Autopilot#23460](https://github.com/PX4/PX4-Autopilot/pull/23460)
|
||||
- TBD
|
||||
|
||||
### 탐사선
|
||||
|
||||
This release contains a major rework for the rover support in PX4:
|
||||
|
||||
- Complete restructure of the [rover related documentation](../frames_rover/index.md).
|
||||
- New firmware build specifically for [rovers](../frames_rover/index.md#flashing-the-rover-build).
|
||||
- New module dedicated to [Ackermann rovers](../frames_rover/ackermann.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/ackermann.md#manual-mode), [acro mode](../flight_modes_rover/ackermann.md#acro-mode), [position mode](../flight_modes_rover/ackermann.md#position-mode) and [auto modes](../flight_modes_rover/ackermann.md#auto-modes).
|
||||
- New module dedicated to [differential rovers](../frames_rover/differential.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/differential.md#manual-mode), [acro mode](../flight_modes_rover/differential.md#acro-mode), [stabilized mode](../flight_modes_rover/differential.md#stabilized-mode), [position mode](../flight_modes_rover/differential.md#position-mode) and [auto modes](../flight_modes_rover/differential.md#auto-modes).
|
||||
- New module dedicated to [mecanum rovers](../frames_rover/mecanum.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/mecanum.md#manual-mode), [acro mode](../flight_modes_rover/mecanum.md#acro-mode), [stabilized mode](../flight_modes_rover/mecanum.md#stabilized-mode), [position mode](../flight_modes_rover/mecanum.md#position-mode) and [auto modes](../flight_modes_rover/mecanum.md#auto-modes).
|
||||
- Restructure of the [rover airframe](../airframes/airframe_reference.md#rover) numbering convention ([PX4-Autopilot#23506](https://github.com/PX4/PX4-Autopilot/pull/23506)).
|
||||
This also introduces several [new rover airframes](../airframes/airframe_reference.md#rover):
|
||||
- Generic Differential Rover `50000`.
|
||||
- Generic Ackermann Rover `51000`.
|
||||
- Axial SCX10 2 Trail Honcho `51001`.
|
||||
- Generic Mecanum Rover `52000`.
|
||||
- Library for the [pure pursuit guidance algorithm](../config_rover/differential.md#pure-pursuit-guidance-logic) that is shared by all the rover modules.
|
||||
- [Simulation](../frames_rover/index.md#simulation) for differential-steering and Ackermann rovers in gazebo (for release notes see `r1_rover` and `rover_ackermann` in [simulation](#simulation)).
|
||||
- Deprecation of the [rover position control](../frames_rover/rover_position_control.md) module: Note that the legacy rover module still exists but has been superseded by the new dedicated modules.
|
||||
- TBD
|
||||
|
||||
### ROS 2
|
||||
|
||||
|
||||
@ -345,7 +345,7 @@ The used types also define the compatibility with different vehicle types.
|
||||
The following sections provide a list of supported setpoint types:
|
||||
|
||||
- [GotoSetpointType](#go-to-setpoint-gotosetpointtype): Smooth position and (optionally) heading control
|
||||
- [FwLateralLongitudinalSetpointType](#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype): Direct control of lateral and longitudinal fixed wing dynamics
|
||||
- [FwLateralLongitudinalSetpointType](#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype): <Badge type="tip" text="main (planned for: PX4 v1.17)" /> Direct control of lateral and longitudinal fixed wing dynamics
|
||||
- [DirectActuatorsSetpointType](#direct-actuator-control-setpoint-directactuatorssetpointtype): Direct control of motors and flight surface servo setpoints
|
||||
|
||||
:::tip
|
||||
@ -407,7 +407,7 @@ _goto_setpoint->update(
|
||||
|
||||
#### Fixed-Wing Lateral and Longitudinal Setpoint (FwLateralLongitudinalSetpointType)
|
||||
|
||||
<Badge type="warning" text="Fixed wing only" />
|
||||
<Badge type="warning" text="Fixed wing only" /> <Badge type="tip" text="main (planned for: PX4 v1.17)" />
|
||||
|
||||
:::info
|
||||
This setpoint type is supported for fixed-wing vehicles and for VTOLs in fixed-wing mode.
|
||||
@ -549,7 +549,7 @@ If you want to control an actuator that does not control the vehicle's motion, b
|
||||
|
||||
### Controlling a VTOL
|
||||
|
||||
<Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
To control a VTOL in an external flight mode, ensure you're returning the correct setpoint type based on the current flight configuration:
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# PX4 ROS 2 Message Translation Node
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
The message translation node allows ROS 2 applications that were compiled against different versions of the PX4 messages to interwork with newer versions of PX4, and vice versa, without having to change either the application or the PX4 side.
|
||||
|
||||
@ -207,7 +207,7 @@ Message translations can be either _direct_ or _generic_.
|
||||
|
||||
### File Structure
|
||||
|
||||
Starting from PX4 v1.16 (main), the PX4-Autopilot `msg/` and `srv/` directories are structured as follows:
|
||||
Starting from PX4 v1.16, the PX4-Autopilot `msg/` and `srv/` directories are structured as follows:
|
||||
|
||||
```
|
||||
PX4-Autopilot
|
||||
|
||||
@ -34,7 +34,7 @@ The generator uses the uORB message definitions in the source tree: [PX4-Autopil
|
||||
ROS 2 applications need to be built in a workspace that has the _same_ message definitions that were used to create the uXRCE-DDS client module in the PX4 Firmware.
|
||||
You can include these by cloning the interface package [PX4/px4_msgs](https://github.com/PX4/px4_msgs) into your ROS 2 workspace (branches in the repo correspond to the messages for different PX4 releases).
|
||||
|
||||
Starting from PX4 v1.16 (main) in which [message versioning](../middleware/uorb.md#message-versioning) was introduced, ROS2 applications may use a different version of message definitions than those used to build PX4.
|
||||
Starting from PX4 v1.16, in which [message versioning](../middleware/uorb.md#message-versioning) was introduced, ROS2 applications may use a different version of message definitions than those used to build PX4.
|
||||
This requires the [ROS 2 Message Translation Node](../ros2/px4_ros2_msg_translation_node.md) to be running to ensure that messages can be converted and exchanged correctly.
|
||||
|
||||
Note that the micro XRCE-DDS _agent_ itself has no dependency on client-side code.
|
||||
@ -378,7 +378,7 @@ accelerometer_integral_dt: 4739
|
||||
|
||||
#### (Optional) Starting the Translation Node
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="tip" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
This example is built with PX4 and ROS2 versions that use the same message definitions.
|
||||
If you were to use incompatible [message versions](../middleware/uorb.md#message-versioning) you would need to install and run the [Message Translation Node](./px4_ros2_msg_translation_node.md) as well, before running the example:
|
||||
|
||||
@ -75,7 +75,7 @@ World with walls that is designed for testing [collision prevention](../computer
|
||||
|
||||
## Moving Platform
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" />
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
[Empty world](#default) with the addition of a flat moving platform, to simulate drone operations from moving vehicles like ships or trucks. The platform is controlled by a plugin which is included in the world. The platform is at a height of 2m, so place the vehicle on it with:
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ Operating in the 2.4GHz frequency band, it allows unrestricted global use withou
|
||||
|
||||
- **Frequency Band:** 2.4GHz
|
||||
- **Speed:** Up to 11 Mbps (adjustable)
|
||||
- **Range:** Up to 500 meters (varies upon environments)
|
||||
- **Range:** Up to 1000 meters (varies upon environments)
|
||||
- **Payload Capacity:** Up to 1024 bytes
|
||||
|
||||
### Network Schemes
|
||||
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -725,12 +725,13 @@
|
||||
- [AirspeedValidatedV0](msg_docs/AirspeedValidatedV0.md)
|
||||
- [VehicleAttitudeSetpointV0](msg_docs/VehicleAttitudeSetpointV0.md)
|
||||
- [VehicleStatusV0](msg_docs/VehicleStatusV0.md)
|
||||
- [Повідомлення MAVLink](middleware/mavlink.md)
|
||||
- [MAVLink Messaging](mavlink/index.md)
|
||||
- [Adding Messages](mavlink/adding_messages.md)
|
||||
- [Streaming Messages](mavlink/streaming_messages.md)
|
||||
- [Receiving Messages](mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](mavlink/custom_messages.md)
|
||||
- [Standard Modes Protocol](mavlink/standard_modes.md)
|
||||
- [Protocols/Microservices](mavlink/protocols.md)
|
||||
- [Standard Modes Protocol](mavlink/standard_modes.md)
|
||||
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](middleware/uxrce_dds.md)
|
||||
- [Модулі & Команди](modules/modules_main.md)
|
||||
- [Автоматичне підлаштування](modules/modules_autotune.md)
|
||||
@ -860,6 +861,7 @@
|
||||
|
||||
- [Релізи](releases/index.md)
|
||||
- [main (alpha)](releases/main.md)
|
||||
- [1.16 (release candidate)](releases/1.16.md)
|
||||
- [1.15 (stable)](releases/1.15.md)
|
||||
- [1.14](releases/1.14.md)
|
||||
- [1.13](releases/1.13.md)
|
||||
|
||||
@ -12,7 +12,7 @@ To use it you will need to build firmware with this feature enabled and then upl
|
||||
:::
|
||||
|
||||
:::tip
|
||||
Log encryption was has been improved in PX4 main (v1.16+) to generate a single encrypted log file that contains both encrypted log data, and an encrypted symmetric key that you can use to decrypt it (provided you can decrypt the symmetric key).
|
||||
Log encryption was has been improved in PX4 v1.16 to generate a single encrypted log file that contains both encrypted log data, and an encrypted symmetric key that you can use to decrypt it (provided you can decrypt the symmetric key).
|
||||
|
||||
In earlier versions the encrypted symmetric key was stored in a separate file.
|
||||
For more information see the [Log Encryption (PX4 v1.15)](https://docs.px4.io/v1.15/en/dev_log/log_encryption.html).
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
# Holybro Kakute H7 V2
|
||||
# Holybro Kakute H743-Wing
|
||||
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
:::warning
|
||||
PX4 не розробляє цей (або будь-який інший) автопілот.
|
||||
@ -31,9 +33,7 @@ This flight controller is [manufacturer supported](../flight_controller/autopilo
|
||||
| Buz-, Buz+ | Piezo buzzer | |
|
||||
| M1 to M14 | Motor signal outputs | |
|
||||
|
||||
<a id="bootloader"></a>
|
||||
|
||||
## Оновлення завантажувача PX4
|
||||
## PX4 Bootloader Update {#bootloader}
|
||||
|
||||
The board comes pre-installed with [Betaflight](https://github.com/betaflight/betaflight/wiki).
|
||||
Before the PX4 firmware can be installed, the _PX4 bootloader_ must be flashed.
|
||||
@ -50,7 +50,7 @@ make holybro_kakuteh7-wing_default
|
||||
## Встановлення прошивки PX4
|
||||
|
||||
:::info
|
||||
KakuteH7-wing is supported with PX4 master & PX4 v1.16 or newer..
|
||||
KakuteH7-wing is supported in PX4 v1.16 or newer.
|
||||
До випуску вам потрібно буде вручну зібрати та встановити прошивку.
|
||||
:::
|
||||
|
||||
|
||||
@ -137,7 +137,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | Команда | Опис |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
|
||||
|
||||
@ -115,7 +115,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | Команда | Опис |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@ -140,7 +140,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | Команда | Опис |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Ackermann Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
An _Ackermann rover_ controls its direction by pointing the front wheels in the direction of travel — the [Ackermann steering geometry](https://en.wikipedia.org/wiki/Ackermann_steering_geometry) compensates for the fact that wheels on the inside and outside of the turn move at different rates.
|
||||
This kind of steering is used on most commercial vehicles, including cars, trucks etc.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Differential Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
A differential rover's motion is controlled using a differential drive mechanism, where the left and right wheel speeds are adjusted independently to achieve the desired forward speed and yaw rate.
|
||||
Forward motion is achieved by driving both wheels at the same speed in the same direction.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Mecanum Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
A Mecanum rover is a type of mobile robot that uses Mecanum wheels to achieve omnidirectional movement. These wheels are unique because they have rollers mounted at a 45-degree angle around their circumference, allowing the rover to move not only forward and backward but also side-to-side and diagonally without needing to rotate first.
|
||||
Each wheel is driven by its own motor, and by controlling the speed and direction of each motor, the rover can move in any direction or spin in place.
|
||||
|
||||
89
docs/uk/mavlink/index.md
Normal file
89
docs/uk/mavlink/index.md
Normal file
@ -0,0 +1,89 @@
|
||||
# Повідомлення MAVLink
|
||||
|
||||
[MAVLink](https://mavlink.io/en/) is a very lightweight messaging protocol that has been designed for the drone ecosystem.
|
||||
|
||||
PX4 uses _MAVLink_ to communicate with ground stations and MAVLink SDKs, such as _QGroundControl_ and [MAVSDK](https://mavsdk.mavlink.io/), and as the integration mechanism for connecting to drone components outside of the flight controller: companion computers, MAVLink enabled cameras, and so on.
|
||||
|
||||
Ця тема надає короткий огляд основних концепцій MAVLink, таких як повідомлення, команди та мікросервіси.
|
||||
It also links instructions for how you can add PX4 support for:
|
||||
|
||||
- [Adding Standard Messages](../mavlink/adding_messages.md)
|
||||
- [Streaming MAVLink messages](../mavlink/streaming_messages.md)
|
||||
- [Handling incoming MAVLink messages (and writing to a uORB topic)](../mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](../mavlink/custom_messages.md)
|
||||
- [Protocols/Microservices](../mavlink/protocols.md)
|
||||
|
||||
:::info
|
||||
We do not yet cover _command_ handling and sending, or how to implement your own microservices.
|
||||
:::
|
||||
|
||||
## Огляд MAVLink
|
||||
|
||||
MAVLink - це легкий протокол, який був розроблений для ефективної відправки повідомлень по ненадійним радіоканалах з низькою пропускною здатністю.
|
||||
|
||||
_Messages_ are simplest and most "fundamental" definition in MAVLink, consisting of a name (e.g. [ATTITUDE](https://mavlink.io/en/messages/common.html#ATTITUDE)), id, and fields containing relevant data.
|
||||
Вони навмисно легкі, мають обмежений розмір і не мають семантики для повторного надсилання та підтвердження.
|
||||
Окремі повідомлення зазвичай використовуються для потокової передачі телеметрії або інформації про стан, а також для надсилання команд, які не потребують підтвердження - наприклад, команд уставки, що надсилаються з високою швидкістю.
|
||||
|
||||
[Microservices](../mavlink/protocols.md) are "meta protocols" built on top of MAVLink messages.
|
||||
They are used to communicate information that cannot be sent in a single message.
|
||||
|
||||
For example, the [Command Protocol](https://mavlink.io/en/services/command.html) is a service for sending commands that may need acknowledgement and retransmission (quality of service).
|
||||
Specific commands are defined as values of the [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) enumeration, such as the takeoff command [MAV_CMD_NAV_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_TAKEOFF), and include up to 7 numeric "param" values.
|
||||
The protocol sends a command by packaging the parameter values in a `COMMAND_INT` or `COMMAND_LONG` message, and waits for an acknowledgement with a result in a `COMMAND_ACK`.
|
||||
The command is automatically resent a number of times if no acknowledgment is received.
|
||||
Note that [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) definitions are also used to define mission actions, and that not all definitions are supported for use in commands/missions on PX4.
|
||||
|
||||
Others services include the [File Transfer Protocol](https://mavlink.io/en/services/ftp.html), [Camera Protocol](https://mavlink.io/en/services/camera.html), [Parameter Protocol](https://mavlink.io/en/services/parameter.html), and [Mission Protocol](https://mavlink.io/en/services/mission.html).
|
||||
For more information on what PX4 supports see [Microservices](../mavlink/protocols.md).
|
||||
|
||||
MAVLink messages, commands and enumerations are defined in [XML definition files](https://mavlink.io/en/guide/define_xml_element.html).
|
||||
Інструментарій MAVLink включає в себе генератори коду, які створюють з цих визначень специфічні для мови програмування бібліотеки для надсилання та отримання повідомлень.
|
||||
Зверніть увагу, що більшість згенерованих бібліотек не створюють код для реалізації мікросервісів.
|
||||
|
||||
The MAVLink project standardizes a number of messages, commands, enumerations, and microservices, for exchanging data using the following definition files (note that higher level files _include_ the definitions of the files below them):
|
||||
|
||||
- [development.xml](https://mavlink.io/en/messages/development.html) — Definitions that are proposed to be part of the standard.
|
||||
The definitions move to `common.xml` if accepted following testing.
|
||||
- [common.xml](https://mavlink.io/en/messages/common.html) — A "library" of definitions meeting many common UAV use cases.
|
||||
Вони підтримуються багатьма польотними стеками, наземними станціями та периферійними пристроями MAVLink.
|
||||
Польотні стеки, які використовують ці визначення, з більшою ймовірністю будуть взаємодіяти.
|
||||
- [standard.xml](https://mavlink.io/en/messages/standard.html) — Definitions that are actually standard.
|
||||
Вони присутні на переважній більшості польотних стеків і реалізовані однаково.
|
||||
- [minimal.xml](https://mavlink.io/en/messages/minimal.html) — Definitions required by a minimal MAVLink implementation.
|
||||
|
||||
The project also hosts [dialect XML definitions](https://mavlink.io/en/messages/#dialects), which contain MAVLink definitions that are specific to a flight stack or other stakeholder.
|
||||
|
||||
Протокол покладається на те, що кожна сторона комунікації має спільне визначення того, які повідомлення надсилаються.
|
||||
Це означає, що для того, щоб взаємодіяти, обидва кінці комунікації повинні використовувати бібліотеки, створені на основі одного і того ж визначення XML.
|
||||
|
||||
<!--
|
||||
The messages are sent over-the-wire in the "payload" of a [MAVLink packet](https://mavlink.io/en/guide/serialization.html#mavlink2_packet_format).
|
||||
In order to reduce the amount of information that must be sent, the packet does not include the message metadata, such as what fields are in the message and so on.
|
||||
Instead, the fields are serialized in a predefined order based on data size and XML definition order, and MAVLink relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
The shared identity of the message is conveyed by the message id, along with a CRC ("`CRC_EXTRA`") that uniquely identifies the message based on its name and id, and the field names and types.
|
||||
The receiving end of the communication will discard any packet for which the message id and the `CRC_EXTRA` do not match.
|
||||
-->
|
||||
|
||||
## PX4 та MAVLink
|
||||
|
||||
PX4 releases build `common.xml` MAVLink definitions by default, for the greatest compatibility with MAVLink ground stations, libraries, and external components such as MAVLink cameras.
|
||||
In the `main` branch, these are included from `development.xml` on SITL, and `common.xml` for other boards.
|
||||
|
||||
:::info
|
||||
To be part of a PX4 release, any MAVLink definitions that you use must be in `common.xml` (or included files such as `standard.xml` and `minimal.xml`).
|
||||
During development you can use definitions in `development.xml`.
|
||||
You will need to work with the [MAVLink team](https://mavlink.io/en/contributing/contributing.html) to define and contribute these definitions.
|
||||
:::
|
||||
|
||||
PX4 includes the [mavlink/mavlink](https://github.com/mavlink/mavlink) repo as a submodule under [/src/modules/mavlink](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/mavlink).
|
||||
This contains XML definition files in [/mavlink/messages/1.0/](https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/).
|
||||
|
||||
Інструментарій збірки генерує заголовні файли MAVLink 2 C під час збірки.
|
||||
The XML file for which headers files are generated may be defined in the [PX4 kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) on a per-board basis, using the variable `CONFIG_MAVLINK_DIALECT`:
|
||||
|
||||
- For SITL `CONFIG_MAVLINK_DIALECT` is set to `development` in [boards/px4/sitl/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/sitl/default.px4board#L36).
|
||||
You can change this to any other definition file, but the file must include `common.xml`.
|
||||
- For other boards `CONFIG_MAVLINK_DIALECT` is not set by default, and PX4 builds the definitions in `common.xml` (these are build into the [mavlink module](../modules/modules_communication.md#mavlink) by default — search for `menuconfig MAVLINK_DIALECT` in [src/modules/mavlink/Kconfig](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/Kconfig#L10)).
|
||||
|
||||
The files are generated into the build directory: `/build/<build target>/mavlink/`.
|
||||
51
docs/uk/mavlink/protocols.md
Normal file
51
docs/uk/mavlink/protocols.md
Normal file
@ -0,0 +1,51 @@
|
||||
# MAVLink Microservices (Protocols)
|
||||
|
||||
MAVLink "microservices" are a protocols that use multiple messages exchanged between components to communicate more complicated information.
|
||||
For example, the [Command Protocol](https://mavlink.io/en/services/command.html) provides an efficient mechanism for packaging a command in a (particular) message and receiving acknowledgement of the command in another message.
|
||||
|
||||
MAVLink microservices are documented the [MAVLink Guide](https://mavlink.io/en/services/) (this is not exhaustive: not all messages are grouped into protocols and not all protocols are documented).
|
||||
|
||||
This section lists the services known to be supported/not supported by PX4 in this version.
|
||||
|
||||
## Supported Microservices
|
||||
|
||||
These services are known to be supported in some form:
|
||||
|
||||
- [Battery Protocol](https://mavlink.io/en/services/battery.html)
|
||||
- [BATTERY_STATUS](https://mavlink.io/en/messages/common.html#BATTERY_STATUS) and [BATTERY_INFO](https://mavlink.io/en/messages/common.html#BATTERY_STATUS) are streamed.
|
||||
- Camera Protocols
|
||||
- [Camera Protocol v2](https://mavlink.io/en/services/camera.html)
|
||||
- [Camera Definition](https://mavlink.io/en/services/camera_def.html)
|
||||
- [Command Protocol](https://mavlink.io/en/services/command.html)
|
||||
- [Component Metadata Protocol](https://mavlink.io/en/services/component_information.html)
|
||||
- [Events Interface](https://mavlink.io/en/services/events.html)
|
||||
- [File Transfer Protocol (FTP)](https://mavlink.io/en/services/ftp.html)
|
||||
- Gimbal Protocols
|
||||
- [Gimbal Protocol v2](https://mavlink.io/en/services/gimbal_v2.html)
|
||||
- Can be enabled by [Gimbal Configuration](../advanced/gimbal_control.md#mavlink-gimbal-mnt-mode-out-mavlink)
|
||||
- PX4 an act as a MAVLink Gimbal for one FC-connected Gimbal
|
||||
- [Heartbeat/Connection Protocol](https://mavlink.io/en/services/heartbeat.html)
|
||||
- [High Latency Protocol](https://mavlink.io/en/services/high_latency.html) — PX4 streams [HIGH_LATENCY2](https://mavlink.io/en/messages/common.html#HIGH_LATENCY2)
|
||||
- [Image Transmission Protocol](https://mavlink.io/en/services/image_transmission.html)
|
||||
- [Landing Target Protocol](https://mavlink.io/en/services/landing_target.html)
|
||||
- [Manual Control (Joystick) Protocol](https://mavlink.io/en/services/manual_control.html)
|
||||
- [MAVLink Id Assignment (sysid, compid)](https://mavlink.io/en/services/mavlink_id_assignment.html)
|
||||
- [Mission Protocol](https://mavlink.io/en/services/mission.html)
|
||||
- [Offboard Control Protocol](https://mavlink.io/en/services/offboard_control.html)
|
||||
- [Remote ID](../peripherals/remote_id.md) ([Open Drone ID Protocol](https://mavlink.io/en/services/opendroneid.html))
|
||||
- [Parameter Protocol](https://mavlink.io/en/services/parameter.html)
|
||||
- [Parameter Protocol Extended](https://mavlink.io/en/services/parameter_ext.html) — Allows setting string parameters. Used for setting string parameters set in camera definition files.
|
||||
- [Payload Protocol](https://mavlink.io/en/services/payload.html)
|
||||
- [Ping Protocol](https://mavlink.io/en/services/ping.html)
|
||||
- [Standard Modes Protocol](../mavlink/standard_modes.md)
|
||||
- [Terrain Protocol](https://mavlink.io/en/services/terrain.html)
|
||||
- [Time Synchronization](https://mavlink.io/en/services/timesync.html)
|
||||
- [Traffic Management (UTM/ADS-B)](https://mavlink.io/en/services/traffic_management.html)
|
||||
- [Arm Authorization Protocol](https://mavlink.io/en/services/arm_authorization.html)
|
||||
|
||||
## Непідтримувано
|
||||
|
||||
These services are not supported/used by PX4:
|
||||
|
||||
- [Illuminator Protocol](https://mavlink.io/en/services/illuminator.html)
|
||||
- [Tunnel Protocol](https://mavlink.io/en/services/tunnel.html)
|
||||
@ -1,87 +1 @@
|
||||
# Повідомлення MAVLink
|
||||
|
||||
[MAVLink](https://mavlink.io/en/) is a very lightweight messaging protocol that has been designed for the drone ecosystem.
|
||||
|
||||
PX4 uses _MAVLink_ to communicate with ground stations and MAVLink SDKs, such as _QGroundControl_ and [MAVSDK](https://mavsdk.mavlink.io/), and as the integration mechanism for connecting to drone components outside of the flight controller: companion computers, MAVLink enabled cameras, and so on.
|
||||
|
||||
Ця тема надає короткий огляд основних концепцій MAVLink, таких як повідомлення, команди та мікросервіси.
|
||||
It also links instructions for how you can add PX4 support for:
|
||||
|
||||
- [Adding Standard Messages](../mavlink/adding_messages.md)
|
||||
- [Streaming MAVLink messages](../mavlink/streaming_messages.md)
|
||||
- [Handling incoming MAVLink messages (and writing to a uORB topic)](../mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](../mavlink/custom_messages.md)
|
||||
|
||||
:::info
|
||||
We do not yet cover _command_ handling and sending, or how to implement your own microservices.
|
||||
:::
|
||||
|
||||
## Огляд MAVLink
|
||||
|
||||
MAVLink - це легкий протокол, який був розроблений для ефективної відправки повідомлень по ненадійним радіоканалах з низькою пропускною здатністю.
|
||||
|
||||
_Messages_ are simplest and most "fundamental" definition in MAVLink, consisting of a name (e.g. [ATTITUDE](https://mavlink.io/en/messages/common.html#ATTITUDE)), id, and fields containing relevant data.
|
||||
Вони навмисно легкі, мають обмежений розмір і не мають семантики для повторного надсилання та підтвердження.
|
||||
Окремі повідомлення зазвичай використовуються для потокової передачі телеметрії або інформації про стан, а також для надсилання команд, які не потребують підтвердження - наприклад, команд уставки, що надсилаються з високою швидкістю.
|
||||
|
||||
The [Command Protocol](https://mavlink.io/en/services/command.html) is a higher level protocol for sending commands that may need acknowledgement.
|
||||
Specific commands are defined as values of the [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) enumeration, such as the takeoff command [MAV_CMD_NAV_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_TAKEOFF), and include up to 7 numeric "param" values.
|
||||
The protocol sends a command by packaging the parameter values in a `COMMAND_INT` or `COMMAND_LONG` message, and waits for an acknowledgement with a result in a `COMMAND_ACK`.
|
||||
Якщо команда не буде отримана, вона буде повторно надіслана автоматично.
|
||||
Note that [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) definitions are also used to define mission actions, and that not all definitions are supported for use in commands/missions on PX4.
|
||||
|
||||
[Microservices](https://mavlink.io/en/services/) are other higher level protocols built on top of MAVLink messages.
|
||||
Вони використовуються для передачі інформації, яку неможливо надіслати одним повідомленням, а також для забезпечення таких функцій, як надійний зв'язок.
|
||||
Описаний вище командний протокол є одним з таких сервісів.
|
||||
Others include the [File Transfer Protocol](https://mavlink.io/en/services/ftp.html), [Camera Protocol](https://mavlink.io/en/services/camera.html) and [Mission Protocol](https://mavlink.io/en/services/mission.html).
|
||||
|
||||
MAVLink messages, commands and enumerations are defined in [XML definition files](https://mavlink.io/en/guide/define_xml_element.html).
|
||||
Інструментарій MAVLink включає в себе генератори коду, які створюють з цих визначень специфічні для мови програмування бібліотеки для надсилання та отримання повідомлень.
|
||||
Зверніть увагу, що більшість згенерованих бібліотек не створюють код для реалізації мікросервісів.
|
||||
|
||||
The MAVLink project standardizes a number of messages, commands, enumerations, and microservices, for exchanging data using the following definition files (note that higher level files _include_ the definitions of the files below them):
|
||||
|
||||
- [development.xml](https://mavlink.io/en/messages/development.html) — Definitions that are proposed to be part of the standard.
|
||||
The definitions move to `common.xml` if accepted following testing.
|
||||
- [common.xml](https://mavlink.io/en/messages/common.html) — A "library" of definitions meeting many common UAV use cases.
|
||||
Вони підтримуються багатьма польотними стеками, наземними станціями та периферійними пристроями MAVLink.
|
||||
Польотні стеки, які використовують ці визначення, з більшою ймовірністю будуть взаємодіяти.
|
||||
- [standard.xml](https://mavlink.io/en/messages/standard.html) — Definitions that are actually standard.
|
||||
Вони присутні на переважній більшості польотних стеків і реалізовані однаково.
|
||||
- [minimal.xml](https://mavlink.io/en/messages/minimal.html) — Definitions required by a minimal MAVLink implementation.
|
||||
|
||||
The project also hosts [dialect XML definitions](https://mavlink.io/en/messages/#dialects), which contain MAVLink definitions that are specific to a flight stack or other stakeholder.
|
||||
|
||||
Протокол покладається на те, що кожна сторона комунікації має спільне визначення того, які повідомлення надсилаються.
|
||||
Це означає, що для того, щоб взаємодіяти, обидва кінці комунікації повинні використовувати бібліотеки, створені на основі одного і того ж визначення XML.
|
||||
|
||||
<!--
|
||||
The messages are sent over-the-wire in the "payload" of a [MAVLink packet](https://mavlink.io/en/guide/serialization.html#mavlink2_packet_format).
|
||||
In order to reduce the amount of information that must be sent, the packet does not include the message metadata, such as what fields are in the message and so on.
|
||||
Instead, the fields are serialized in a predefined order based on data size and XML definition order, and MAVLink relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
The shared identity of the message is conveyed by the message id, along with a CRC ("`CRC_EXTRA`") that uniquely identifies the message based on its name and id, and the field names and types.
|
||||
The receiving end of the communication will discard any packet for which the message id and the `CRC_EXTRA` do not match.
|
||||
-->
|
||||
|
||||
## PX4 та MAVLink
|
||||
|
||||
PX4 releases build `common.xml` MAVLink definitions by default, for the greatest compatibility with MAVLink ground stations, libraries, and external components such as MAVLink cameras.
|
||||
In the `main` branch, these are included from `development.xml` on SITL, and `common.xml` for other boards.
|
||||
|
||||
:::info
|
||||
To be part of a PX4 release, any MAVLink definitions that you use must be in `common.xml` (or included files such as `standard.xml` and `minimal.xml`).
|
||||
During development you can use definitions in `development.xml`.
|
||||
You will need to work with the [MAVLink team](https://mavlink.io/en/contributing/contributing.html) to define and contribute these definitions.
|
||||
:::
|
||||
|
||||
PX4 includes the [mavlink/mavlink](https://github.com/mavlink/mavlink) repo as a submodule under [/src/modules/mavlink](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/mavlink).
|
||||
This contains XML definition files in [/mavlink/messages/1.0/](https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/).
|
||||
|
||||
Інструментарій збірки генерує заголовні файли MAVLink 2 C під час збірки.
|
||||
The XML file for which headers files are generated may be defined in the [PX4 kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) on a per-board basis, using the variable `CONFIG_MAVLINK_DIALECT`:
|
||||
|
||||
- For SITL `CONFIG_MAVLINK_DIALECT` is set to `development` in [boards/px4/sitl/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/sitl/default.px4board#L36).
|
||||
You can change this to any other definition file, but the file must include `common.xml`.
|
||||
- For other boards `CONFIG_MAVLINK_DIALECT` is not set by default, and PX4 builds the definitions in `common.xml` (these are build into the [mavlink module](../modules/modules_communication.md#mavlink) by default — search for `menuconfig MAVLINK_DIALECT` in [src/modules/mavlink/Kconfig](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/Kconfig#L10)).
|
||||
|
||||
The files are generated into the build directory: `/build/<build target>/mavlink/`.
|
||||
<Redirect to="../mavlink/" />
|
||||
|
||||
@ -116,9 +116,9 @@ As there are external tools using uORB messages from log files, such as [Flight
|
||||
|
||||
## Message Versioning
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" />
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
Optional message versioning was introduced in the `main` branch (planned for PX4 v1.16+) to make it easier to maintain compatibility between PX4 and ROS 2 versions compiled against different message definitions.
|
||||
Optional message versioning was introduced PX4 v1.16 to make it easier to maintain compatibility between PX4 and ROS 2 versions compiled against different message definitions.
|
||||
Versioned messages are designed to remain more stable over time compared to their non-versioned counterparts, as they are intended to be used across multiple releases of PX4 and external systems, ensuring greater compatibility over longer periods.
|
||||
|
||||
Versioned messages include an additional field `uint32 MESSAGE_VERSION = x`, where `x` corresponds to the current version of the message.
|
||||
|
||||
@ -430,16 +430,17 @@ publications:
|
||||
|
||||
- topic: /fmu/out/collision_constraints
|
||||
type: px4_msgs::msg::CollisionConstraints
|
||||
rate_limit: 50. # Limit max publication rate to 50 Hz
|
||||
|
||||
...
|
||||
|
||||
- topic: /fmu/out/vehicle_odometry
|
||||
type: px4_msgs::msg::VehicleOdometry
|
||||
rate_limit: 150.
|
||||
# Use default publication rate limit of 100 Hz
|
||||
|
||||
- topic: /fmu/out/vehicle_status
|
||||
type: px4_msgs::msg::VehicleStatus
|
||||
rate_limit: 50.
|
||||
rate_limit: 5.
|
||||
|
||||
- topic: /fmu/out/vehicle_trajectory_waypoint_desired
|
||||
type: px4_msgs::msg::VehicleTrajectoryWaypoint
|
||||
|
||||
221
docs/uk/releases/1.16.md
Normal file
221
docs/uk/releases/1.16.md
Normal file
@ -0,0 +1,221 @@
|
||||
# PX4-Autopilot v1.16.0 Release Notes
|
||||
|
||||
<Badge type="info" text="Candidate Release" />
|
||||
|
||||
<script setup>
|
||||
import { useData } from 'vitepress'
|
||||
const { site } = useData();
|
||||
</script>
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page is on a release branch, and hence possibly out of date. <a href="https://docs.px4.io/main/en/releases/main.html">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
This document covers all changes in PX4 v1.16.0 since the previous stable release ([PX4 v1.15.0](../releases/1.15.md)).
|
||||
|
||||
:::info
|
||||
These notes include only changes merged in 2023 and later — commits before 2023 are not listed.
|
||||
:::
|
||||
|
||||
## Прочитайте перед оновленням
|
||||
|
||||
Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
## Основні зміни
|
||||
|
||||
- **Rover support rework**
|
||||
- New dedicated firmware build for rovers (airframe IDs 50000–52000)
|
||||
- Separate modules for Ackermann, differential and mecanum rovers, each with manual, acro, stabilized, position and auto modes
|
||||
- Shared pure-pursuit guidance library for all rover modules
|
||||
- Legacy rover position control module deprecated in favor of the new modules
|
||||
|
||||
## Інструкції для оновлення
|
||||
|
||||
- [PX4-Autopilot#24648](https://github.com/PX4/PX4-Autopilot/pull/24648): Added setting default for EKF2_EV_CTRL to 15 for VOXL 2 boards
|
||||
- [PX4-Autopilot#22517](https://github.com/PX4/PX4-Autopilot/pull/22517): Change default ethernet IP
|
||||
- [PX4-Autopilot#24602](https://github.com/PX4/PX4-Autopilot/pull/24602): remove serial port default from sf45 module
|
||||
|
||||
## Інші зміни
|
||||
|
||||
### Підтримка обладнання
|
||||
|
||||
- **[New Hardware]** [PX4-Autopilot#23830](https://github.com/PX4/PX4-Autopilot/pull/23830): Boards: ARK FPV FC
|
||||
- **[New Hardware]** [PX4-Autopilot#23414](https://github.com/PX4/PX4-Autopilot/pull/23414): board: add cuav 7-nano
|
||||
- **[New Hardware]** [PX4-Autopilot#24769](https://github.com/PX4/PX4-Autopilot/pull/24769): add new board corvon743v1
|
||||
- **[New Hardware]** [PX4-Autopilot#24018](https://github.com/PX4/PX4-Autopilot/pull/24018): boards: bluerobotics: navigator: Add initial support
|
||||
- **[New Hardware]** [PX4-Autopilot#24147](https://github.com/PX4/PX4-Autopilot/pull/24147): boards: add new board micoair743-v2
|
||||
- **[New Hardware]** [PX4-Autopilot#23218](https://github.com/PX4/PX4-Autopilot/pull/23218): boards: add new board micoair h743
|
||||
- **[New Hardware]** [PX4-Autopilot#24512](https://github.com/PX4/PX4-Autopilot/pull/24512): boards: Add FMUv6s target
|
||||
- **[New Hardware]** [PX4-Autopilot#23927](https://github.com/PX4/PX4-Autopilot/pull/23927): manifest: Add Skynode S baseboard
|
||||
- **[New Hardware]** [PX4-Autopilot#23257](https://github.com/PX4/PX4-Autopilot/pull/23257): Add Tropic VMU board support (Baseboard for Teensy 4.1)
|
||||
- **[New Hardware]** [PX4-Autopilot#23697](https://github.com/PX4/PX4-Autopilot/pull/23697): boards: add new board X-MAV AP-H743v2
|
||||
- **[New Hardware]** [PX4-Autopilot#23551](https://github.com/PX4/PX4-Autopilot/pull/23551): 3DR boards: Support for 3DR Control Zero H7 OEM Rev G
|
||||
- **[New Hardware]** [PX4-Autopilot#23623](https://github.com/PX4/PX4-Autopilot/pull/23623): new board support ZeroOne x6
|
||||
|
||||
### Загальні
|
||||
|
||||
- [Optical flow scaling factor - SENS_FLOW_SCALE](../sensor/optical_flow.md#scale-factor). ([PX4-Autopilot#23936](https://github.com/PX4/PX4-Autopilot/pull/23936)).
|
||||
|
||||
- [PX4-Autopilot#22813](https://github.com/PX4/PX4-Autopilot/pull/22813): Reintroduce optional parameter versioning mechanism for airframe maintainers
|
||||
|
||||
- [Battery level estimation improvements](../config/battery.md). ([PX4-Autopilot#23205](https://github.com/PX4/PX4-Autopilot/pull/23205)).
|
||||
- [Voltage-based estimation with load compensation](../config/battery.md#voltage-based-estimation-with-load-compensation) now uses a real-time estimate of the internal resistance of the battery to compensate voltage drops under load (with increased current), providing a better capacity estimate than with the raw measured voltage.
|
||||
- Thrust-based load compensation has been removed (along with the `BATn_V_LOAD_DROP` parameters, where `n` is the battery number).
|
||||
|
||||
- The [Position (GNSS) loss failsafe](../config/safety.md#position-gnss-loss-failsafe) configurable delay (`COM_POS_FS_DELAY`) has been removed.
|
||||
The failsafe will now trigger 1 second after position has been lost. ([PX4-Autopilot#24063](https://github.com/PX4/PX4-Autopilot/pull/24063)).
|
||||
|
||||
- [Log Encryption](../dev_log/log_encryption.md) now generates an encrypted log that contains the public-key-encrypted symmetric key that can be used to decrypt it, instead of putting the key into a separate file.
|
||||
This makes log decryption much easier, as there is no need to download or identify a separate key file.
|
||||
([PX4-Autopilot#24024](https://github.com/PX4/PX4-Autopilot/pull/24024)).
|
||||
|
||||
- The generic mission command timeout [MIS_COMMAND_TOUT](../advanced_config/parameter_reference.md#MIS_COMMAND_TOUT) parameter replaces the delivery-specific `MIS_PD_TO` parameter.
|
||||
Mission commands that may take some time to complete, such as those for controlling gimbals, winches, and grippers, will progress to the next item when either feedback is received or the timeout expires.
|
||||
This is often used to provide a minimum delay for hardware that does not provide completion feedback, so that it can reach the commanded state before the mission progresses.
|
||||
([PX4-Autopilot#23960](https://github.com/PX4/PX4-Autopilot/pull/23960)).
|
||||
|
||||
- **[uORB]** Introduce a [version field](../middleware/uorb.md#message-versioning) for a subset of uORB messages ([PX4-Autopilot#23850](https://github.com/PX4/PX4-Autopilot/pull/23850))
|
||||
|
||||
- [Compass calibration](../config/compass.md) disables internal compasses if an external compass is available.
|
||||
This typically reduces false warnings due to magnetometer inconsistencies.
|
||||
([PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316)).
|
||||
|
||||
### Управління
|
||||
|
||||
- [PX4-Autopilot#23863](https://github.com/PX4/PX4-Autopilot/pull/23863): [Sponsored by ARK] Bidirectional DShot
|
||||
|
||||
- [PX4-Autopilot#24196](https://github.com/PX4/PX4-Autopilot/pull/24196): Make control allocation and actuator effectiveness a non-module-specific library
|
||||
|
||||
- [PX4-Autopilot#24221](https://github.com/PX4/PX4-Autopilot/pull/24221): Spacecraft Build and Bare Control Allocator
|
||||
|
||||
- Configurable multicopter orbit-mode yaw via `MC_ORBIT_YAW_MOD` ([PX4-Autopilot#23358](https://github.com/PX4/PX4-Autopilot/pull/23358))
|
||||
|
||||
- Collision prevention now works in manual (acceleration-based) flight mode (`MPC_POS_MODE`) ([PX4-Autopilot#23507](https://github.com/PX4/PX4-Autopilot/pull/23507))
|
||||
|
||||
### Оцінки
|
||||
|
||||
- [PX4-Autopilot#23854](https://github.com/PX4/PX4-Autopilot/pull/23854): EKF2: ellipsoidal earth navigation
|
||||
|
||||
- [PX4-Autopilot#23263](https://github.com/PX4/PX4-Autopilot/pull/23263): EKF2: Terrain state
|
||||
|
||||
- [PX4-Autopilot#23185](https://github.com/PX4/PX4-Autopilot/pull/23185): ekf2: add mag type init
|
||||
|
||||
- [PX4-Autopilot#23436](https://github.com/PX4/PX4-Autopilot/pull/23436): ekf2: Optical flow enabled by default
|
||||
|
||||
- Position-loss failsafe delay removed; triggers 1 s after loss (see Common)
|
||||
|
||||
### Датчики
|
||||
|
||||
- [PX4-Autopilot#23656](https://github.com/PX4/PX4-Autopilot/pull/23656): Implemented AUAV absolute/differential pressure sensor support
|
||||
|
||||
- [PX4-Autopilot#23639](https://github.com/PX4/PX4-Autopilot/pull/23639): Implemented temperature sensor support for INA228 / INA238
|
||||
|
||||
- [PX4-Autopilot#22744](https://github.com/PX4/PX4-Autopilot/pull/22744): Add Ublox ZED-F9P-15B
|
||||
|
||||
- [PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316): Mag cal: automatically disable internal mags if external ones are available
|
||||
|
||||
- [PX4-Autopilot#23064](https://github.com/PX4/PX4-Autopilot/pull/23064): BMP581: Add Bosch BMP581 barometer
|
||||
|
||||
- [PX4-Autopilot#22914](https://github.com/PX4/PX4-Autopilot/pull/22914): Murata SCH16T IMU driver
|
||||
|
||||
- [PX4-Autopilot#23023](https://github.com/PX4/PX4-Autopilot/pull/23023): ST IIS2MDC Magnetometer driver
|
||||
|
||||
- [PX4-Autopilot#24121](https://github.com/PX4/PX4-Autopilot/pull/24121): Include distance sensor in dds topics
|
||||
|
||||
- [PX4-Autopilot#23925](https://github.com/PX4/PX4-Autopilot/pull/23925): drivers: magnetometer: mmc5983ma: Add SPI support
|
||||
|
||||
- [PX4-Autopilot#23909](https://github.com/PX4/PX4-Autopilot/pull/23909): drivers/magnetometer/ak09916: Add support to AK09915
|
||||
|
||||
- [PX4-Autopilot#23362](https://github.com/PX4/PX4-Autopilot/pull/23362): Add Bosch BMM350 magnetometer
|
||||
|
||||
- [PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316): Compass calibration now disables internal compass when external unit present, reducing false warnings
|
||||
|
||||
### Симуляція
|
||||
|
||||
- **SIH**:
|
||||
- The SIH on SITL [custom takeoff location](../sim_sih/index.md#set-custom-takeoff-location) in now set using the normal unscaled GPS position values, where previously the value needed to be multiplied by 1E7.
|
||||
([PX4-Autopilot#23363](https://github.com/PX4/PX4-Autopilot/pull/23363)).
|
||||
- SIH now supports the standard VTOL airframe
|
||||
([PX4-Autopilot#24175](https://github.com/PX4/PX4-Autopilot/pull/24175)).
|
||||
- **Gazebo**:
|
||||
- Gazebo Harmonic LTS release replaces Gazebo Garden as the version supported by PX4.
|
||||
The default installer scripts (used for CI) and documentation have been updated.
|
||||
This is required because Garden end-of-life is Nov 2024.
|
||||
([PX4-Autopilot#23603](https://github.com/PX4/PX4-Autopilot/pull/23603))
|
||||
- New vehicle model `x500_lidar_2d` — [x500 Quadrotor with 2D Lidar](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-2d-lidar). ([PX4-Autopilot#22418](https://github.com/PX4/PX4-Autopilot/pull/22418), [PX4-gazebo-models#41](https://github.com/PX4/PX4-gazebo-models/pull/41)).
|
||||
- New vehicle model `x500_lidar_front` — [X500 Quadrotor with 1D LIDAR (Front-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-front-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `x500_lidar_down` — [X500 Quadrotor with 1D LIDAR (Down-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-down-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `r1_rover` — [Aion Robotics R1 Rover](../sim_gazebo_gz/vehicles.md#differential-rover) ([PX4-Autopilot#22402](https://github.com/PX4/PX4-Autopilot/pull/22402) and [PX4-gazebo-models#21](https://github.com/PX4/PX4-gazebo-models/pull/21)).
|
||||
- New vehicle model `rover_ackermann` — [Ackermann Rover](../sim_gazebo_gz/vehicles.md#ackermann-rover) ([PX4-Autopilot#23383](https://github.com/PX4/PX4-Autopilot/pull/23383) and [PX4-gazebo-models#46](https://github.com/PX4/PX4-gazebo-models/pull/46)).
|
||||
- New vehicle model `x500_gimbal` — [Quadrotor(x500) with gimbal (Front-facing) in Gazebo](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-gimbal-front-facing) ([PX4-Autopilot#23382](https://github.com/PX4/PX4-Autopilot/pull/23382) and [PX4-gazebo-models#47](https://github.com/PX4/PX4-gazebo-models/pull/47) and [PX4-gazebo-models#70](https://github.com/PX4/PX4-gazebo-models/pull/70)).
|
||||
- New vehicle model `quadtailsitter` — [Quad Tailsitter VTOL](../sim_gazebo_gz/vehicles.md#quad-tailsitter-vtol) ([PX4-Autopilot#23943](https://github.com/PX4/PX4-Autopilot/pull/23943) and [PX4-gazebo-models#65](https://github.com/PX4/PX4-gazebo-models/pull/65)).
|
||||
- New vehicle model `tiltrotor` — [Tiltrotor VTOL](../sim_gazebo_gz/vehicles.md#tiltrotor-vtol) ([PX4-Autopilot#24028](https://github.com/PX4/PX4-Autopilot/pull/24028) and [PX4-gazebo-models#66](https://github.com/PX4/PX4-gazebo-models/pull/66)).
|
||||
- [Faster than Real-time Simulation](../simulation/index.md#simulation_speed) ([PX4-Autopilot#24421](https://github.com/PX4/PX4-Autopilot/pull/24421), [PX4-Autopilot#23783](https://github.com/PX4/PX4-Autopilot/pull/23783))
|
||||
- [PX4-Autopilot#24471](https://github.com/PX4/PX4-Autopilot/pull/24471): Gazebo: Moving platform
|
||||
|
||||
### uXRCE-DDS / ROS2
|
||||
|
||||
- **[Feature]** [PX4-Autopilot#24113](https://github.com/PX4/PX4-Autopilot/pull/24113): <Badge type="warning" text="Experimental"/> [ROS 2 Message Translation Node](../ros2/px4_ros2_msg_translation_node.md) to translate PX4 messages from one definition version to another dynamically
|
||||
- [PX4-Autopilot#24582](https://github.com/PX4/PX4-Autopilot/pull/24582): dds_topics: add vtol_vehicle_status
|
||||
- [PX4-Autopilot#24583](https://github.com/PX4/PX4-Autopilot/pull/24583): dds_topics: add home_position
|
||||
|
||||
### MAVLink
|
||||
|
||||
- Уточнюється
|
||||
|
||||
### Мульти-Ротор
|
||||
|
||||
- [PX4-Autopilot#24173](https://github.com/PX4/PX4-Autopilot/pull/24173): [Multirotor] add yaw torque low pass filter
|
||||
|
||||
- [PX4-Autopilot#23943](https://github.com/PX4/PX4-Autopilot/pull/23943): Add gz model for quadtailsitter
|
||||
|
||||
- [PX4-Autopilot#23358](https://github.com/PX4/PX4-Autopilot/pull/23358): Allow system-default [multicopter orbit mode](../flight_modes_mc/orbit.md) yaw behaviour to be configured, using the parameter [MC_ORBIT_YAW_MOD](../advanced_config/parameter_reference.md#MC_ORBIT_YAW_MOD)
|
||||
|
||||
- [PX4-Autopilot#23507](https://github.com/PX4/PX4-Autopilot/pull/23507): Adapted the [Collision Prevention](../computer_vision/collision_prevention.md) implementation to work in the default manual flight mode (Acceleration Based) [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE).
|
||||
|
||||
### VTOL
|
||||
|
||||
- Уточнюється
|
||||
|
||||
### Літак з фіксованим крилом
|
||||
|
||||
- [PX4-Autopilot#24167](https://github.com/PX4/PX4-Autopilot/pull/24167): Fixedwing: fix wheel controller
|
||||
|
||||
- [PX4-Autopilot#23520](https://github.com/PX4/PX4-Autopilot/pull/23520): FixedWing: allow position control without valid global position
|
||||
|
||||
- Improvement: Fixed-wing auto takeoff: enable setting takeoff flaps for hand/catapult launch. [PX4-Autopilot#23460](https://github.com/PX4/PX4-Autopilot/pull/23460)
|
||||
|
||||
### Ровер
|
||||
|
||||
This release contains a major rework for the rover support in PX4:
|
||||
|
||||
- Complete restructure of the [rover related documentation](../frames_rover/index.md).
|
||||
- New firmware build specifically for [rovers](../frames_rover/index.md#flashing-the-rover-build).
|
||||
- New module dedicated to [Ackermann rovers](../frames_rover/ackermann.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/ackermann.md#manual-mode), [acro mode](../flight_modes_rover/ackermann.md#acro-mode), [position mode](../flight_modes_rover/ackermann.md#position-mode) and [auto modes](../flight_modes_rover/ackermann.md#auto-modes).
|
||||
- New module dedicated to [differential rovers](../frames_rover/differential.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/differential.md#manual-mode), [acro mode](../flight_modes_rover/differential.md#acro-mode), [stabilized mode](../flight_modes_rover/differential.md#stabilized-mode), [position mode](../flight_modes_rover/differential.md#position-mode) and [auto modes](../flight_modes_rover/differential.md#auto-modes).
|
||||
- New module dedicated to [mecanum rovers](../frames_rover/mecanum.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/mecanum.md#manual-mode), [acro mode](../flight_modes_rover/mecanum.md#acro-mode), [stabilized mode](../flight_modes_rover/mecanum.md#stabilized-mode), [position mode](../flight_modes_rover/mecanum.md#position-mode) and [auto modes](../flight_modes_rover/mecanum.md#auto-modes).
|
||||
- Added rover-specific firmware build (`50000–52000`) for Ackermann, differential and mecanum rovers
|
||||
- Restructure of the [rover airframe](../airframes/airframe_reference.md#rover) numbering convention ([PX4-Autopilot#23506](https://github.com/PX4/PX4-Autopilot/pull/23506)).
|
||||
This also introduces several [new rover airframes](../airframes/airframe_reference.md#rover):
|
||||
- Generic Differential Rover `50000`.
|
||||
- Generic Ackermann Rover `51000`.
|
||||
- Axial SCX10 2 Trail Honcho `51001`.
|
||||
- Generic Mecanum Rover `52000`.
|
||||
- Library for the [pure pursuit guidance algorithm](../config_rover/differential.md#pure-pursuit-guidance-logic) that is shared by all the rover modules.
|
||||
- [Simulation](../frames_rover/index.md#simulation) for differential-steering and Ackermann rovers in gazebo (for release notes see `r1_rover` and `rover_ackermann` in [simulation](#simulation)).
|
||||
- Deprecation of the [rover position control](../frames_rover/rover_position_control.md) module: Note that the legacy rover module still exists but has been superseded by the new dedicated modules.
|
||||
|
||||
### Infrastructure
|
||||
|
||||
- [PX4-Autopilot#24011](https://github.com/PX4/PX4-Autopilot/pull/24011): standard_modes: add vehicle-type specific standard modes
|
||||
- [PX4-Autopilot#24020](https://github.com/PX4/PX4-Autopilot/pull/24020): ci: build all upload to releases
|
||||
- [PX4-Autopilot#24002](https://github.com/PX4/PX4-Autopilot/pull/24002): ci: px4-dev container
|
||||
- [PX4-Autopilot#23937](https://github.com/PX4/PX4-Autopilot/pull/23937): ci: workflow for ubuntu 24
|
||||
- [PX4-Autopilot#23869](https://github.com/PX4/PX4-Autopilot/pull/23869): ci: add test for Ubuntu 22.04
|
||||
- [PX4-Autopilot#23574](https://github.com/PX4/PX4-Autopilot/pull/23574): ci: try runs-on Dronecode Infra
|
||||
- [PX4-Autopilot#23550](https://github.com/PX4/PX4-Autopilot/pull/23550): ci: replace build workflows
|
||||
@ -2,7 +2,8 @@
|
||||
|
||||
Перелік PX4 реліз, вони містять список змін, що відбулися в кожному релізі, пояснення включених функцій, виправлень, застарілих та оновлень.
|
||||
|
||||
- [main](../releases/main.md) (changes since v1.15)
|
||||
- [main](../releases/main.md) (changes since v1.16)
|
||||
- [v1.16](../releases/1.16.md)
|
||||
- [v1.15](../releases/1.15.md)
|
||||
- [v1.14](../releases/1.14.md)
|
||||
- [v1.13](../releases/1.13.md)
|
||||
|
||||
@ -9,15 +9,15 @@ const { site } = useData();
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page is on a release bramch, and hence probably out of date. <a href="https://docs.px4.io/main/en/releases/main.html">See the latest version</a>.</p>
|
||||
<p class="custom-block-title">This page is on a release branch, and hence probably out of date. <a href="https://docs.px4.io/main/en/releases/main.html">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
This contains changes to PX4 `main` branch since the last major release ([PX v1.15](../releases/1.15.md)).
|
||||
This contains changes to PX4 `main` branch since the last major release ([PX v1.16](../releases/1.16.md)).
|
||||
|
||||
:::warning
|
||||
The PX4 v1.15 release is in beta testing, pending release.
|
||||
Update these notes with features that are going to be in `main` but not the PX4 v1.15 release.
|
||||
PX4 v1.16 is in candidate-release testing, pending release.
|
||||
Update these notes with features that are going to be in `main` but not the PX4 v1.16 release.
|
||||
:::
|
||||
|
||||
## Прочитайте перед оновленням
|
||||
@ -40,22 +40,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### Загальні
|
||||
|
||||
- [Battery level estimation improvements](../config/battery.md). ([PX4-Autopilot#23205](https://github.com/PX4/PX4-Autopilot/pull/23205)).
|
||||
- [Voltage-based estimation with load compensation](../config/battery.md#voltage-based-estimation-with-load-compensation) now uses a real-time estimate of the internal resistance of the battery to compensate voltage drops under load (with increased current), providing a better capacity estimate than with the raw measured voltage.
|
||||
- Thrust-based load compensation has been removed (along with the `BATn_V_LOAD_DROP` parameters, where `n` is the battery number).
|
||||
- The [Position (GNSS) loss failsafe](../config/safety.md#position-gnss-loss-failsafe) configurable delay (`COM_POS_FS_DELAY`) has been removed.
|
||||
The failsafe will now trigger 1 second after position has been lost. ([PX4-Autopilot#24063](https://github.com/PX4/PX4-Autopilot/pull/24063)).
|
||||
- [Log Encryption](../dev_log/log_encryption.md) now generates an encrypted log that contains the public-key-encrypted symmetric key that can be used to decrypt it, instead of putting the key into a separate file.
|
||||
This makes log decryption much easier, as there is no need to download or identify a separate key file.
|
||||
([PX4-Autopilot#24024](https://github.com/PX4/PX4-Autopilot/pull/24024)).
|
||||
- The generic mission command timeout [MIS_COMMAND_TOUT](../advanced_config/parameter_reference.md#MIS_COMMAND_TOUT) parameter replaces the delivery-specific `MIS_PD_TO` parameter.
|
||||
Mission commands that may take some time to complete, such as those for controlling gimbals, winches, and grippers, will progress to the next item when either feedback is received or the timeout expires.
|
||||
This is often used to provide a minimum delay for hardware that does not provide completion feedback, so that it can reach the commanded state before the mission progresses.
|
||||
([PX4-Autopilot#23960](https://github.com/PX4/PX4-Autopilot/pull/23960)).
|
||||
- **[uORB]** Introduce a [version field](../middleware/uorb.md#message-versioning) for a subset of uORB messages ([PX4-Autopilot#23850](https://github.com/PX4/PX4-Autopilot/pull/23850))
|
||||
- [Compass calibration](../config/compass.md) disables internal compasses if an external compass is available.
|
||||
This typically reduces false warnings due to magnetometer inconsistencies.
|
||||
([PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316)).
|
||||
- Уточнюється
|
||||
|
||||
### Управління
|
||||
|
||||
@ -71,26 +56,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### Симуляція
|
||||
|
||||
- [SIH]:
|
||||
- The SIH on SITL [custom takeoff location](../sim_sih/index.md#set-custom-takeoff-location) in now set using the normal unscaled GPS position values, where previously the value needed to be multiplied by 1E7.
|
||||
([PX4-Autopilot#23363](https://github.com/PX4/PX4-Autopilot/pull/23363)).
|
||||
- SIH now supports the standard VTOL airframe
|
||||
([PX4-Autopilot#24175](https://github.com/PX4/PX4-Autopilot/pull/24175)).
|
||||
- [Gazebo]:
|
||||
- Gazebo Harmonic LTS release replaces Gazebo Garden as the version supported by PX4.
|
||||
The default installer scripts (used for CI) and documentation have been updated.
|
||||
This is required because Garden end-of-life is Nov 2024.
|
||||
([PX4-Autopilot#23603](https://github.com/PX4/PX4-Autopilot/pull/23603))
|
||||
- New vehicle model `x500_lidar_2d` — [x500 Quadrotor with 2D Lidar](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-2d-lidar). ([PX4-Autopilot#22418](https://github.com/PX4/PX4-Autopilot/pull/22418), [PX4-gazebo-models#41](https://github.com/PX4/PX4-gazebo-models/pull/41)).
|
||||
- New vehicle model `x500_lidar_front` — [X500 Quadrotor with 1D LIDAR (Front-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-front-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `x500_lidar_down` — [X500 Quadrotor with 1D LIDAR (Down-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-down-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `r1_rover` — [Aion Robotics R1 Rover](../sim_gazebo_gz/vehicles.md#differential-rover) ([PX4-Autopilot#22402](https://github.com/PX4/PX4-Autopilot/pull/22402) and [PX4-gazebo-models#21](https://github.com/PX4/PX4-gazebo-models/pull/21)).
|
||||
- New vehicle model `rover_ackermann` — [Ackermann Rover](../sim_gazebo_gz/vehicles.md#ackermann-rover) ([PX4-Autopilot#23383](https://github.com/PX4/PX4-Autopilot/pull/23383) and [PX4-gazebo-models#46](https://github.com/PX4/PX4-gazebo-models/pull/46)).
|
||||
- New vehicle model `x500_gimbal` — [Quadrotor(x500) with gimbal (Front-facing) in Gazebo](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-gimbal-front-facing) ([PX4-Autopilot#23382](https://github.com/PX4/PX4-Autopilot/pull/23382) and [PX4-gazebo-models#47](https://github.com/PX4/PX4-gazebo-models/pull/47) and [PX4-gazebo-models#70](https://github.com/PX4/PX4-gazebo-models/pull/70)).
|
||||
- New vehicle model `quadtailsitter` — [Quad Tailsitter VTOL](../sim_gazebo_gz/vehicles.md#quad-tailsitter-vtol) ([PX4-Autopilot#23943](https://github.com/PX4/PX4-Autopilot/pull/23943) and [PX4-gazebo-models#65](https://github.com/PX4/PX4-gazebo-models/pull/65)).
|
||||
- New vehicle model `tiltrotor` — [Tiltrotor VTOL](../sim_gazebo_gz/vehicles.md#tiltrotor-vtol) ([PX4-Autopilot#24028](https://github.com/PX4/PX4-Autopilot/pull/24028) and [PX4-gazebo-models#66](https://github.com/PX4/PX4-gazebo-models/pull/66)).
|
||||
- [Faster than Real-time Simulation](../simulation/index.md#simulation_speed) ([PX4-Autopilot#24421](https://github.com/PX4/PX4-Autopilot/pull/24421), [PX4-Autopilot#23783](https://github.com/PX4/PX4-Autopilot/pull/23783))
|
||||
- [Moving platform simulation](../sim_gazebo_gz/worlds#moving-platform) ([PX4-Autopilot#24471](https://github.com/PX4/PX4-Autopilot/pull/24471))
|
||||
- Уточнюється
|
||||
|
||||
### Ethernet
|
||||
|
||||
@ -98,7 +64,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### uXRCE-DDS / ROS2
|
||||
|
||||
- **[Feature]** <Badge type="warning" text="Experimental"/> [ROS 2 Message Translation Node](../ros2/px4_ros2_msg_translation_node.md) to translate PX4 messages from one definition version to another dynamically ([PX4-Autopilot#24113](https://github.com/PX4/PX4-Autopilot/pull/24113))
|
||||
- [PX4 ROS 2 Interface Library](../ros2/px4_ros2_control_interface.md) support for [Fixed Wing lateral/longitudinal setpoint](../ros2/px4_ros2_control_interface.md#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype) (`FwLateralLongitudinalSetpointType`) and [VTOL transitions](../ros2/px4_ros2_control_interface.md#controlling-a-vtol). ([PX4-Autopilot#24056](https://github.com/PX4/PX4-Autopilot/pull/24056)).
|
||||
|
||||
### MAVLink
|
||||
|
||||
@ -106,8 +72,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### Мульти-Ротор
|
||||
|
||||
- Allow system-default [multicopter orbit mode](../flight_modes_mc/orbit.md) yaw behaviour to be configured, using the parameter [MC_ORBIT_YAW_MOD](../advanced_config/parameter_reference.md#MC_ORBIT_YAW_MOD) ([PX4-Autopilot#23358](https://github.com/PX4/PX4-Autopilot/pull/23358))
|
||||
- Adapted the [Collision Prevention](../computer_vision/collision_prevention.md) implementation to work in the default manual flight mode (Acceleration Based) [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE). ([PX4-Autopilot#23507](https://github.com/PX4/PX4-Autopilot/pull/23507)
|
||||
- Уточнюється
|
||||
|
||||
### VTOL
|
||||
|
||||
@ -115,29 +80,11 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### Літак з фіксованим крилом
|
||||
|
||||
- Improvement: Fixed-wing auto takeoff: enable setting takeoff flaps for hand/catapult launch. [PX4-Autopilot#23460](https://github.com/PX4/PX4-Autopilot/pull/23460)
|
||||
- Уточнюється
|
||||
|
||||
### Ровер
|
||||
|
||||
This release contains a major rework for the rover support in PX4:
|
||||
|
||||
- Complete restructure of the [rover related documentation](../frames_rover/index.md).
|
||||
- New firmware build specifically for [rovers](../frames_rover/index.md#flashing-the-rover-build).
|
||||
- New module dedicated to [Ackermann rovers](../frames_rover/ackermann.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/ackermann.md#manual-mode), [acro mode](../flight_modes_rover/ackermann.md#acro-mode), [position mode](../flight_modes_rover/ackermann.md#position-mode) and [auto modes](../flight_modes_rover/ackermann.md#auto-modes).
|
||||
- New module dedicated to [differential rovers](../frames_rover/differential.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/differential.md#manual-mode), [acro mode](../flight_modes_rover/differential.md#acro-mode), [stabilized mode](../flight_modes_rover/differential.md#stabilized-mode), [position mode](../flight_modes_rover/differential.md#position-mode) and [auto modes](../flight_modes_rover/differential.md#auto-modes).
|
||||
- New module dedicated to [mecanum rovers](../frames_rover/mecanum.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/mecanum.md#manual-mode), [acro mode](../flight_modes_rover/mecanum.md#acro-mode), [stabilized mode](../flight_modes_rover/mecanum.md#stabilized-mode), [position mode](../flight_modes_rover/mecanum.md#position-mode) and [auto modes](../flight_modes_rover/mecanum.md#auto-modes).
|
||||
- Restructure of the [rover airframe](../airframes/airframe_reference.md#rover) numbering convention ([PX4-Autopilot#23506](https://github.com/PX4/PX4-Autopilot/pull/23506)).
|
||||
This also introduces several [new rover airframes](../airframes/airframe_reference.md#rover):
|
||||
- Generic Differential Rover `50000`.
|
||||
- Generic Ackermann Rover `51000`.
|
||||
- Axial SCX10 2 Trail Honcho `51001`.
|
||||
- Generic Mecanum Rover `52000`.
|
||||
- Library for the [pure pursuit guidance algorithm](../config_rover/differential.md#pure-pursuit-guidance-logic) that is shared by all the rover modules.
|
||||
- [Simulation](../frames_rover/index.md#simulation) for differential-steering and Ackermann rovers in gazebo (for release notes see `r1_rover` and `rover_ackermann` in [simulation](#simulation)).
|
||||
- Deprecation of the [rover position control](../frames_rover/rover_position_control.md) module: Note that the legacy rover module still exists but has been superseded by the new dedicated modules.
|
||||
- Уточнюється
|
||||
|
||||
### ROS 2
|
||||
|
||||
|
||||
@ -346,7 +346,7 @@ private:
|
||||
Наступні розділи надають список підтримуваних типів установок:
|
||||
|
||||
- GotoSetpointType: Плавне позиціонування та (за бажанням) керування курсом
|
||||
- [FwLateralLongitudinalSetpointType](#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype): Direct control of lateral and longitudinal fixed wing dynamics
|
||||
- [FwLateralLongitudinalSetpointType](#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype): <Badge type="tip" text="main (planned for: PX4 v1.17)" /> Direct control of lateral and longitudinal fixed wing dynamics
|
||||
- DirectActuatorsSetpointType: Пряме керування моторами та установками сервоприводів польотних поверхонь
|
||||
|
||||
:::tip
|
||||
@ -408,7 +408,7 @@ _goto_setpoint->update(
|
||||
|
||||
#### Fixed-Wing Lateral and Longitudinal Setpoint (FwLateralLongitudinalSetpointType)
|
||||
|
||||
<Badge type="warning" text="Fixed wing only" />
|
||||
<Badge type="warning" text="Fixed wing only" /> <Badge type="tip" text="main (planned for: PX4 v1.17)" />
|
||||
|
||||
:::info
|
||||
This setpoint type is supported for fixed-wing vehicles and for VTOLs in fixed-wing mode.
|
||||
@ -550,7 +550,7 @@ and [`FW_THR_MAX`](../advanced_config/parameter_reference.md#FW_THR_MAX).
|
||||
|
||||
### Controlling a VTOL
|
||||
|
||||
<Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
To control a VTOL in an external flight mode, ensure you're returning the correct setpoint type based on the current flight configuration:
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# PX4 ROS 2 Message Translation Node
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
The message translation node allows ROS 2 applications that were compiled against different versions of the PX4 messages to interwork with newer versions of PX4, and vice versa, without having to change either the application or the PX4 side.
|
||||
|
||||
@ -207,7 +207,7 @@ Message translations can be either _direct_ or _generic_.
|
||||
|
||||
### File Structure
|
||||
|
||||
Starting from PX4 v1.16 (main), the PX4-Autopilot `msg/` and `srv/` directories are structured as follows:
|
||||
Starting from PX4 v1.16, the PX4-Autopilot `msg/` and `srv/` directories are structured as follows:
|
||||
|
||||
```
|
||||
PX4-Autopilot
|
||||
|
||||
@ -34,7 +34,7 @@ The generator uses the uORB message definitions in the source tree: [PX4-Autopil
|
||||
ROS 2 applications need to be built in a workspace that has the _same_ message definitions that were used to create the uXRCE-DDS client module in the PX4 Firmware.
|
||||
You can include these by cloning the interface package [PX4/px4_msgs](https://github.com/PX4/px4_msgs) into your ROS 2 workspace (branches in the repo correspond to the messages for different PX4 releases).
|
||||
|
||||
Starting from PX4 v1.16 (main) in which [message versioning](../middleware/uorb.md#message-versioning) was introduced, ROS2 applications may use a different version of message definitions than those used to build PX4.
|
||||
Starting from PX4 v1.16, in which [message versioning](../middleware/uorb.md#message-versioning) was introduced, ROS2 applications may use a different version of message definitions than those used to build PX4.
|
||||
This requires the [ROS 2 Message Translation Node](../ros2/px4_ros2_msg_translation_node.md) to be running to ensure that messages can be converted and exchanged correctly.
|
||||
|
||||
Note that the micro XRCE-DDS _agent_ itself has no dependency on client-side code.
|
||||
@ -378,7 +378,7 @@ accelerometer_integral_dt: 4739
|
||||
|
||||
#### (Optional) Starting the Translation Node
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="tip" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
This example is built with PX4 and ROS2 versions that use the same message definitions.
|
||||
If you were to use incompatible [message versions](../middleware/uorb.md#message-versioning) you would need to install and run the [Message Translation Node](./px4_ros2_msg_translation_node.md) as well, before running the example:
|
||||
|
||||
@ -75,7 +75,7 @@ World with walls that is designed for testing [collision prevention](../computer
|
||||
|
||||
## Moving Platform
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" />
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
[Empty world](#default) with the addition of a flat moving platform, to simulate drone operations from moving vehicles like ships or trucks. The platform is controlled by a plugin which is included in the world. The platform is at a height of 2m, so place the vehicle on it with:
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ Operating in the 2.4GHz frequency band, it allows unrestricted global use withou
|
||||
|
||||
- **Frequency Band:** 2.4GHz
|
||||
- **Speed:** Up to 11 Mbps (adjustable)
|
||||
- **Range:** Up to 500 meters (varies upon environments)
|
||||
- **Range:** Up to 1000 meters (varies upon environments)
|
||||
- **Payload Capacity:** Up to 1024 bytes
|
||||
|
||||
### Network Schemes
|
||||
|
||||
@ -725,12 +725,13 @@
|
||||
- [AirspeedValidatedV0](msg_docs/AirspeedValidatedV0.md)
|
||||
- [VehicleAttitudeSetpointV0](msg_docs/VehicleAttitudeSetpointV0.md)
|
||||
- [VehicleStatusV0](msg_docs/VehicleStatusV0.md)
|
||||
- [MAVLink通讯](middleware/mavlink.md)
|
||||
- [MAVLink Messaging](mavlink/index.md)
|
||||
- [Adding Messages](mavlink/adding_messages.md)
|
||||
- [Streaming Messages](mavlink/streaming_messages.md)
|
||||
- [Receiving Messages](mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](mavlink/custom_messages.md)
|
||||
- [Standard Modes Protocol](mavlink/standard_modes.md)
|
||||
- [Protocols/Microservices](mavlink/protocols.md)
|
||||
- [Standard Modes Protocol](mavlink/standard_modes.md)
|
||||
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](middleware/uxrce_dds.md)
|
||||
- [模块 & 命令](modules/modules_main.md)
|
||||
- [自动调参](modules/modules_autotune.md)
|
||||
@ -860,6 +861,7 @@
|
||||
|
||||
- [版本发布](releases/index.md)
|
||||
- [main (alpha)](releases/main.md)
|
||||
- [1.16 (release candidate)](releases/1.16.md)
|
||||
- [1.15 (stable)](releases/1.15.md)
|
||||
- [1.14](releases/1.14.md)
|
||||
- [1.13](releases/1.13.md)
|
||||
|
||||
@ -12,7 +12,7 @@ To use it you will need to build firmware with this feature enabled and then upl
|
||||
:::
|
||||
|
||||
:::tip
|
||||
Log encryption was has been improved in PX4 main (v1.16+) to generate a single encrypted log file that contains both encrypted log data, and an encrypted symmetric key that you can use to decrypt it (provided you can decrypt the symmetric key).
|
||||
Log encryption was has been improved in PX4 v1.16 to generate a single encrypted log file that contains both encrypted log data, and an encrypted symmetric key that you can use to decrypt it (provided you can decrypt the symmetric key).
|
||||
|
||||
In earlier versions the encrypted symmetric key was stored in a separate file.
|
||||
For more information see the [Log Encryption (PX4 v1.15)](https://docs.px4.io/v1.15/en/dev_log/log_encryption.html).
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
# Holybro Kakute H7 V2
|
||||
# Holybro Kakute H743-Wing
|
||||
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
:::warning
|
||||
PX4 does not manufacture this (or any) autopilot.
|
||||
@ -31,9 +33,7 @@ The board can be bought from one of the following shops (for example):
|
||||
| Buz-, Buz+ | Piezo buzzer | |
|
||||
| M1 to M14 | Motor signal outputs | |
|
||||
|
||||
<a id="bootloader"></a>
|
||||
|
||||
## PX4 Bootloader Update
|
||||
## PX4 Bootloader Update {#bootloader}
|
||||
|
||||
The board comes pre-installed with [Betaflight](https://github.com/betaflight/betaflight/wiki).
|
||||
Before the PX4 firmware can be installed, the _PX4 bootloader_ must be flashed.
|
||||
@ -50,7 +50,7 @@ make holybro_kakuteh7-wing_default
|
||||
## Installing PX4 Firmware
|
||||
|
||||
:::info
|
||||
KakuteH7-wing is supported with PX4 master & PX4 v1.16 or newer..
|
||||
KakuteH7-wing is supported in PX4 v1.16 or newer.
|
||||
Prior to that release you will need to manually build and install the firmware.
|
||||
:::
|
||||
|
||||
|
||||
@ -137,7 +137,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | 通信 | 描述 |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
|
||||
|
||||
@ -115,7 +115,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | 通信 | 描述 |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@ -140,7 +140,7 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
#### Mission commands
|
||||
|
||||
The following commands can be used in missions at time of writing (`main`/planned for `PX4 v1.16+`):
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | 通信 | 描述 |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Ackermann Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
An _Ackermann rover_ controls its direction by pointing the front wheels in the direction of travel — the [Ackermann steering geometry](https://en.wikipedia.org/wiki/Ackermann_steering_geometry) compensates for the fact that wheels on the inside and outside of the turn move at different rates.
|
||||
This kind of steering is used on most commercial vehicles, including cars, trucks etc.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Differential Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
A differential rover's motion is controlled using a differential drive mechanism, where the left and right wheel speeds are adjusted independently to achieve the desired forward speed and yaw rate.
|
||||
Forward motion is achieved by driving both wheels at the same speed in the same direction.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Mecanum Rovers
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="PX4 v1.16" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
A Mecanum rover is a type of mobile robot that uses Mecanum wheels to achieve omnidirectional movement. These wheels are unique because they have rollers mounted at a 45-degree angle around their circumference, allowing the rover to move not only forward and backward but also side-to-side and diagonally without needing to rotate first.
|
||||
Each wheel is driven by its own motor, and by controlling the speed and direction of each motor, the rover can move in any direction or spin in place.
|
||||
|
||||
89
docs/zh/mavlink/index.md
Normal file
89
docs/zh/mavlink/index.md
Normal file
@ -0,0 +1,89 @@
|
||||
# MAVLink通讯
|
||||
|
||||
[MAVLink](https://mavlink.io/en/) is a very lightweight messaging protocol that has been designed for the drone ecosystem.
|
||||
|
||||
PX4 uses _MAVLink_ to communicate with ground stations and MAVLink SDKs, such as _QGroundControl_ and [MAVSDK](https://mavsdk.mavlink.io/), and as the integration mechanism for connecting to drone components outside of the flight controller: companion computers, MAVLink enabled cameras, and so on.
|
||||
|
||||
This topic provides a brief overview of fundamental MAVLink concepts, such as messages, commands, and microservices.
|
||||
It also links instructions for how you can add PX4 support for:
|
||||
|
||||
- [Adding Standard Messages](../mavlink/adding_messages.md)
|
||||
- [Streaming MAVLink messages](../mavlink/streaming_messages.md)
|
||||
- [Handling incoming MAVLink messages (and writing to a uORB topic)](../mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](../mavlink/custom_messages.md)
|
||||
- [Protocols/Microservices](../mavlink/protocols.md)
|
||||
|
||||
:::info
|
||||
We do not yet cover _command_ handling and sending, or how to implement your own microservices.
|
||||
:::
|
||||
|
||||
## MAVLink Overview
|
||||
|
||||
MAVLink is a lightweight protocol that was designed for efficiently sending messages over unreliable low-bandwidth radio links.
|
||||
|
||||
_Messages_ are simplest and most "fundamental" definition in MAVLink, consisting of a name (e.g. [ATTITUDE](https://mavlink.io/en/messages/common.html#ATTITUDE)), id, and fields containing relevant data.
|
||||
They are deliberately lightweight, with a constrained size, and no semantics for resending and acknowledgement.
|
||||
Stand-alone messages are commonly used for streaming telemetry or status information, and for sending commands where no acknowledgement is required - such as setpoint commands sent at high rate.
|
||||
|
||||
[Microservices](../mavlink/protocols.md) are "meta protocols" built on top of MAVLink messages.
|
||||
They are used to communicate information that cannot be sent in a single message.
|
||||
|
||||
For example, the [Command Protocol](https://mavlink.io/en/services/command.html) is a service for sending commands that may need acknowledgement and retransmission (quality of service).
|
||||
Specific commands are defined as values of the [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) enumeration, such as the takeoff command [MAV_CMD_NAV_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_TAKEOFF), and include up to 7 numeric "param" values.
|
||||
The protocol sends a command by packaging the parameter values in a `COMMAND_INT` or `COMMAND_LONG` message, and waits for an acknowledgement with a result in a `COMMAND_ACK`.
|
||||
The command is automatically resent a number of times if no acknowledgment is received.
|
||||
Note that [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) definitions are also used to define mission actions, and that not all definitions are supported for use in commands/missions on PX4.
|
||||
|
||||
Others services include the [File Transfer Protocol](https://mavlink.io/en/services/ftp.html), [Camera Protocol](https://mavlink.io/en/services/camera.html), [Parameter Protocol](https://mavlink.io/en/services/parameter.html), and [Mission Protocol](https://mavlink.io/en/services/mission.html).
|
||||
For more information on what PX4 supports see [Microservices](../mavlink/protocols.md).
|
||||
|
||||
MAVLink messages, commands and enumerations are defined in [XML definition files](https://mavlink.io/en/guide/define_xml_element.html).
|
||||
The MAVLink toolchain includes code generators that create programming-language-specific libraries from these definitions for sending and receiving messages.
|
||||
Note that most generated libraries do not create code to implement microservices.
|
||||
|
||||
The MAVLink project standardizes a number of messages, commands, enumerations, and microservices, for exchanging data using the following definition files (note that higher level files _include_ the definitions of the files below them):
|
||||
|
||||
- [development.xml](https://mavlink.io/en/messages/development.html) — Definitions that are proposed to be part of the standard.
|
||||
The definitions move to `common.xml` if accepted following testing.
|
||||
- [common.xml](https://mavlink.io/en/messages/common.html) — A "library" of definitions meeting many common UAV use cases.
|
||||
These are supported by many flight stacks, ground stations, and MAVLink peripherals.
|
||||
Flight stacks that use these definitions are more likely to interoperate.
|
||||
- [standard.xml](https://mavlink.io/en/messages/standard.html) — Definitions that are actually standard.
|
||||
They are present on the vast majority of flight stacks and implemented in the same way.
|
||||
- [minimal.xml](https://mavlink.io/en/messages/minimal.html) — Definitions required by a minimal MAVLink implementation.
|
||||
|
||||
The project also hosts [dialect XML definitions](https://mavlink.io/en/messages/#dialects), which contain MAVLink definitions that are specific to a flight stack or other stakeholder.
|
||||
|
||||
The protocol relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
What this means is that in order to communicate both ends of the communication must use libraries generated from the same XML definition.
|
||||
|
||||
<!--
|
||||
The messages are sent over-the-wire in the "payload" of a [MAVLink packet](https://mavlink.io/en/guide/serialization.html#mavlink2_packet_format).
|
||||
In order to reduce the amount of information that must be sent, the packet does not include the message metadata, such as what fields are in the message and so on.
|
||||
Instead, the fields are serialized in a predefined order based on data size and XML definition order, and MAVLink relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
The shared identity of the message is conveyed by the message id, along with a CRC ("`CRC_EXTRA`") that uniquely identifies the message based on its name and id, and the field names and types.
|
||||
The receiving end of the communication will discard any packet for which the message id and the `CRC_EXTRA` do not match.
|
||||
-->
|
||||
|
||||
## PX4 and MAVLink
|
||||
|
||||
PX4 releases build `common.xml` MAVLink definitions by default, for the greatest compatibility with MAVLink ground stations, libraries, and external components such as MAVLink cameras.
|
||||
In the `main` branch, these are included from `development.xml` on SITL, and `common.xml` for other boards.
|
||||
|
||||
:::info
|
||||
To be part of a PX4 release, any MAVLink definitions that you use must be in `common.xml` (or included files such as `standard.xml` and `minimal.xml`).
|
||||
During development you can use definitions in `development.xml`.
|
||||
You will need to work with the [MAVLink team](https://mavlink.io/en/contributing/contributing.html) to define and contribute these definitions.
|
||||
:::
|
||||
|
||||
PX4 includes the [mavlink/mavlink](https://github.com/mavlink/mavlink) repo as a submodule under [/src/modules/mavlink](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/mavlink).
|
||||
This contains XML definition files in [/mavlink/messages/1.0/](https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/).
|
||||
|
||||
The build toolchain generates the MAVLink 2 C header files at build time.
|
||||
The XML file for which headers files are generated may be defined in the [PX4 kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) on a per-board basis, using the variable `CONFIG_MAVLINK_DIALECT`:
|
||||
|
||||
- For SITL `CONFIG_MAVLINK_DIALECT` is set to `development` in [boards/px4/sitl/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/sitl/default.px4board#L36).
|
||||
You can change this to any other definition file, but the file must include `common.xml`.
|
||||
- For other boards `CONFIG_MAVLINK_DIALECT` is not set by default, and PX4 builds the definitions in `common.xml` (these are build into the [mavlink module](../modules/modules_communication.md#mavlink) by default — search for `menuconfig MAVLINK_DIALECT` in [src/modules/mavlink/Kconfig](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/Kconfig#L10)).
|
||||
|
||||
The files are generated into the build directory: `/build/<build target>/mavlink/`.
|
||||
51
docs/zh/mavlink/protocols.md
Normal file
51
docs/zh/mavlink/protocols.md
Normal file
@ -0,0 +1,51 @@
|
||||
# MAVLink Microservices (Protocols)
|
||||
|
||||
MAVLink "microservices" are a protocols that use multiple messages exchanged between components to communicate more complicated information.
|
||||
For example, the [Command Protocol](https://mavlink.io/en/services/command.html) provides an efficient mechanism for packaging a command in a (particular) message and receiving acknowledgement of the command in another message.
|
||||
|
||||
MAVLink microservices are documented the [MAVLink Guide](https://mavlink.io/en/services/) (this is not exhaustive: not all messages are grouped into protocols and not all protocols are documented).
|
||||
|
||||
This section lists the services known to be supported/not supported by PX4 in this version.
|
||||
|
||||
## Supported Microservices
|
||||
|
||||
These services are known to be supported in some form:
|
||||
|
||||
- [Battery Protocol](https://mavlink.io/en/services/battery.html)
|
||||
- [BATTERY_STATUS](https://mavlink.io/en/messages/common.html#BATTERY_STATUS) and [BATTERY_INFO](https://mavlink.io/en/messages/common.html#BATTERY_STATUS) are streamed.
|
||||
- Camera Protocols
|
||||
- [Camera Protocol v2](https://mavlink.io/en/services/camera.html)
|
||||
- [Camera Definition](https://mavlink.io/en/services/camera_def.html)
|
||||
- [Command Protocol](https://mavlink.io/en/services/command.html)
|
||||
- [Component Metadata Protocol](https://mavlink.io/en/services/component_information.html)
|
||||
- [Events Interface](https://mavlink.io/en/services/events.html)
|
||||
- [File Transfer Protocol (FTP)](https://mavlink.io/en/services/ftp.html)
|
||||
- Gimbal Protocols
|
||||
- [Gimbal Protocol v2](https://mavlink.io/en/services/gimbal_v2.html)
|
||||
- Can be enabled by [Gimbal Configuration](../advanced/gimbal_control.md#mavlink-gimbal-mnt-mode-out-mavlink)
|
||||
- PX4 an act as a MAVLink Gimbal for one FC-connected Gimbal
|
||||
- [Heartbeat/Connection Protocol](https://mavlink.io/en/services/heartbeat.html)
|
||||
- [High Latency Protocol](https://mavlink.io/en/services/high_latency.html) — PX4 streams [HIGH_LATENCY2](https://mavlink.io/en/messages/common.html#HIGH_LATENCY2)
|
||||
- [Image Transmission Protocol](https://mavlink.io/en/services/image_transmission.html)
|
||||
- [Landing Target Protocol](https://mavlink.io/en/services/landing_target.html)
|
||||
- [Manual Control (Joystick) Protocol](https://mavlink.io/en/services/manual_control.html)
|
||||
- [MAVLink Id Assignment (sysid, compid)](https://mavlink.io/en/services/mavlink_id_assignment.html)
|
||||
- [Mission Protocol](https://mavlink.io/en/services/mission.html)
|
||||
- [Offboard Control Protocol](https://mavlink.io/en/services/offboard_control.html)
|
||||
- [Remote ID](../peripherals/remote_id.md) ([Open Drone ID Protocol](https://mavlink.io/en/services/opendroneid.html))
|
||||
- [Parameter Protocol](https://mavlink.io/en/services/parameter.html)
|
||||
- [Parameter Protocol Extended](https://mavlink.io/en/services/parameter_ext.html) — Allows setting string parameters. Used for setting string parameters set in camera definition files.
|
||||
- [Payload Protocol](https://mavlink.io/en/services/payload.html)
|
||||
- [Ping Protocol](https://mavlink.io/en/services/ping.html)
|
||||
- [Standard Modes Protocol](../mavlink/standard_modes.md)
|
||||
- [Terrain Protocol](https://mavlink.io/en/services/terrain.html)
|
||||
- [Time Synchronization](https://mavlink.io/en/services/timesync.html)
|
||||
- [Traffic Management (UTM/ADS-B)](https://mavlink.io/en/services/traffic_management.html)
|
||||
- [Arm Authorization Protocol](https://mavlink.io/en/services/arm_authorization.html)
|
||||
|
||||
## Unsupported
|
||||
|
||||
These services are not supported/used by PX4:
|
||||
|
||||
- [Illuminator Protocol](https://mavlink.io/en/services/illuminator.html)
|
||||
- [Tunnel Protocol](https://mavlink.io/en/services/tunnel.html)
|
||||
@ -1,87 +1 @@
|
||||
# MAVLink通讯
|
||||
|
||||
[MAVLink](https://mavlink.io/en/) is a very lightweight messaging protocol that has been designed for the drone ecosystem.
|
||||
|
||||
PX4 uses _MAVLink_ to communicate with ground stations and MAVLink SDKs, such as _QGroundControl_ and [MAVSDK](https://mavsdk.mavlink.io/), and as the integration mechanism for connecting to drone components outside of the flight controller: companion computers, MAVLink enabled cameras, and so on.
|
||||
|
||||
This topic provides a brief overview of fundamental MAVLink concepts, such as messages, commands, and microservices.
|
||||
It also links instructions for how you can add PX4 support for:
|
||||
|
||||
- [Adding Standard Messages](../mavlink/adding_messages.md)
|
||||
- [Streaming MAVLink messages](../mavlink/streaming_messages.md)
|
||||
- [Handling incoming MAVLink messages (and writing to a uORB topic)](../mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](../mavlink/custom_messages.md)
|
||||
|
||||
:::info
|
||||
We do not yet cover _command_ handling and sending, or how to implement your own microservices.
|
||||
:::
|
||||
|
||||
## MAVLink Overview
|
||||
|
||||
MAVLink is a lightweight protocol that was designed for efficiently sending messages over unreliable low-bandwidth radio links.
|
||||
|
||||
_Messages_ are simplest and most "fundamental" definition in MAVLink, consisting of a name (e.g. [ATTITUDE](https://mavlink.io/en/messages/common.html#ATTITUDE)), id, and fields containing relevant data.
|
||||
They are deliberately lightweight, with a constrained size, and no semantics for resending and acknowledgement.
|
||||
Stand-alone messages are commonly used for streaming telemetry or status information, and for sending commands where no acknowledgement is required - such as setpoint commands sent at high rate.
|
||||
|
||||
The [Command Protocol](https://mavlink.io/en/services/command.html) is a higher level protocol for sending commands that may need acknowledgement.
|
||||
Specific commands are defined as values of the [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) enumeration, such as the takeoff command [MAV_CMD_NAV_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_TAKEOFF), and include up to 7 numeric "param" values.
|
||||
The protocol sends a command by packaging the parameter values in a `COMMAND_INT` or `COMMAND_LONG` message, and waits for an acknowledgement with a result in a `COMMAND_ACK`.
|
||||
The command is resent automatically if no acknowledgment is received.
|
||||
Note that [MAV_CMD](https://mavlink.io/en/messages/common.html#mav_commands) definitions are also used to define mission actions, and that not all definitions are supported for use in commands/missions on PX4.
|
||||
|
||||
[Microservices](https://mavlink.io/en/services/) are other higher level protocols built on top of MAVLink messages.
|
||||
They are used to communicate information that cannot be sent in a single message, and to deliver features such as reliable communication.
|
||||
The command protocol described above is one such service.
|
||||
Others include the [File Transfer Protocol](https://mavlink.io/en/services/ftp.html), [Camera Protocol](https://mavlink.io/en/services/camera.html) and [Mission Protocol](https://mavlink.io/en/services/mission.html).
|
||||
|
||||
MAVLink messages, commands and enumerations are defined in [XML definition files](https://mavlink.io/en/guide/define_xml_element.html).
|
||||
The MAVLink toolchain includes code generators that create programming-language-specific libraries from these definitions for sending and receiving messages.
|
||||
Note that most generated libraries do not create code to implement microservices.
|
||||
|
||||
The MAVLink project standardizes a number of messages, commands, enumerations, and microservices, for exchanging data using the following definition files (note that higher level files _include_ the definitions of the files below them):
|
||||
|
||||
- [development.xml](https://mavlink.io/en/messages/development.html) — Definitions that are proposed to be part of the standard.
|
||||
The definitions move to `common.xml` if accepted following testing.
|
||||
- [common.xml](https://mavlink.io/en/messages/common.html) — A "library" of definitions meeting many common UAV use cases.
|
||||
These are supported by many flight stacks, ground stations, and MAVLink peripherals.
|
||||
Flight stacks that use these definitions are more likely to interoperate.
|
||||
- [standard.xml](https://mavlink.io/en/messages/standard.html) — Definitions that are actually standard.
|
||||
They are present on the vast majority of flight stacks and implemented in the same way.
|
||||
- [minimal.xml](https://mavlink.io/en/messages/minimal.html) — Definitions required by a minimal MAVLink implementation.
|
||||
|
||||
The project also hosts [dialect XML definitions](https://mavlink.io/en/messages/#dialects), which contain MAVLink definitions that are specific to a flight stack or other stakeholder.
|
||||
|
||||
The protocol relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
What this means is that in order to communicate both ends of the communication must use libraries generated from the same XML definition.
|
||||
|
||||
<!--
|
||||
The messages are sent over-the-wire in the "payload" of a [MAVLink packet](https://mavlink.io/en/guide/serialization.html#mavlink2_packet_format).
|
||||
In order to reduce the amount of information that must be sent, the packet does not include the message metadata, such as what fields are in the message and so on.
|
||||
Instead, the fields are serialized in a predefined order based on data size and XML definition order, and MAVLink relies on each end of the communication having a shared definition of what messages are being sent.
|
||||
The shared identity of the message is conveyed by the message id, along with a CRC ("`CRC_EXTRA`") that uniquely identifies the message based on its name and id, and the field names and types.
|
||||
The receiving end of the communication will discard any packet for which the message id and the `CRC_EXTRA` do not match.
|
||||
-->
|
||||
|
||||
## PX4 and MAVLink
|
||||
|
||||
PX4 releases build `common.xml` MAVLink definitions by default, for the greatest compatibility with MAVLink ground stations, libraries, and external components such as MAVLink cameras.
|
||||
In the `main` branch, these are included from `development.xml` on SITL, and `common.xml` for other boards.
|
||||
|
||||
:::info
|
||||
To be part of a PX4 release, any MAVLink definitions that you use must be in `common.xml` (or included files such as `standard.xml` and `minimal.xml`).
|
||||
During development you can use definitions in `development.xml`.
|
||||
You will need to work with the [MAVLink team](https://mavlink.io/en/contributing/contributing.html) to define and contribute these definitions.
|
||||
:::
|
||||
|
||||
PX4 includes the [mavlink/mavlink](https://github.com/mavlink/mavlink) repo as a submodule under [/src/modules/mavlink](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/mavlink).
|
||||
This contains XML definition files in [/mavlink/messages/1.0/](https://github.com/mavlink/mavlink/blob/master/message_definitions/v1.0/).
|
||||
|
||||
The build toolchain generates the MAVLink 2 C header files at build time.
|
||||
The XML file for which headers files are generated may be defined in the [PX4 kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) on a per-board basis, using the variable `CONFIG_MAVLINK_DIALECT`:
|
||||
|
||||
- For SITL `CONFIG_MAVLINK_DIALECT` is set to `development` in [boards/px4/sitl/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/sitl/default.px4board#L36).
|
||||
You can change this to any other definition file, but the file must include `common.xml`.
|
||||
- For other boards `CONFIG_MAVLINK_DIALECT` is not set by default, and PX4 builds the definitions in `common.xml` (these are build into the [mavlink module](../modules/modules_communication.md#mavlink) by default — search for `menuconfig MAVLINK_DIALECT` in [src/modules/mavlink/Kconfig](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/Kconfig#L10)).
|
||||
|
||||
The files are generated into the build directory: `/build/<build target>/mavlink/`.
|
||||
<Redirect to="../mavlink/" />
|
||||
|
||||
@ -116,9 +116,9 @@ As there are external tools using uORB messages from log files, such as [Flight
|
||||
|
||||
## Message Versioning
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.16+)" />
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
Optional message versioning was introduced in the `main` branch (planned for PX4 v1.16+) to make it easier to maintain compatibility between PX4 and ROS 2 versions compiled against different message definitions.
|
||||
Optional message versioning was introduced PX4 v1.16 to make it easier to maintain compatibility between PX4 and ROS 2 versions compiled against different message definitions.
|
||||
Versioned messages are designed to remain more stable over time compared to their non-versioned counterparts, as they are intended to be used across multiple releases of PX4 and external systems, ensuring greater compatibility over longer periods.
|
||||
|
||||
Versioned messages include an additional field `uint32 MESSAGE_VERSION = x`, where `x` corresponds to the current version of the message.
|
||||
|
||||
@ -430,16 +430,17 @@ publications:
|
||||
|
||||
- topic: /fmu/out/collision_constraints
|
||||
type: px4_msgs::msg::CollisionConstraints
|
||||
rate_limit: 50. # Limit max publication rate to 50 Hz
|
||||
|
||||
...
|
||||
|
||||
- topic: /fmu/out/vehicle_odometry
|
||||
type: px4_msgs::msg::VehicleOdometry
|
||||
rate_limit: 150.
|
||||
# Use default publication rate limit of 100 Hz
|
||||
|
||||
- topic: /fmu/out/vehicle_status
|
||||
type: px4_msgs::msg::VehicleStatus
|
||||
rate_limit: 50.
|
||||
rate_limit: 5.
|
||||
|
||||
- topic: /fmu/out/vehicle_trajectory_waypoint_desired
|
||||
type: px4_msgs::msg::VehicleTrajectoryWaypoint
|
||||
|
||||
221
docs/zh/releases/1.16.md
Normal file
221
docs/zh/releases/1.16.md
Normal file
@ -0,0 +1,221 @@
|
||||
# PX4-Autopilot v1.16.0 Release Notes
|
||||
|
||||
<Badge type="info" text="Candidate Release" />
|
||||
|
||||
<script setup>
|
||||
import { useData } from 'vitepress'
|
||||
const { site } = useData();
|
||||
</script>
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page is on a release branch, and hence possibly out of date. <a href="https://docs.px4.io/main/en/releases/main.html">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
This document covers all changes in PX4 v1.16.0 since the previous stable release ([PX4 v1.15.0](../releases/1.15.md)).
|
||||
|
||||
:::info
|
||||
These notes include only changes merged in 2023 and later — commits before 2023 are not listed.
|
||||
:::
|
||||
|
||||
## Read Before Upgrading
|
||||
|
||||
Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
## Major Changes
|
||||
|
||||
- **Rover support rework**
|
||||
- New dedicated firmware build for rovers (airframe IDs 50000–52000)
|
||||
- Separate modules for Ackermann, differential and mecanum rovers, each with manual, acro, stabilized, position and auto modes
|
||||
- Shared pure-pursuit guidance library for all rover modules
|
||||
- Legacy rover position control module deprecated in favor of the new modules
|
||||
|
||||
## Upgrade Guide
|
||||
|
||||
- [PX4-Autopilot#24648](https://github.com/PX4/PX4-Autopilot/pull/24648): Added setting default for EKF2_EV_CTRL to 15 for VOXL 2 boards
|
||||
- [PX4-Autopilot#22517](https://github.com/PX4/PX4-Autopilot/pull/22517): Change default ethernet IP
|
||||
- [PX4-Autopilot#24602](https://github.com/PX4/PX4-Autopilot/pull/24602): remove serial port default from sf45 module
|
||||
|
||||
## Other changes
|
||||
|
||||
### Hardware Support
|
||||
|
||||
- **[New Hardware]** [PX4-Autopilot#23830](https://github.com/PX4/PX4-Autopilot/pull/23830): Boards: ARK FPV FC
|
||||
- **[New Hardware]** [PX4-Autopilot#23414](https://github.com/PX4/PX4-Autopilot/pull/23414): board: add cuav 7-nano
|
||||
- **[New Hardware]** [PX4-Autopilot#24769](https://github.com/PX4/PX4-Autopilot/pull/24769): add new board corvon743v1
|
||||
- **[New Hardware]** [PX4-Autopilot#24018](https://github.com/PX4/PX4-Autopilot/pull/24018): boards: bluerobotics: navigator: Add initial support
|
||||
- **[New Hardware]** [PX4-Autopilot#24147](https://github.com/PX4/PX4-Autopilot/pull/24147): boards: add new board micoair743-v2
|
||||
- **[New Hardware]** [PX4-Autopilot#23218](https://github.com/PX4/PX4-Autopilot/pull/23218): boards: add new board micoair h743
|
||||
- **[New Hardware]** [PX4-Autopilot#24512](https://github.com/PX4/PX4-Autopilot/pull/24512): boards: Add FMUv6s target
|
||||
- **[New Hardware]** [PX4-Autopilot#23927](https://github.com/PX4/PX4-Autopilot/pull/23927): manifest: Add Skynode S baseboard
|
||||
- **[New Hardware]** [PX4-Autopilot#23257](https://github.com/PX4/PX4-Autopilot/pull/23257): Add Tropic VMU board support (Baseboard for Teensy 4.1)
|
||||
- **[New Hardware]** [PX4-Autopilot#23697](https://github.com/PX4/PX4-Autopilot/pull/23697): boards: add new board X-MAV AP-H743v2
|
||||
- **[New Hardware]** [PX4-Autopilot#23551](https://github.com/PX4/PX4-Autopilot/pull/23551): 3DR boards: Support for 3DR Control Zero H7 OEM Rev G
|
||||
- **[New Hardware]** [PX4-Autopilot#23623](https://github.com/PX4/PX4-Autopilot/pull/23623): new board support ZeroOne x6
|
||||
|
||||
### Common
|
||||
|
||||
- [Optical flow scaling factor - SENS_FLOW_SCALE](../sensor/optical_flow.md#scale-factor). ([PX4-Autopilot#23936](https://github.com/PX4/PX4-Autopilot/pull/23936)).
|
||||
|
||||
- [PX4-Autopilot#22813](https://github.com/PX4/PX4-Autopilot/pull/22813): Reintroduce optional parameter versioning mechanism for airframe maintainers
|
||||
|
||||
- [Battery level estimation improvements](../config/battery.md). ([PX4-Autopilot#23205](https://github.com/PX4/PX4-Autopilot/pull/23205)).
|
||||
- [Voltage-based estimation with load compensation](../config/battery.md#voltage-based-estimation-with-load-compensation) now uses a real-time estimate of the internal resistance of the battery to compensate voltage drops under load (with increased current), providing a better capacity estimate than with the raw measured voltage.
|
||||
- Thrust-based load compensation has been removed (along with the `BATn_V_LOAD_DROP` parameters, where `n` is the battery number).
|
||||
|
||||
- The [Position (GNSS) loss failsafe](../config/safety.md#position-gnss-loss-failsafe) configurable delay (`COM_POS_FS_DELAY`) has been removed.
|
||||
The failsafe will now trigger 1 second after position has been lost. ([PX4-Autopilot#24063](https://github.com/PX4/PX4-Autopilot/pull/24063)).
|
||||
|
||||
- [Log Encryption](../dev_log/log_encryption.md) now generates an encrypted log that contains the public-key-encrypted symmetric key that can be used to decrypt it, instead of putting the key into a separate file.
|
||||
This makes log decryption much easier, as there is no need to download or identify a separate key file.
|
||||
([PX4-Autopilot#24024](https://github.com/PX4/PX4-Autopilot/pull/24024)).
|
||||
|
||||
- The generic mission command timeout [MIS_COMMAND_TOUT](../advanced_config/parameter_reference.md#MIS_COMMAND_TOUT) parameter replaces the delivery-specific `MIS_PD_TO` parameter.
|
||||
Mission commands that may take some time to complete, such as those for controlling gimbals, winches, and grippers, will progress to the next item when either feedback is received or the timeout expires.
|
||||
This is often used to provide a minimum delay for hardware that does not provide completion feedback, so that it can reach the commanded state before the mission progresses.
|
||||
([PX4-Autopilot#23960](https://github.com/PX4/PX4-Autopilot/pull/23960)).
|
||||
|
||||
- **[uORB]** Introduce a [version field](../middleware/uorb.md#message-versioning) for a subset of uORB messages ([PX4-Autopilot#23850](https://github.com/PX4/PX4-Autopilot/pull/23850))
|
||||
|
||||
- [Compass calibration](../config/compass.md) disables internal compasses if an external compass is available.
|
||||
This typically reduces false warnings due to magnetometer inconsistencies.
|
||||
([PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316)).
|
||||
|
||||
### Control
|
||||
|
||||
- [PX4-Autopilot#23863](https://github.com/PX4/PX4-Autopilot/pull/23863): [Sponsored by ARK] Bidirectional DShot
|
||||
|
||||
- [PX4-Autopilot#24196](https://github.com/PX4/PX4-Autopilot/pull/24196): Make control allocation and actuator effectiveness a non-module-specific library
|
||||
|
||||
- [PX4-Autopilot#24221](https://github.com/PX4/PX4-Autopilot/pull/24221): Spacecraft Build and Bare Control Allocator
|
||||
|
||||
- Configurable multicopter orbit-mode yaw via `MC_ORBIT_YAW_MOD` ([PX4-Autopilot#23358](https://github.com/PX4/PX4-Autopilot/pull/23358))
|
||||
|
||||
- Collision prevention now works in manual (acceleration-based) flight mode (`MPC_POS_MODE`) ([PX4-Autopilot#23507](https://github.com/PX4/PX4-Autopilot/pull/23507))
|
||||
|
||||
### Estimation
|
||||
|
||||
- [PX4-Autopilot#23854](https://github.com/PX4/PX4-Autopilot/pull/23854): EKF2: ellipsoidal earth navigation
|
||||
|
||||
- [PX4-Autopilot#23263](https://github.com/PX4/PX4-Autopilot/pull/23263): EKF2: Terrain state
|
||||
|
||||
- [PX4-Autopilot#23185](https://github.com/PX4/PX4-Autopilot/pull/23185): ekf2: add mag type init
|
||||
|
||||
- [PX4-Autopilot#23436](https://github.com/PX4/PX4-Autopilot/pull/23436): ekf2: Optical flow enabled by default
|
||||
|
||||
- Position-loss failsafe delay removed; triggers 1 s after loss (see Common)
|
||||
|
||||
### 传感器
|
||||
|
||||
- [PX4-Autopilot#23656](https://github.com/PX4/PX4-Autopilot/pull/23656): Implemented AUAV absolute/differential pressure sensor support
|
||||
|
||||
- [PX4-Autopilot#23639](https://github.com/PX4/PX4-Autopilot/pull/23639): Implemented temperature sensor support for INA228 / INA238
|
||||
|
||||
- [PX4-Autopilot#22744](https://github.com/PX4/PX4-Autopilot/pull/22744): Add Ublox ZED-F9P-15B
|
||||
|
||||
- [PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316): Mag cal: automatically disable internal mags if external ones are available
|
||||
|
||||
- [PX4-Autopilot#23064](https://github.com/PX4/PX4-Autopilot/pull/23064): BMP581: Add Bosch BMP581 barometer
|
||||
|
||||
- [PX4-Autopilot#22914](https://github.com/PX4/PX4-Autopilot/pull/22914): Murata SCH16T IMU driver
|
||||
|
||||
- [PX4-Autopilot#23023](https://github.com/PX4/PX4-Autopilot/pull/23023): ST IIS2MDC Magnetometer driver
|
||||
|
||||
- [PX4-Autopilot#24121](https://github.com/PX4/PX4-Autopilot/pull/24121): Include distance sensor in dds topics
|
||||
|
||||
- [PX4-Autopilot#23925](https://github.com/PX4/PX4-Autopilot/pull/23925): drivers: magnetometer: mmc5983ma: Add SPI support
|
||||
|
||||
- [PX4-Autopilot#23909](https://github.com/PX4/PX4-Autopilot/pull/23909): drivers/magnetometer/ak09916: Add support to AK09915
|
||||
|
||||
- [PX4-Autopilot#23362](https://github.com/PX4/PX4-Autopilot/pull/23362): Add Bosch BMM350 magnetometer
|
||||
|
||||
- [PX4-Autopilot#24316](https://github.com/PX4/PX4-Autopilot/pull/24316): Compass calibration now disables internal compass when external unit present, reducing false warnings
|
||||
|
||||
### 仿真
|
||||
|
||||
- **SIH**:
|
||||
- The SIH on SITL [custom takeoff location](../sim_sih/index.md#set-custom-takeoff-location) in now set using the normal unscaled GPS position values, where previously the value needed to be multiplied by 1E7.
|
||||
([PX4-Autopilot#23363](https://github.com/PX4/PX4-Autopilot/pull/23363)).
|
||||
- SIH now supports the standard VTOL airframe
|
||||
([PX4-Autopilot#24175](https://github.com/PX4/PX4-Autopilot/pull/24175)).
|
||||
- **Gazebo**:
|
||||
- Gazebo Harmonic LTS release replaces Gazebo Garden as the version supported by PX4.
|
||||
The default installer scripts (used for CI) and documentation have been updated.
|
||||
This is required because Garden end-of-life is Nov 2024.
|
||||
([PX4-Autopilot#23603](https://github.com/PX4/PX4-Autopilot/pull/23603))
|
||||
- New vehicle model `x500_lidar_2d` — [x500 Quadrotor with 2D Lidar](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-2d-lidar). ([PX4-Autopilot#22418](https://github.com/PX4/PX4-Autopilot/pull/22418), [PX4-gazebo-models#41](https://github.com/PX4/PX4-gazebo-models/pull/41)).
|
||||
- New vehicle model `x500_lidar_front` — [X500 Quadrotor with 1D LIDAR (Front-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-front-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `x500_lidar_down` — [X500 Quadrotor with 1D LIDAR (Down-facing)](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-1d-lidar-down-facing). ([PX4-Autopilot#23879](https://github.com/PX4/PX4-Autopilot/pull/23879), [PX4-gazebo-models#62](https://github.com/PX4/PX4-gazebo-models/pull/62/files)).
|
||||
- New vehicle model `r1_rover` — [Aion Robotics R1 Rover](../sim_gazebo_gz/vehicles.md#differential-rover) ([PX4-Autopilot#22402](https://github.com/PX4/PX4-Autopilot/pull/22402) and [PX4-gazebo-models#21](https://github.com/PX4/PX4-gazebo-models/pull/21)).
|
||||
- New vehicle model `rover_ackermann` — [Ackermann Rover](../sim_gazebo_gz/vehicles.md#ackermann-rover) ([PX4-Autopilot#23383](https://github.com/PX4/PX4-Autopilot/pull/23383) and [PX4-gazebo-models#46](https://github.com/PX4/PX4-gazebo-models/pull/46)).
|
||||
- New vehicle model `x500_gimbal` — [Quadrotor(x500) with gimbal (Front-facing) in Gazebo](../sim_gazebo_gz/vehicles.md#x500-quadrotor-with-gimbal-front-facing) ([PX4-Autopilot#23382](https://github.com/PX4/PX4-Autopilot/pull/23382) and [PX4-gazebo-models#47](https://github.com/PX4/PX4-gazebo-models/pull/47) and [PX4-gazebo-models#70](https://github.com/PX4/PX4-gazebo-models/pull/70)).
|
||||
- New vehicle model `quadtailsitter` — [Quad Tailsitter VTOL](../sim_gazebo_gz/vehicles.md#quad-tailsitter-vtol) ([PX4-Autopilot#23943](https://github.com/PX4/PX4-Autopilot/pull/23943) and [PX4-gazebo-models#65](https://github.com/PX4/PX4-gazebo-models/pull/65)).
|
||||
- New vehicle model `tiltrotor` — [Tiltrotor VTOL](../sim_gazebo_gz/vehicles.md#tiltrotor-vtol) ([PX4-Autopilot#24028](https://github.com/PX4/PX4-Autopilot/pull/24028) and [PX4-gazebo-models#66](https://github.com/PX4/PX4-gazebo-models/pull/66)).
|
||||
- [Faster than Real-time Simulation](../simulation/index.md#simulation_speed) ([PX4-Autopilot#24421](https://github.com/PX4/PX4-Autopilot/pull/24421), [PX4-Autopilot#23783](https://github.com/PX4/PX4-Autopilot/pull/23783))
|
||||
- [PX4-Autopilot#24471](https://github.com/PX4/PX4-Autopilot/pull/24471): Gazebo: Moving platform
|
||||
|
||||
### uXRCE-DDS / ROS2
|
||||
|
||||
- **[Feature]** [PX4-Autopilot#24113](https://github.com/PX4/PX4-Autopilot/pull/24113): <Badge type="warning" text="Experimental"/> [ROS 2 Message Translation Node](../ros2/px4_ros2_msg_translation_node.md) to translate PX4 messages from one definition version to another dynamically
|
||||
- [PX4-Autopilot#24582](https://github.com/PX4/PX4-Autopilot/pull/24582): dds_topics: add vtol_vehicle_status
|
||||
- [PX4-Autopilot#24583](https://github.com/PX4/PX4-Autopilot/pull/24583): dds_topics: add home_position
|
||||
|
||||
### MAVLink
|
||||
|
||||
- TBD
|
||||
|
||||
### Multi-Rotor
|
||||
|
||||
- [PX4-Autopilot#24173](https://github.com/PX4/PX4-Autopilot/pull/24173): [Multirotor] add yaw torque low pass filter
|
||||
|
||||
- [PX4-Autopilot#23943](https://github.com/PX4/PX4-Autopilot/pull/23943): Add gz model for quadtailsitter
|
||||
|
||||
- [PX4-Autopilot#23358](https://github.com/PX4/PX4-Autopilot/pull/23358): Allow system-default [multicopter orbit mode](../flight_modes_mc/orbit.md) yaw behaviour to be configured, using the parameter [MC_ORBIT_YAW_MOD](../advanced_config/parameter_reference.md#MC_ORBIT_YAW_MOD)
|
||||
|
||||
- [PX4-Autopilot#23507](https://github.com/PX4/PX4-Autopilot/pull/23507): Adapted the [Collision Prevention](../computer_vision/collision_prevention.md) implementation to work in the default manual flight mode (Acceleration Based) [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE).
|
||||
|
||||
### 垂直起降
|
||||
|
||||
- TBD
|
||||
|
||||
### Fixed-wing
|
||||
|
||||
- [PX4-Autopilot#24167](https://github.com/PX4/PX4-Autopilot/pull/24167): Fixedwing: fix wheel controller
|
||||
|
||||
- [PX4-Autopilot#23520](https://github.com/PX4/PX4-Autopilot/pull/23520): FixedWing: allow position control without valid global position
|
||||
|
||||
- Improvement: Fixed-wing auto takeoff: enable setting takeoff flaps for hand/catapult launch. [PX4-Autopilot#23460](https://github.com/PX4/PX4-Autopilot/pull/23460)
|
||||
|
||||
### 无人车
|
||||
|
||||
This release contains a major rework for the rover support in PX4:
|
||||
|
||||
- Complete restructure of the [rover related documentation](../frames_rover/index.md).
|
||||
- New firmware build specifically for [rovers](../frames_rover/index.md#flashing-the-rover-build).
|
||||
- New module dedicated to [Ackermann rovers](../frames_rover/ackermann.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/ackermann.md#manual-mode), [acro mode](../flight_modes_rover/ackermann.md#acro-mode), [position mode](../flight_modes_rover/ackermann.md#position-mode) and [auto modes](../flight_modes_rover/ackermann.md#auto-modes).
|
||||
- New module dedicated to [differential rovers](../frames_rover/differential.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/differential.md#manual-mode), [acro mode](../flight_modes_rover/differential.md#acro-mode), [stabilized mode](../flight_modes_rover/differential.md#stabilized-mode), [position mode](../flight_modes_rover/differential.md#position-mode) and [auto modes](../flight_modes_rover/differential.md#auto-modes).
|
||||
- New module dedicated to [mecanum rovers](../frames_rover/mecanum.md):
|
||||
- The module currently supports [manual mode](../flight_modes_rover/mecanum.md#manual-mode), [acro mode](../flight_modes_rover/mecanum.md#acro-mode), [stabilized mode](../flight_modes_rover/mecanum.md#stabilized-mode), [position mode](../flight_modes_rover/mecanum.md#position-mode) and [auto modes](../flight_modes_rover/mecanum.md#auto-modes).
|
||||
- Added rover-specific firmware build (`50000–52000`) for Ackermann, differential and mecanum rovers
|
||||
- Restructure of the [rover airframe](../airframes/airframe_reference.md#rover) numbering convention ([PX4-Autopilot#23506](https://github.com/PX4/PX4-Autopilot/pull/23506)).
|
||||
This also introduces several [new rover airframes](../airframes/airframe_reference.md#rover):
|
||||
- Generic Differential Rover `50000`.
|
||||
- Generic Ackermann Rover `51000`.
|
||||
- Axial SCX10 2 Trail Honcho `51001`.
|
||||
- Generic Mecanum Rover `52000`.
|
||||
- Library for the [pure pursuit guidance algorithm](../config_rover/differential.md#pure-pursuit-guidance-logic) that is shared by all the rover modules.
|
||||
- [Simulation](../frames_rover/index.md#simulation) for differential-steering and Ackermann rovers in gazebo (for release notes see `r1_rover` and `rover_ackermann` in [simulation](#simulation)).
|
||||
- Deprecation of the [rover position control](../frames_rover/rover_position_control.md) module: Note that the legacy rover module still exists but has been superseded by the new dedicated modules.
|
||||
|
||||
### Infrastructure
|
||||
|
||||
- [PX4-Autopilot#24011](https://github.com/PX4/PX4-Autopilot/pull/24011): standard_modes: add vehicle-type specific standard modes
|
||||
- [PX4-Autopilot#24020](https://github.com/PX4/PX4-Autopilot/pull/24020): ci: build all upload to releases
|
||||
- [PX4-Autopilot#24002](https://github.com/PX4/PX4-Autopilot/pull/24002): ci: px4-dev container
|
||||
- [PX4-Autopilot#23937](https://github.com/PX4/PX4-Autopilot/pull/23937): ci: workflow for ubuntu 24
|
||||
- [PX4-Autopilot#23869](https://github.com/PX4/PX4-Autopilot/pull/23869): ci: add test for Ubuntu 22.04
|
||||
- [PX4-Autopilot#23574](https://github.com/PX4/PX4-Autopilot/pull/23574): ci: try runs-on Dronecode Infra
|
||||
- [PX4-Autopilot#23550](https://github.com/PX4/PX4-Autopilot/pull/23550): ci: replace build workflows
|
||||
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