* init: working towards dual-action ATMOS
* fix: update gz sim to latest
* fix: add motor number max fitting Actuator
* fix: revert non-necessary changes
* fix: ensure esc count does not exceed maximum number of ESCs
* feat: update gz to latest, includes ATMOS dual action
* fix: restore dds_topics
* fix: update gazebo model commit
* gz_plugins: add MovingPlatformController
This plugin moves the entity to which it is attached to simulate moving
platforms (boats, trucks, ...) to takeoff and land on. Updates
Tools/simulation/gz submodule with corresponding dependency. Use with:
PX4_GZ_MODEL_POSE=0,0,2.2,0,0,0 PX4_GZ_WORLD=moving_platform make px4_sitl gz_standard_vtol
more in README.md
* MovingPlatformController: Wrench implementation
Now it works by applying appropriate forces & torques to make the
platform move as desired. Compared to the previous velocity-based
version it introduces no kinematic constraints, keeping it realistic.
Other updates:
- Also make heading configurable by env var in addition to velocity
- Cleaner error handling (runtime error, gzerr, gzwarn)
- Read parameters (gravity, platform mass & height) from model rather than hardcoding
- Update README with new env vars, usage in sdf, etc.
* MovingPlatformController: fix warning message
* MovingPlatformController: fix build
https://github.com/PX4/PX4-Autopilot/pull/24518 changed some variable
names in CMakeLists. This adapts ours to use the new ones.
* MovingPlatformController: format
* MovingPlatformController: address code review
From feedback on PR
- Parameterise low pass filters with cutoff frequency (rather than
filter coefficient directly).
- Add comment with units of feedback gains.
- Scale attitude gains with platform inertia (rather than mass).
Additionally
- Wait 5 seconds before moving the platform so the model has time to
spawn (was quicker before rebasing...)
- Refactor: separate noise generation and force/torque calculation into
two separate functions
- rename updatePlatformState -> getPlatformState to emphasise
difference from other update* functions that update internal state only
- remove unused gz transport node
- README grammar
* MovingPlatformController: format
* MovingPlatformController: remove redundant call
* MovingPlatformController: clarify explanation
* MovingPlatformController: clarify & comment units
* MovingPlatformController: wait for model to spawn
Rather than waiting a fixed 5s, we now only move the platform once the
model is spawned.
For that we construct the model name from the relevant environment
variables, in the same way as done in px4-rc.gzsim.
If attaching to an existing model, do not wait.
* MovingPlatformController: correct substring extraction
---------
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
* gz: use server config file for loading world plugins
* submodule
* use server.config in tree
* newlines
* format
* gzbridge: rename function
* format
* gzbridge: add magnetometer callback
* change gz_find_package to find_package
* fix up directory structure and cmake to allow multiple plugins
* newlines
* add comment block explaining gz_env.sh
* remove dupe readme
* remove SENS_EN_MAGSIM from all gz airframe files except spacecraft
* update gz submodule
* added optical flow to gz bridge
* log high rate sensor data
* it builds
* it builds and publishes, need to figure out build system now
* single library
* rename files
* add gz_msg for proto, fix build, test basic flow impl
* update rate, no blur
* PX4-OpticalFlow impl
* rename OpticalFlowSensor
* rename plugins
* disable gps, add plugin path
* cleanup
* fix plugin path export
* properly add OpticalFlowSystem dependency to gz
* move everything under gz_bridge
* cleanup
* add GZ_VEBOSE
* cleanup model/world build target cmake
* added GZ_DISTRO env, harmonic or ionic
* fix gz transport, unstage ark fpv bootloader
* unstage logged_topics.cpp
* cleanup
* make format
* ci fixes
* fix cmake
* remove required for gz-transport
* use model/world namespace for multi vehicle sim. Make format
* make format
* license
* remove needless member var
* made separate Kconfig for gz_msgs, gz_plugins, and gz_bridge
* move OpticalFlow build to it's own cmake
* fix clang
* cleanup comments
* fix rebase
* disable SENS_EN_GPSSIM for all gz airframes
* add GPS + noise to GZBridge
* remove mutex from gz callbacks. Callbacks run synchronously after sim update step and run() loop does not share resources.
* remove hrt check in callbacks
* format
* remove param set-default for already default params
* update submodule
* remove unnecessary comments
* overhaul of the GZBridge and px4-rc.simulator script
* remove arg
* shellcheck disable
* add bus/address
* start gz_bridge before adjusting sim speed or camera follow
* add two x500 lidar airframe, including the gazebo bridge for the lidar sensors and their orientation
* Update src/modules/simulation/gz_bridge/GZBridge.cpp
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
* Update src/modules/simulation/gz_bridge/GZBridge.hpp
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
* update submodule
---------
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
* AUTOPILOT.capabilities includes gimbal manager protocol bit
Sets MAV_PROTOCOL_CAPABILITY_COMPONENT_IMPLEMENTS_GIMBAL_MANAGER bit in AUTOPILOT.capabilities
* mavlink: update submodule
* mavlink: only set gimbal flag if gimbal param set
We should probably only set the flag if the gimbal manager is actually
set up using the MNT_MODE_IN parameter.
* mavlink: make param optional
If the gimbal module is not built in we don't have the MNT_MODE_IN
param, so we need to deal with that.
* gazebo-classic: update submodule
---------
Co-authored-by: Julian Oes <julian@oes.ch>
- gz in PX4/Firmware (0c18d43657b1b7279b8dce78a6014243cc14d1e2): d754381a1c
- gz current upstream: 881558c8c2
- Changes: d754381a1c...881558c8c2
881558c 2024-05-29 Jacob Dahl - new lidar_v2 model and x500_lidar vehicle
- gz in PX4/Firmware (5f8f0213a807d327a30a7df05e58f7887cf936ab): 2228336568
- gz current upstream: 6b4ed09d1b
- Changes: 2228336568...6b4ed09d1b
6b4ed09 2024-02-23 Sergei Grichine - Added IMU sensor noise to the model, to avoid STALE messages (#34)
953e02b 2024-02-22 frede791 - add imu sensor model noise
* Added Lawnmower airframe
* Update 5005_gz_lawnmower
Works all right
* Update 5005_gz_lawnmower
RDD_WHL_SPEED has new name: RDD_WHEEL_SPEED
* Update ROMFS/px4fmu_common/init.d-posix/airframes/5005_gz_lawnmower
Co-authored-by: Per Frivik <94360401+PerFrivik@users.noreply.github.com>
* Update ROMFS/px4fmu_common/init.d-posix/airframes/CMakeLists.txt
Co-authored-by: Per Frivik <94360401+PerFrivik@users.noreply.github.com>
* Renamed 5005_gz_lawnmower to 4011_gz_lawnmower
also pulled latest GZ models hash
---------
Co-authored-by: Per Frivik <94360401+PerFrivik@users.noreply.github.com>
- gz in PX4/Firmware (c9ad60e3cceedc218fa7b94ca1ae3632fda68b60): c78f7f0141
- gz current upstream: f1c461fffb
- Changes: c78f7f0141...f1c461fffb
f1c461f 2024-02-08 frederik - increase monocam clipping distance
6d5db73 2024-02-07 Sergei Grichine - Added Zero Turn Lawnmower model (#27)
5332071 2024-02-06 Frederik Markus - add navsat plugin to worlds and navsat sensor to models (#26)
simulation gazebo: move the gazebo models to submodule, allow for operation with external gazebo instance, independent of startup order. Allows drag an drop of models from gazebo fuel.
* rolled back updates
Signed-off-by: frederik <frederik@auterion.com>
* fixing empy
Signed-off-by: frederik <frederik@auterion.com>
* Update GZBridge.cpp to lower drop position
Dropping from 1m leads to movement in the rc_cessna. Dropping from 0.5m leads to no movement.
* Update STANDALONE env variable.
* Update STANDALONE env_variable on GZBridge
* Update src/modules/simulation/gz_bridge/GZBridge.cpp
Co-authored-by: Daniel Agar <daniel@agar.ca>
* test removal of x500
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
* removed all models and reworked logic
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
* remove model path in set_sdf_filename
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
* filter resource path for world sdf
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
* updated structure to keep old make px4_sitl
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
* remove gz tools
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
* import gz as submodule and reverse rc simulator logic
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
* [gz-sim]: source GZ_SIM_RESOURCE_PATH only if PX4 starts gz server
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
* Typo fix
---------
Signed-off-by: frederik <frederik@auterion.com>
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
Co-authored-by: Daniel Agar <daniel@agar.ca>
Co-authored-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
* started tiltrotor port
* added advanced plane and changed some parameters on the tiltrotor
* added advanced plane
* removed tiltrotor for clean push
* removed standard vtol old model file
* removing the standard vtol changes from this PR, since it is not part of the advanced plane
* removed advanced plane meshes as they are already found in the rc_cessna
* updating and improving airframe parameters
* updated mesh paths
Signed-off-by: frederik <frederik@auterion.com>
---------
Signed-off-by: frederik <frederik@auterion.com>
Co-authored-by: frederik <frederik@auterion.com>
This is a tool that can be used to generate advanced lift drag plugin parameters automatically using AVL. Rather than having to create .avl files yourself, pass them to AVL, read out the correct parameters and place them in the Advanced Lift Drag plugin, this tool will do all that for you and generate a complete advanced_lift_drag plugin sdf containing all necessary parameters for any vehicle. All that is required is to specify what the physical geometries of the vehicle are. The scripts are adaptable enough to support a self-selected number of control surfaces.
---------
Co-authored-by: frederik <frederik@auterion.com>