Skip to content

Commit

Permalink
Gazebo: Add model for Omnicopter
Browse files Browse the repository at this point in the history
1. Add initial version of Peter Hall's OmniCopter

- Initial version of Peter Hall's OmniCopter
- Add base model config and sdf
- Add mesh files for base, tail booms and spinners
- First draft of joint locations and orientations
- Add runway model to demo

2. Add props and system plugins
- Add prop visuals
- Add JointStatePublisher system plugin
- Add ApplyJointForce system plugins
- Add LiftDrag system plugins (2x for each prop)
- Add ArduPilotGazebo system plugin
- Add control elements for each prop (all linked to channel 2 for initial testing)
- Max RPM is 13185 (1381 rad/s)
- Set prop rotation reversible

3. Update inertials and PIDs
- Use settings from Iris quadcopter as an initial guess

4. Add force torque sensors to props and add params and scripts
- Set up servo params correctly for AP plugin
- Add parameters and scripts from the main AP repo and Peter Hall's RF model
- Add force torque sensors and system plugin
- Increase prop thrust by moving CP outwards and increasing prop area
- Increase area of base collision to provide 'training wheels' while attempting a tune

5. Change frame for force sensor, update prop lift and params
- Set params allow drone to circle, no stable attitude control

6. Add parameters and mixer for zero prop torque test case

7. Contract body collision and place motors precisely

- Contract body collision to 0.25 x 0.25 x 0.25 cube
- Use calculated values for motor positions and directions rather than estimates from Blender

8. Correct motor inertials

- Adjust motor inertials so they are centred on the joint positions (and are symmetrically arranged)

9. Add thumbnails

10. Rename config and param files

- Add suffix including the prop torque parameter value

11. Move thumbnails

12. Add model for Omnicopter

- Update names of parameter files.
- Add user document.

Signed-off-by: Rhys Mainwaring <[email protected]>
  • Loading branch information
srmainwaring committed Jan 10, 2023
1 parent 78eb2de commit f323056
Show file tree
Hide file tree
Showing 56 changed files with 8,287 additions and 0 deletions.
1,237 changes: 1,237 additions & 0 deletions Gazebo/config/omnicopter-k_tau=0.00000.param

Large diffs are not rendered by default.

1,237 changes: 1,237 additions & 0 deletions Gazebo/config/omnicopter-k_tau=0.01085.param

Large diffs are not rendered by default.

1,233 changes: 1,233 additions & 0 deletions Gazebo/config/omnicopter-rf.param

Large diffs are not rendered by default.

1,237 changes: 1,237 additions & 0 deletions Gazebo/config/omnicopter-zero-torque.param

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions Gazebo/config/omnicopter.param
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
AHRS_EKF_TYPE,10
ANGLE_MAX,8000
ATC_ANGLE_BOOST,0
ATC_RAT_PIT_D,0.02
ATC_RAT_PIT_I,0.015
ATC_RAT_PIT_P,0.03
ATC_RAT_RLL_D,0.02
ATC_RAT_RLL_I,0.015
ATC_RAT_RLL_P,0.03
ATC_RAT_YAW_D,0.02
ATC_RAT_YAW_FLTD,20
ATC_RAT_YAW_FLTE,0
ATC_RAT_YAW_FLTT,20
ATC_RAT_YAW_I,0.025
ATC_RAT_YAW_P,0.04
AUTOTUNE_AGGR,0.1
AUTOTUNE_AXES,7
AUTOTUNE_MIN_D,0.001
EK2_ENABLE,1
EK3_ENABLE,0
FLTMODE2,2
FLTMODE3,5
FLTMODE6,5
FRAME_CLASS,16
FRAME_TYPE,1
FS_CRASH_CHECK,0
MOT_PWM_MAX,2000
MOT_PWM_MIN,1000
MOT_SPIN_ARM,0.1
MOT_SPIN_MAX,1
MOT_SPIN_MIN,-1
MOT_THST_EXPO,0.75
MOT_THST_HOVER,0.25
MOT_YAW_HEADROOM,50
RC1_MAX,2000
RC1_MIN,1000
RC2_MAX,2000
RC2_MIN,1000
RC2_REVERSED,1
RC3_MAX,2000
RC3_MIN,1000
RC4_MAX,2000
RC4_MIN,1000
RC8_OPTION,17
SCR_DEBUG_LVL,0
SCR_DIR_DISABLE,0
SCR_ENABLE,1
SCR_HEAP_SIZE,65536
SCR_USER1,0
SCR_USER2,0
SCR_USER3,0
SCR_USER4,0
SCR_VM_I_COUNT,10000
SERVO1_FUNCTION,33
SERVO1_MAX,2000
SERVO1_MIN,1000
SERVO2_FUNCTION,34
SERVO2_MAX,2000
SERVO2_MIN,1000
SERVO3_FUNCTION,35
SERVO3_MAX,2000
SERVO3_MIN,1000
SERVO4_FUNCTION,36
SERVO4_MAX,2000
SERVO4_MIN,1000
SERVO5_FUNCTION,37
SERVO5_MAX,2000
SERVO5_MIN,1000
SERVO6_FUNCTION,38
SERVO6_MAX,2000
SERVO6_MIN,1000
33 changes: 33 additions & 0 deletions Gazebo/docs/Omnicopter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Omnicopter

Model for the 6DoF omnicopter for use with ArduPilot.
It is derived from the [version prepared for RealFlight](https://github.com/ArduPilot/SITL_Models/tree/master/RealFlight/WIP/iampete/Lynchpin).


![omnicopter_2](https://user-images.githubusercontent.com/24916364/146563555-57b4afc7-dec5-4720-9446-d1dafb82aeca.png)

![omnicopter_1_viz](https://user-images.githubusercontent.com/24916364/146563631-592c6459-d72c-45a7-86c6-09da64a96e22.png)

## Usage

Gazebo and the plugins should be installed as per the [ArduPilot Gazebo Plugin](https://github.com/ArduPilot/ardupilot_gazebo) instructions.

Update the `GZ_SIM_RESOURCE_PATH` to include these models:

```bash
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:\
$HOME/SITL_Models/Gazebo/models:\
$HOME/SITL_Models/Gazebo/worlds
```

#### Run Gazebo

```bash
gz sim -v4 -r omnicopter_runway.sdf
```

#### Run ArduPilot SITL

```bash
sim_vehicle.py -v ArduCopter -f JSON --add-param-file=$HOME/SITL_Models/Gazebo/config/omnicopter.param --console --map
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
115 changes: 115 additions & 0 deletions Gazebo/models/omnicopter/meshes/iris_prop_ccw.dae

Large diffs are not rendered by default.

115 changes: 115 additions & 0 deletions Gazebo/models/omnicopter/meshes/iris_prop_cw.dae

Large diffs are not rendered by default.

897 changes: 897 additions & 0 deletions Gazebo/models/omnicopter/meshes/omnicopter.dae

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions Gazebo/models/omnicopter/meshes/omnicopter_base.dae

Large diffs are not rendered by default.

142 changes: 142 additions & 0 deletions Gazebo/models/omnicopter/meshes/spinner.dae

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions Gazebo/models/omnicopter/meshes/tailboom1.dae

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions Gazebo/models/omnicopter/meshes/tailboom2.dae

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions Gazebo/models/omnicopter/meshes/tailboom3.dae

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions Gazebo/models/omnicopter/meshes/tailboom4.dae

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions Gazebo/models/omnicopter/meshes/tailboom5.dae

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions Gazebo/models/omnicopter/meshes/tailboom6.dae

Large diffs are not rendered by default.

19 changes: 19 additions & 0 deletions Gazebo/models/omnicopter/model.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<model>
<name>OmniCopter</name>
<version>1.0</version>
<sdf version='1.7'>model.sdf</sdf>

<author>
<name>Peter Hall</name>
</author>

<author>
<name>Rhys Mainwaring</name>
<email>[email protected]</email>
</author>

<description>
This is a model of a 6DOF OmniCopter with ArduPilot integration.
</description>
</model>
Loading

0 comments on commit f323056

Please sign in to comment.