Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add models for Skywalker X8 plane and quad-plane #1

Conversation

srmainwaring
Copy link
Collaborator

@srmainwaring srmainwaring commented Nov 18, 2021

This PR adds models for the Skywalker X8 in plane and quad-plane configurations for use with ArduPilot.

The model is adapted from the standard_vtol model available from these repos:

Textures were adapted from:

skywalker_x8_quad_2

Usage

Ignition and the plugins should be installed as per the wiki instructions.

skywalker_x8

An X8 configured as a delta-wing plane.

Run Gazebo

$ ign gazebo -v4 -r skywalker_x8_arduplane_runway.world

Run ArduPilot SITL

$ sim_vehicle.py -v ArduPlane -f JSON --add-param-file=$HOME/ardupilot_gazebo/config/skywalker_x8.parm --console --map

skywalker_x8_quad

An X8 configured as a delta-wing quad plane.

Run Gazebo

$ ign gazebo -v4 -r skywalker_x8_quad_arduplane_runway.world

Run ArduPilot SITL

$ sim_vehicle.py -v ArduPlane -f JSON --add-param-file=$HOME/ardupilot_gazebo/config/skywalker_x8_quad.parm --console --map

Notes

  • The plane / quad-plane parameters have been auto-tuned for regular flight. The Q-modes are using default parameters.
  • The quad plane has been set up as an H-frame as the original configuration as an X-frame had such poor yaw authority the vehicle could not be controlled when transitioning from FBWA flight back to Q modes.
  • Additional yaw authority is provided by rotating the VTOL motors 3 degrees towards the centreline.

…-gazebo7

- Use new interface on EntityComponentManager::CreateComponent
- Remove unused package dependencies from CMakeLists.txt
- Update dependency to ignition-gazebo7
- Add standard vtol model from https://github.com/PX4/PX4-SITL_gazebo

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Convert base link and rotors to ignition
- Update config file
- Change sdf version to 1.7
- Temporarily disable plugins and sensors

Add example world for standard_vtol model

Enable elevon and imu links
- Remove airspeed and GPS links and joints

Enable plugins
- Add lift-drag-system plugins for wings, elevons and rotors
- Add joint-force-system plugins for all controlled joints
- Add first draft of ardupilot plugin

Configure servo inputs and set initial params
- Configure elevon, throttle and motor control parameters for the ArduPilot plugin
- Add parameter file for the model

Remove unused elements from model

Add Skywalker X8 plane

Configure using Zephyr params and lift-drag plugin settings

Rename quad plane and adjust settings
- Rename VTOL craft
- Disable airspeed (no sensor)
- Disable most params from default quadplane.parm
- Adjust CP for elevons and winglets
- Increase mass on elevons to avoid numerical instabilities
- This version flying (with instability on landing)

Update mesh files with textured version
- Only use one set of mesh files (for skywalker_x8)
- Update autotuned params for quadplane
- Add X8 texture file from ArduPilot SITL_Models

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Fix texture on main wing
- Add textures to motors and props
- Rename the main texture
- Sync X8 plane and quad models

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Update wing area
- Add visual for pusher motor body

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Update mesh to have origin at the CoM (approx 430mm from front)
- Update joints and links with new positions
- Adjust CP visuals and lift-drag CP positions
- Update ArduPilot params for non-quad variant
- Add WP for training mission

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Add AutoTuned params

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Base plane params on skywalker_x8
- Set Q_ENABLE

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
@srmainwaring srmainwaring added the enhancement New feature or request label Nov 18, 2021
- Change from X-frame to H-frame to help resolve yaw-stability / authority issues
- Centre motor booms on CoM
- Lengthen booms to 980mm to match Discourse build logs
- Update runway model (reduce gap between runway and ground introduces to prevent z-order fighting in render)

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Angle quad motors 3 deg towards to the centre-line to increase yaw authority

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
srmainwaring added a commit to srmainwaring/SITL_Models that referenced this pull request Dec 1, 2021
Supercedes ArduPilot/ardupilot_gazebo#1

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
srmainwaring added a commit to srmainwaring/SITL_Models that referenced this pull request Dec 1, 2021
Supercedes ArduPilot/ardupilot_gazebo#1

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
@srmainwaring
Copy link
Collaborator Author

Superseded by ArduPilot/SITL_Models#50

srmainwaring added a commit to srmainwaring/SITL_Models that referenced this pull request Dec 2, 2021
Supercedes ArduPilot/ardupilot_gazebo#1

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
@srmainwaring srmainwaring deleted the feature/ignition-edifice_skywalker_x8 branch December 2, 2021 09:44
srmainwaring added a commit to srmainwaring/SITL_Models that referenced this pull request Jan 13, 2022
Supercedes ArduPilot/ardupilot_gazebo#1

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
tridge pushed a commit to ArduPilot/SITL_Models that referenced this pull request Jan 13, 2022
Supercedes ArduPilot/ardupilot_gazebo#1

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
srmainwaring added a commit that referenced this pull request Apr 14, 2022
Add an ArduPilot enabled Zephyr delta wing adpated from the
model provided by OpenRobotics.

The model is configured to work with ignition-gazebo. Changes include:

- Rename the model to avoid conflict
- Update the location of the wing mesh texture in the collada file
- Disable the GPS sensor
- Use the ignition-gazebo version of the lift-drag plugin
- Provide a new runway / ground plane model for demonstration
  (contains assets from ambientCG.com, licensed under CC0 1.0 Universal:
  textures https://ambientcg.com/view?id=Grass004)
- Update the iris_arducopter_runway world to use the new model
- Clean up CMakeLists.txt to use ignition conventions
- Only require ignition-gazebo package as other dependencies
  are pulled in recursively.
- This version of the mode will fly with ArduPilot plane4.1
- Add imu link and set pose: <pose>0 0 0 3.141593 0 -1.5707963</pose>.
  This is to adjust for the Zephyr model having a non-standard orientation (x : -R, y : -F, z : -D)
- Add joint-force system plugins
- Add ArduPilot plugin and configure:
- Gazebo body frame to ArudPilot FRD has an extra rotation about z
  to correct for the non-standard wing orientation.
- Gazebo world to NED is the usual rotation
- The elevon mappings are different from the model in SwiftGust's repo.
  The elevon channels are swapped and no servo reverse is required.
- Upstream: gazebo-zephyr.parm needs to have
  SERVO1_REVERSED = 0
  SERVO2_REVERSED = 0
- Orient the model for vertical takeoff
- Update the default transform for rotating from the Gazebo world frame to NED.

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Tarek-H pushed a commit to Tarek-H/ardupilot_gazebo that referenced this pull request Apr 5, 2023
Add an ArduPilot enabled Zephyr delta wing adpated from the
model provided by OpenRobotics.

The model is configured to work with ignition-gazebo. Changes include:

- Rename the model to avoid conflict
- Update the location of the wing mesh texture in the collada file
- Disable the GPS sensor
- Use the ignition-gazebo version of the lift-drag plugin
- Provide a new runway / ground plane model for demonstration
  (contains assets from ambientCG.com, licensed under CC0 1.0 Universal:
  textures https://ambientcg.com/view?id=Grass004)
- Update the iris_arducopter_runway world to use the new model
- Clean up CMakeLists.txt to use ignition conventions
- Only require ignition-gazebo package as other dependencies
  are pulled in recursively.
- This version of the mode will fly with ArduPilot plane4.1
- Add imu link and set pose: <pose>0 0 0 3.141593 0 -1.5707963</pose>.
  This is to adjust for the Zephyr model having a non-standard orientation (x : -R, y : -F, z : -D)
- Add joint-force system plugins
- Add ArduPilot plugin and configure:
- Gazebo body frame to ArudPilot FRD has an extra rotation about z
  to correct for the non-standard wing orientation.
- Gazebo world to NED is the usual rotation
- The elevon mappings are different from the model in SwiftGust's repo.
  The elevon channels are swapped and no servo reverse is required.
- Upstream: gazebo-zephyr.parm needs to have
  SERVO1_REVERSED = 0
  SERVO2_REVERSED = 0
- Orient the model for vertical takeoff
- Update the default transform for rotating from the Gazebo world frame to NED.

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant