support fixed-wing in new Gazebo (gz or ignition gazebo) (#20939)

* Add gz plane airframe config

Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
Co-authored-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
This commit is contained in:
JaeyoungLim 2023-01-24 15:22:53 +01:00 committed by GitHub
parent c31867f104
commit 644aeb9153
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 6100 additions and 33 deletions

View File

@ -0,0 +1,81 @@
#!/bin/sh
#
# @name Gazebo plane
# @type Fixedwing
#
. ${R}etc/init.d/rc.fw_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=default}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=plane}
param set-default EKF2_MAG_ACCLIM 0
param set-default EKF2_MAG_YAWLIM 0
param set-default FW_LND_ANG 8
param set-default FW_L1_PERIOD 12
param set-default FW_PR_P 0.9
param set-default FW_PR_FF 0.5
param set-default FW_PR_I 0.5
param set-default TRIM_PITCH -0.15
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MIN -15
param set-default FW_RR_FF 0.5
param set-default FW_RR_P 0.3
param set-default FW_RR_I 0.5
param set-default FW_YR_FF 0.5
param set-default FW_YR_P 0.6
param set-default FW_YR_I 0.5
param set-default FW_SPOILERS_LND 0.4
param set-default FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05
param set-default FW_THR_TRIM 0.25
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default FW_W_EN 1
param set-default MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2
param set-default RWTO_TKOFF 1
param set-default CA_AIRFRAME 1
param set-default CA_ROTOR_COUNT 1
param set-default CA_ROTOR0_PX 0.3
param set-default CA_SV_CS_COUNT 6
param set-default CA_SV_CS0_TRQ_R -0.5
param set-default CA_SV_CS0_TYPE 1
param set-default CA_SV_CS1_TRQ_R 0.5
param set-default CA_SV_CS1_TYPE 2
param set-default CA_SV_CS2_TRQ_P 1.0
param set-default CA_SV_CS2_TYPE 3
param set-default CA_SV_CS3_TRQ_Y 1.0
param set-default CA_SV_CS3_TYPE 4
param set-default CA_SV_CS4_TYPE 9
param set-default CA_SV_CS5_TYPE 10
param set-default SIM_GZ_EC_FUNC1 101
param set-default SIM_GZ_EC_MIN1 0
param set-default SIM_GZ_EC_MAX1 1000
param set-default SIM_GZ_SV_FUNC1 201
param set-default SIM_GZ_SV_FUNC2 202
param set-default SIM_GZ_SV_FUNC3 203
param set-default SIM_GZ_SV_FUNC4 204
param set-default SIM_GZ_SV_FUNC5 205
param set-default SIM_GZ_SV_FUNC6 206

View File

@ -72,6 +72,7 @@ px4_add_romfs_files(
4001_gz_x500
4002_gz_x500_depth
4003_gz_plane
6011_gazebo-classic_typhoon_h480
6011_gazebo-classic_typhoon_h480.post

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,165 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<authoring_tool>SketchUp 15.3.331</authoring_tool>
</contributor>
<created>2015-05-26T23:41:25Z</created>
<modified>2015-05-26T23:41:25Z</modified>
<unit meter="0.0254" name="inch" />
<up_axis>Z_UP</up_axis>
</asset>
<library_visual_scenes>
<visual_scene id="ID1">
<node name="SketchUp">
<node id="ID2" name="instance_0">
<matrix>0.001745328 -0.9999985 0 70.84882 0.9999985 0.001745328 0 -0.03157813 -0 0 1 -19.50896 0 0 0 1</matrix>
<instance_node url="#ID3" />
</node>
</node>
</visual_scene>
</library_visual_scenes>
<library_nodes>
<node id="ID3" name="ske2A3">
<node id="ID4" name="group_0">
<matrix>1.963935 -3.469447e-018 0 1.237124 3.469447e-018 1.963935 0 258.791 0 0 1.963935 40.4385 0 0 0 1</matrix>
<instance_geometry url="#ID5">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID6">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
<instance_material symbol="Material3" target="#ID11">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="ID15" name="group_1">
<matrix>1.963935 -4.336809e-018 0 -68.35112 4.336809e-018 1.963935 0 258.791 0 0 1.963935 40.4385 0 0 0 1</matrix>
<instance_geometry url="#ID16">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID6">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
<instance_material symbol="Material3" target="#ID11">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</node>
</library_nodes>
<library_geometries>
<geometry id="ID5">
<mesh>
<source id="ID8">
<float_array id="ID13" count="126">29.29134 15.47244 1.496063 -2.220446e-016 15.47244 0.2362205 29.29134 15.47244 0.1574803 29.29134 15.47244 0.1574803 -2.220446e-016 15.47244 0.2362205 29.29134 15.47244 1.496063 0.07874016 15.55118 1.574803 -2.220446e-016 15.47244 0.2362205 29.29134 15.47244 1.496063 29.29134 15.47244 1.496063 -2.220446e-016 15.47244 0.2362205 0.07874016 15.55118 1.574803 29.29134 15.47244 0.1574803 -2.220446e-016 15.47244 0.2362205 0.2362205 17.71654 0.2362205 0.2362205 17.71654 0.2362205 -2.220446e-016 15.47244 0.2362205 29.29134 15.47244 0.1574803 0.2362205 17.71654 0.2362205 -2.220446e-016 15.47244 0.2362205 0.07874016 15.55118 1.574803 0.07874016 15.55118 1.574803 -2.220446e-016 15.47244 0.2362205 0.2362205 17.71654 0.2362205 29.29134 15.47244 1.496063 0.2362205 17.71654 1.574803 0.07874016 15.55118 1.574803 0.07874016 15.55118 1.574803 0.2362205 17.71654 1.574803 29.29134 15.47244 1.496063 29.33071 23.14961 1.220472 29.33071 23.14961 1.220472 0.2362205 17.71654 1.574803 0.2362205 17.71654 1.574803 3.779528 26.81102 1.220472 3.779528 26.81102 1.220472 3.779528 26.81102 1.220472 3.779528 26.81102 1.220472 3.779528 26.81102 1.220472 3.779528 26.81102 1.220472 29.33071 23.14961 1.220472 29.33071 23.14961 1.220472</float_array>
<technique_common>
<accessor count="42" source="#ID13" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID9">
<float_array id="ID14" count="126">8.832897e-019 -1 0 8.832897e-019 -1 0 8.832897e-019 -1 0 -8.832897e-019 1 -0 -8.832897e-019 1 -0 -8.832897e-019 1 -0 -0.002532054 -0.9982624 0.05887026 -0.002532054 -0.9982624 0.05887026 -0.002532054 -0.9982624 0.05887026 0.002532054 0.9982624 -0.05887026 0.002532054 0.9982624 -0.05887026 0.002532054 0.9982624 -0.05887026 0.007390569 0.1304752 -0.991424 -0.002688162 0.0002829644 -0.9999963 0.004389455 0.04876336 -0.9988007 -0.004389455 -0.04876336 0.9988007 0.002688162 -0.0002829644 0.9999963 -0.007390569 -0.1304752 0.991424 -0.9752032 0.2211027 0.009609949 -0.9931459 0.1045417 0.05227084 -0.9949927 0.093762 0.03461586 0.9949927 -0.093762 -0.03461586 0.9931459 -0.1045417 -0.05227084 0.9752032 -0.2211027 -0.009609949 0.005110827 0.03434514 0.999397 0.003976796 0.01640632 0.9998575 0.00269488 -0.0001959912 0.9999963 -0.00269488 0.0001959912 -0.9999963 -0.003976796 -0.01640632 -0.9998575 -0.005110827 -0.03434514 -0.999397 0.009196932 0.1303557 -0.9914246 -0.009196932 -0.1303557 0.9914246 -0.9758321 0.2185214 -5.056631e-018 0.9758321 -0.2185214 5.056631e-018 0.00548519 0.03663055 0.9993138 -0.00548519 -0.03663055 -0.9993138 0.0146102 0.1019572 -0.9946815 -0.0146102 -0.1019572 0.9946815 -0.9317774 0.3630302 0 0.9317774 -0.3630302 -0 0.00513686 0.03584755 0.9993441 -0.00513686 -0.03584755 -0.9993441</float_array>
<technique_common>
<accessor count="42" source="#ID14" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID10">
<input semantic="POSITION" source="#ID8" />
<input semantic="NORMAL" source="#ID9" />
</vertices>
<triangles count="13" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>0 1 2 6 7 8 6 7 8 12 13 14 18 19 20 0 1 2 24 25 26 30 12 14 18 20 32 24 34 25 30 14 36 38 18 32 40 34 24</p>
</triangles>
<triangles count="13" material="Material3">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>3 4 5 9 10 11 9 10 11 15 16 17 21 22 23 3 4 5 27 28 29 15 17 31 33 21 23 28 35 29 37 15 31 33 23 39 29 35 41</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID16">
<mesh>
<source id="ID17">
<float_array id="ID20" count="144">34.13386 15.47244 0.2362205 4.80315 15.47244 0.1574803 33.89764 17.6378 0.2362205 33.89764 17.6378 0.2362205 4.80315 15.47244 0.1574803 34.13386 15.47244 0.2362205 30.31496 26.73228 1.220472 30.31496 26.73228 1.220472 33.89764 17.6378 1.574803 34.13386 15.47244 0.2362205 33.89764 17.6378 0.2362205 33.89764 17.6378 0.2362205 34.13386 15.47244 0.2362205 33.89764 17.6378 1.574803 34.05512 15.55118 1.574803 4.80315 15.47244 0.1574803 34.13386 15.47244 0.2362205 34.13386 15.47244 0.2362205 4.80315 15.47244 0.1574803 34.05512 15.55118 1.574803 34.05512 15.55118 1.574803 4.80315 15.47244 0.1574803 34.13386 15.47244 0.2362205 34.13386 15.47244 0.2362205 4.80315 15.47244 0.1574803 34.05512 15.55118 1.574803 30.31496 26.73228 1.220472 30.31496 26.73228 1.220472 4.88189 23.22835 1.220472 4.88189 23.22835 1.220472 34.05512 15.55118 1.574803 34.05512 15.55118 1.574803 34.05512 15.55118 1.574803 4.80315 15.47244 1.496063 4.80315 15.47244 0.1574803 4.80315 15.47244 0.1574803 4.80315 15.47244 1.496063 34.05512 15.55118 1.574803 33.89764 17.6378 1.574803 30.31496 26.73228 1.220472 4.88189 23.22835 1.220472 4.88189 23.22835 1.220472 30.31496 26.73228 1.220472 33.89764 17.6378 1.574803 34.05512 15.55118 1.574803 4.80315 15.47244 1.496063 4.80315 15.47244 1.496063 34.05512 15.55118 1.574803</float_array>
<technique_common>
<accessor count="48" source="#ID20" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID18">
<float_array id="ID21" count="144">0.002684554 0.0002928604 -0.9999964 -0.01473734 0.12288 -0.9923121 -0.000787119 0.04689963 -0.9988993 0.000787119 -0.04689963 0.9988993 0.01473734 -0.12288 0.9923121 -0.002684554 -0.0002928604 0.9999964 -0.007277174 0.110315 -0.99387 0.007277174 -0.110315 0.99387 0.9725871 0.2323356 0.009718386 0.9955834 0.08736469 0.03436596 0.9719196 0.2353134 -1.202976e-016 -0.9719196 -0.2353134 1.202976e-016 -0.9955834 -0.08736469 -0.03436596 -0.9725871 -0.2323356 -0.009718386 -0.0001576182 -0.9982749 0.05871278 -0.0001576182 -0.9982749 0.05871278 -0.0001576182 -0.9982749 0.05871278 0.0001576182 0.9982749 -0.05871278 0.0001576182 0.9982749 -0.05871278 0.0001576182 0.9982749 -0.05871278 -0.0001576182 -0.9982749 0.05871278 -0.0001576182 -0.9982749 0.05871278 -0.0001576182 -0.9982749 0.05871278 0.0001576182 0.9982749 -0.05871278 0.0001576182 0.9982749 -0.05871278 0.0001576182 0.9982749 -0.05871278 0.9304084 0.3665245 -2.676506e-016 -0.9304084 -0.3665245 2.676506e-016 -0.01872985 0.1359493 -0.9905387 0.01872985 -0.1359493 0.9905387 0.9957011 0.07514725 0.05415023 -0.9957011 -0.07514725 -0.05415023 0.00269178 -0.9999964 0 0.00269178 -0.9999964 0 0.00269178 -0.9999964 0 -0.00269178 0.9999964 -0 -0.00269178 0.9999964 -0 -0.00269178 0.9999964 -0 -0.003787425 0.01626622 0.9998605 -0.005087832 0.03692966 0.9993049 -0.005301222 0.03582462 0.999344 0.005301222 -0.03582462 -0.999344 0.005087832 -0.03692966 -0.9993049 0.003787425 -0.01626622 -0.9998605 -0.002691234 -0.000203112 0.9999964 -0.005229389 0.03392175 0.9994108 0.005229389 -0.03392175 -0.9994108 0.002691234 0.000203112 -0.9999964</float_array>
<technique_common>
<accessor count="48" source="#ID21" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID19">
<input semantic="POSITION" source="#ID17" />
<input semantic="NORMAL" source="#ID18" />
</vertices>
<triangles count="13" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID19" />
<p>0 1 2 2 1 6 8 9 10 14 15 16 20 21 22 26 8 10 6 1 28 8 30 9 32 33 34 32 33 34 38 39 40 44 38 45 38 40 45</p>
</triangles>
<triangles count="13" material="Material3">
<input offset="0" semantic="VERTEX" source="#ID19" />
<p>3 4 5 7 4 3 11 12 13 17 18 19 23 24 25 11 13 27 29 4 7 12 31 13 35 36 37 35 36 37 41 42 43 46 43 47 46 41 43</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_materials>
<material id="ID6" name="Color_003">
<instance_effect url="#ID7" />
</material>
<material id="ID11" name="__White_">
<instance_effect url="#ID12" />
</material>
</library_materials>
<library_effects>
<effect id="ID7">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0.6666667 0.6666667 0.6666667 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID12">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>1 1 1 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<scene>
<instance_visual_scene url="#ID1" />
</scene>
</COLLADA>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<authoring_tool>SketchUp 15.3.331</authoring_tool>
</contributor>
<created>2015-05-26T23:42:29Z</created>
<modified>2015-05-26T23:42:29Z</modified>
<unit meter="0.0254" name="inch" />
<up_axis>Z_UP</up_axis>
</asset>
<library_visual_scenes>
<visual_scene id="ID1">
<node name="SketchUp">
<node id="ID2" name="instance_0">
<matrix>0.001745328 -0.9999985 0 70.84882 0.9999985 0.001745328 0 -0.03157813 -0 0 1 -19.50896 0 0 0 1</matrix>
<instance_node url="#ID3" />
</node>
</node>
</visual_scene>
</library_visual_scenes>
<library_nodes>
<node id="ID3" name="ske2A3">
<node id="ID4" name="group_0">
<matrix>1.963935 -1.149254e-016 0 -217.1153 1.149254e-016 1.963935 0 16.85582 0 0 1.963935 19.40739 0 0 0 1</matrix>
<instance_geometry url="#ID5">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID6">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
<instance_material symbol="Material3" target="#ID11">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</node>
</library_nodes>
<library_geometries>
<geometry id="ID5">
<mesh>
<source id="ID8">
<float_array id="ID13" count="120">173.5827 65.35433 28.34646 173.5433 59.72441 29.01575 162.197 60.69059 28.48352 162.197 60.69059 28.48352 173.5433 59.72441 29.01575 173.5827 65.35433 28.34646 162.1654 66.5748 27.75591 162.1654 66.5748 27.75591 182.126 64.29134 28.77953 182.126 64.29134 28.77953 173.5827 65.35433 28.34646 162.1654 66.5748 27.75591 173.5433 59.76378 30.43307 173.5433 59.76378 30.43307 162.1654 66.5748 27.75591 173.5827 65.35433 28.34646 182.1654 58.62205 31.06299 182.126 64.29134 28.77953 182.126 64.29134 28.77953 182.1654 58.62205 31.06299 182.1654 58.62205 29.44882 182.1654 58.62205 29.44882 162.1654 60.7874 29.93396 162.1654 60.7874 29.93396 191.0236 57.48031 31.22047 191.0236 57.48031 31.22047 191.063 63.07087 29.29134 191.063 63.07087 29.29134 191.063 63.07087 29.29134 191.063 63.07087 29.29134 191.0236 57.48031 29.96063 191.0236 57.48031 29.96063 207.0079 55.62992 31.77165 207.0079 55.62992 31.77165 207.0472 60.90551 30.11811 207.0472 60.90551 30.11811 207.0472 60.90551 30.11811 207.0472 60.90551 30.11811 207.0079 55.62992 30.55118 207.0079 55.62992 30.55118</float_array>
<technique_common>
<accessor count="40" source="#ID13" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID9">
<float_array id="ID14" count="120">0.03634531 -0.1188937 -0.9922416 0.03587327 -0.1179703 -0.9923689 0.03771441 -0.121225 -0.9919083 -0.03771441 0.121225 0.9919083 -0.03587327 0.1179703 0.9923689 -0.03634531 0.1188937 0.9922416 0.0382097 -0.1224293 -0.9917414 -0.0382097 0.1224293 0.9917414 0.03775177 -0.1171551 -0.9923958 -0.03775177 0.1171551 0.9923958 -0.01224891 0.3540955 0.9351291 -0.00989876 0.3514344 0.9361602 -0.01674714 0.3501002 0.9365625 0.01674714 -0.3501002 -0.9365625 0.00989876 -0.3514344 -0.9361602 0.01224891 -0.3540955 -0.9351291 0.01322657 0.3694758 0.9291462 0.006999627 0.365608 0.9307426 -0.006999627 -0.365608 -0.9307426 -0.01322657 -0.3694758 -0.9291462 0.03836032 -0.1173106 -0.9923541 -0.03836032 0.1173106 0.9923541 -0.009366748 0.3522106 0.9358739 0.009366748 -0.3522106 -0.9358739 0.005662451 0.3347006 0.9423075 -0.005662451 -0.3347006 -0.9423075 0.03866059 -0.1186285 -0.9921858 -0.03866059 0.1186285 0.9921858 -0.004253652 0.3235305 0.9462082 0.004253652 -0.3235305 -0.9462082 0.03750441 -0.1151827 -0.9926361 -0.03750441 0.1151827 0.9926361 -0.005596535 0.305409 0.9522048 0.005596535 -0.305409 -0.9522048 0.02892951 -0.08956398 -0.9955608 -0.02892951 0.08956398 0.9955608 -0.008830529 0.2991342 0.9541702 0.008830529 -0.2991342 -0.9541702 0.02731657 -0.08198631 -0.996259 -0.02731657 0.08198631 0.996259</float_array>
<technique_common>
<accessor count="40" source="#ID14" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID10">
<input semantic="POSITION" source="#ID8" />
<input semantic="NORMAL" source="#ID9" />
</vertices>
<triangles count="16" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>0 1 2 0 2 6 8 1 0 10 11 12 16 17 10 20 1 8 12 11 22 16 10 12 24 17 16 26 20 8 28 17 24 26 30 20 32 28 24 34 30 26 36 28 32 34 38 30</p>
</triangles>
<triangles count="16" material="Material3">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>3 4 5 7 3 5 5 4 9 13 14 15 15 18 19 9 4 21 23 14 13 13 15 19 19 18 25 9 21 27 25 18 29 21 31 27 25 29 33 27 31 35 33 29 37 31 39 35</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_materials>
<material id="ID6" name="__White_">
<instance_effect url="#ID7" />
</material>
<material id="ID11" name="__Gray_">
<instance_effect url="#ID12" />
</material>
</library_materials>
<library_effects>
<effect id="ID7">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>1 1 1 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID12">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0.5019608 0.5019608 0.5019608 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<scene>
<instance_visual_scene url="#ID1" />
</scene>
</COLLADA>

View File

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<authoring_tool>SketchUp 15.3.331</authoring_tool>
</contributor>
<created>2015-05-26T23:42:19Z</created>
<modified>2015-05-26T23:42:19Z</modified>
<unit meter="0.0254" name="inch" />
<up_axis>Z_UP</up_axis>
</asset>
<library_visual_scenes>
<visual_scene id="ID1">
<node name="SketchUp">
<node id="ID2" name="instance_0">
<matrix>0.001745328 -0.9999985 0 70.84882 0.9999985 0.001745328 0 -0.03157813 -0 0 1 -19.50896 0 0 0 1</matrix>
<instance_node url="#ID3" />
</node>
</node>
</visual_scene>
</library_visual_scenes>
<library_nodes>
<node id="ID3" name="ske2A3">
<node id="ID4" name="group_0">
<matrix>1.963935 -1.144917e-016 0 -217.1153 1.144917e-016 1.963935 0 16.85582 0 0 1.963935 19.40739 0 0 0 1</matrix>
<instance_geometry url="#ID5">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID6">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
<instance_material symbol="Material3" target="#ID11">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</node>
</library_nodes>
<library_geometries>
<geometry id="ID5">
<mesh>
<source id="ID8">
<float_array id="ID13" count="96">137.2835 66.92913 26.77165 121.9291 59.25197 27.79528 121.9291 66.92913 26.25984 121.9291 66.92913 26.25984 121.9291 59.25197 27.79528 137.2835 66.92913 26.77165 137.2835 59.25197 29.96063 137.2835 66.92913 26.77165 121.9291 66.92913 26.25984 121.9291 66.92913 26.25984 137.2835 66.92913 26.77165 137.2835 59.25197 29.96063 137.2835 59.25197 27.79528 137.2835 59.25197 27.79528 121.9291 59.25197 29.33071 121.9291 59.25197 29.33071 152.3228 59.25197 30.23622 152.3228 59.25197 30.23622 152.3622 66.92913 27.44094 152.3622 66.92913 27.44094 152.3622 66.92913 27.44094 152.3622 66.92913 27.44094 152.3228 59.25197 28.4252 152.3228 59.25197 28.4252 162.1654 59.25197 30.51181 162.1654 59.25197 30.51181 162.1654 66.5748 27.75591 162.1654 66.5748 27.75591 162.1654 66.5748 27.75591 162.1654 66.5748 27.75591 162.2047 59.25197 28.66142 162.2047 59.25197 28.66142</float_array>
<technique_common>
<accessor count="32" source="#ID13" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID9">
<float_array id="ID14" count="96">0.02682621 -0.1417739 -0.9895355 0.02297159 -0.1771324 -0.9839189 0.03266858 -0.1960115 -0.9800573 -0.03266858 0.1960115 0.9800573 -0.02297159 0.1771324 0.9839189 -0.02682621 0.1417739 0.9895355 -0.02493687 0.3815814 0.9239988 -0.02780814 0.3770153 0.9257895 -0.03575652 0.3750234 0.9263255 0.03575652 -0.3750234 -0.9263255 0.02780814 -0.3770153 -0.9257895 0.02493687 -0.3815814 -0.9239988 0.02165175 -0.1314105 -0.9910916 -0.02165175 0.1314105 0.9910916 -0.03806375 0.3711215 0.9278038 0.03806375 -0.3711215 -0.9278038 -0.03001613 0.3487806 0.9367236 0.03001613 -0.3487806 -0.9367236 0.03483823 -0.1279932 -0.991163 -0.03483823 0.1279932 0.991163 -0.03222275 0.344211 0.9383392 0.03222275 -0.344211 -0.9383392 0.03366092 -0.1263005 -0.9914208 -0.03366092 0.1263005 0.9914208 -0.02130276 0.3477379 0.9373497 0.02130276 -0.3477379 -0.9373497 0.02520877 -0.1245398 -0.9918943 -0.02520877 0.1245398 0.9918943 -0.01733589 0.3521731 0.9357743 0.01733589 -0.3521731 -0.9357743 0.02371739 -0.1225611 -0.9921775 -0.02371739 0.1225611 0.9921775</float_array>
<technique_common>
<accessor count="32" source="#ID14" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID10">
<input semantic="POSITION" source="#ID8" />
<input semantic="NORMAL" source="#ID9" />
</vertices>
<triangles count="12" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>0 1 2 6 7 8 12 1 0 6 8 14 16 7 6 18 12 0 20 7 16 18 22 12 24 20 16 26 22 18 24 28 20 30 22 26</p>
</triangles>
<triangles count="12" material="Material3">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>3 4 5 9 10 11 5 4 13 15 9 11 11 10 17 5 13 19 17 10 21 13 23 19 17 21 25 19 23 27 21 29 25 27 23 31</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_materials>
<material id="ID6" name="__White_">
<instance_effect url="#ID7" />
</material>
<material id="ID11" name="__Gray_">
<instance_effect url="#ID12" />
</material>
</library_materials>
<library_effects>
<effect id="ID7">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>1 1 1 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID12">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0.5019608 0.5019608 0.5019608 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<scene>
<instance_visual_scene url="#ID1" />
</scene>
</COLLADA>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<authoring_tool>SketchUp 15.3.331</authoring_tool>
</contributor>
<created>2015-05-26T23:41:47Z</created>
<modified>2015-05-26T23:41:47Z</modified>
<unit meter="0.0254" name="inch" />
<up_axis>Z_UP</up_axis>
</asset>
<library_visual_scenes>
<visual_scene id="ID1">
<node name="SketchUp">
<node id="ID2" name="instance_0">
<matrix>0.001745328 -0.9999985 0 70.84882 0.9999985 0.001745328 0 -0.03157813 -0 0 1 -19.50896 0 0 0 1</matrix>
<instance_node url="#ID3" />
</node>
</node>
</visual_scene>
</library_visual_scenes>
<library_nodes>
<node id="ID3" name="ske2A3">
<node id="ID4" name="group_0">
<matrix>1.963935 -1.140581e-016 0 -217.1153 1.140581e-016 1.963935 0 16.85582 0 0 1.963935 19.40739 0 0 0 1</matrix>
<instance_geometry url="#ID5">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID6">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
<instance_material symbol="Material3" target="#ID11">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</node>
</library_nodes>
<library_geometries>
<geometry id="ID5">
<mesh>
<source id="ID8">
<float_array id="ID13" count="120">58.93701 66.5748 27.75591 47.55906 59.6063 29.13386 47.59843 65.15748 28.30709 47.59843 65.15748 28.30709 47.55906 59.6063 29.13386 58.93701 66.5748 27.75591 39.33071 58.62205 29.56693 39.33071 58.62205 29.56693 58.97638 60.95635 29.96063 58.93701 66.5748 27.75591 47.59843 65.15748 28.30709 47.59843 65.15748 28.30709 58.93701 66.5748 27.75591 58.97638 60.95635 29.96063 58.97638 60.7874 28.50244 58.97638 60.7874 28.50244 39.29134 64.13386 28.74016 39.29134 64.13386 28.74016 47.59843 59.64567 30.43307 47.59843 59.64567 30.43307 30.11811 57.59843 29.96063 30.11811 57.59843 29.96063 39.29134 64.13386 28.74016 39.29134 64.13386 28.74016 30.07874 63.0315 29.25197 30.07874 63.0315 29.25197 39.33071 58.62205 30.7874 39.33071 58.62205 30.7874 14.13386 55.62992 30.55118 14.13386 55.62992 30.55118 30.07874 63.0315 29.25197 30.07874 63.0315 29.25197 14.05512 60.94488 30.07874 14.05512 60.94488 30.07874 30.11811 57.59843 31.1811 30.11811 57.59843 31.1811 14.05512 60.94488 30.07874 14.05512 60.94488 30.07874 14.13386 55.62992 31.77165 14.13386 55.62992 31.77165</float_array>
<technique_common>
<accessor count="40" source="#ID13" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID9">
<float_array id="ID14" count="120">-0.03804767 -0.1336973 -0.9902916 -0.03393509 -0.1443297 -0.9889476 -0.03164446 -0.1472782 -0.9885888 0.03164446 0.1472782 0.9885888 0.03393509 0.1443297 0.9889476 0.03804767 0.1336973 0.9902916 -0.0294332 -0.1482161 -0.9885169 0.0294332 0.1482161 0.9885169 -0.001092279 0.3636841 0.9315217 -0.000409118 0.3652875 0.9308947 0.0008682838 0.3607536 0.9326607 -0.0008682838 -0.3607536 -0.9326607 0.000409118 -0.3652875 -0.9308947 0.001092279 -0.3636841 -0.9315217 -0.04154783 -0.1281008 -0.9908905 0.04154783 0.1281008 0.9908905 -0.03197393 -0.1454677 -0.9888462 0.03197393 0.1454677 0.9888462 -0.0004293308 0.3574471 0.9339333 0.0004293308 -0.3574471 -0.9339333 -0.0272016 -0.1325668 -0.9908007 0.0272016 0.1325668 0.9908007 0.004716089 0.3506517 0.9364941 -0.004716089 -0.3506517 -0.9364941 -0.03271636 -0.125567 -0.9915455 0.03271636 0.125567 0.9915455 0.002870077 0.3456667 0.938353 -0.002870077 -0.3456667 -0.938353 -0.03566361 -0.09775055 -0.9945717 0.03566361 0.09775055 0.9945717 0.00538455 0.3372325 0.941406 -0.00538455 -0.3372325 -0.941406 -0.03975437 -0.08905412 -0.9952331 0.03975437 0.08905412 0.9952331 0.003353341 0.3312469 0.9435382 -0.003353341 -0.3312469 -0.9435382 -0.0006590497 0.3100183 0.9507304 0.0006590497 -0.3100183 -0.9507304 -0.002169095 0.3034651 0.9528401 0.002169095 -0.3034651 -0.9528401</float_array>
<technique_common>
<accessor count="40" source="#ID14" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID10">
<input semantic="POSITION" source="#ID8" />
<input semantic="NORMAL" source="#ID9" />
</vertices>
<triangles count="16" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>0 1 2 2 1 6 8 9 10 14 1 0 2 6 16 8 10 18 6 20 16 18 10 22 16 20 24 18 22 26 20 28 24 26 22 30 24 28 32 26 30 34 34 30 36 34 36 38</p>
</triangles>
<triangles count="16" material="Material3">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>3 4 5 7 4 3 11 12 13 5 4 15 17 7 3 19 11 13 17 21 7 23 11 19 25 21 17 27 23 19 25 29 21 31 23 27 33 29 25 35 31 27 37 31 35 39 37 35</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_materials>
<material id="ID6" name="__White_">
<instance_effect url="#ID7" />
</material>
<material id="ID11" name="__Gray_">
<instance_effect url="#ID12" />
</material>
</library_materials>
<library_effects>
<effect id="ID7">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>1 1 1 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID12">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0.5019608 0.5019608 0.5019608 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<scene>
<instance_visual_scene url="#ID1" />
</scene>
</COLLADA>

View File

@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<authoring_tool>SketchUp 15.3.331</authoring_tool>
</contributor>
<created>2015-05-26T23:42:08Z</created>
<modified>2015-05-26T23:42:08Z</modified>
<unit meter="0.0254" name="inch" />
<up_axis>Z_UP</up_axis>
</asset>
<library_visual_scenes>
<visual_scene id="ID1">
<node name="SketchUp">
<node id="ID2" name="instance_0">
<matrix>0.001745328 -0.9999985 0 70.84882 0.9999985 0.001745328 0 -0.03157813 -0 0 1 -19.50896 0 0 0 1</matrix>
<instance_node url="#ID3" />
</node>
</node>
</visual_scene>
</library_visual_scenes>
<library_nodes>
<node id="ID3" name="ske2A3">
<node id="ID4" name="group_0">
<matrix>1.963935 -1.140581e-016 0 -217.1153 1.140581e-016 1.963935 0 16.85582 0 0 1.963935 19.40739 0 0 0 1</matrix>
<instance_geometry url="#ID5">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID6">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
<instance_material symbol="Material3" target="#ID11">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
<instance_geometry url="#ID15">
<bind_material>
<technique_common>
<instance_material symbol="Material2" target="#ID16">
<bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</node>
</library_nodes>
<library_geometries>
<geometry id="ID5">
<mesh>
<source id="ID8">
<float_array id="ID13" count="102">99.2126 66.9685 26.29921 83.85827 66.92913 26.81102 99.2126 59.25197 29.33071 99.2126 59.25197 29.33071 83.85827 66.92913 26.81102 99.2126 66.9685 26.29921 83.85827 59.25197 29.96063 83.85827 59.25197 29.96063 99.2126 66.9685 26.29921 83.85827 59.25197 27.79528 83.85827 66.92913 26.81102 83.85827 66.92913 26.81102 83.85827 59.25197 27.79528 99.2126 66.9685 26.29921 68.77953 66.92913 27.44094 68.77953 66.92913 27.44094 68.8189 59.25197 28.4252 68.77953 66.92913 27.44094 76.33858 59.25197 28.11024 76.33858 59.25197 28.11024 68.8189 59.25197 28.4252 68.77953 66.92913 27.44094 99.2126 59.25197 27.79528 99.2126 59.25197 27.79528 68.8189 59.25197 30.23622 68.8189 59.25197 30.23622 58.97638 59.25197 28.70079 58.97638 59.25197 28.70079 58.93701 66.5748 27.75591 58.93701 66.5748 27.75591 58.93701 66.5748 27.75591 58.93701 66.5748 27.75591 58.97638 59.25197 30.62992 58.97638 59.25197 30.62992</float_array>
<technique_common>
<accessor count="34" source="#ID13" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ID9">
<float_array id="ID14" count="102">0.03007387 0.365487 0.9303305 0.03702604 0.3770976 0.9254331 0.03254441 0.3698361 0.9285269 -0.03254441 -0.3698361 -0.9285269 -0.03702604 -0.3770976 -0.9254331 -0.03007387 -0.365487 -0.9303305 0.0348804 0.3734313 0.9270018 -0.0348804 -0.3734313 -0.9270018 -0.009746117 -0.1715996 -0.9851186 -0.03218648 -0.1366818 -0.990092 -0.03707021 -0.127129 -0.9911932 0.03707021 0.127129 0.9911932 0.03218648 0.1366818 0.990092 0.009746117 0.1715996 0.9851186 0.02096268 0.3482456 0.9371689 -0.02096268 -0.3482456 -0.9371689 -0.03461144 -0.1272104 -0.9912717 -0.03455417 -0.1273749 -0.9912526 -0.04145418 -0.1271596 -0.9910156 0.04145418 0.1271596 0.9910156 0.03461144 0.1272104 0.9912717 0.03455417 0.1273749 0.9912526 6.679878e-018 -0.1903334 -0.9817195 -6.679878e-018 0.1903334 0.9817195 0.02167083 0.3471584 0.9375561 -0.02167083 -0.3471584 -0.9375561 -0.02738866 -0.1277233 -0.9914316 0.02738866 0.1277233 0.9914316 0.02865303 0.3551468 0.9343713 -0.02865303 -0.3551468 -0.9343713 -0.02711419 -0.1280677 -0.9913947 0.02711419 0.1280677 0.9913947 0.03720642 0.365263 0.9301605 -0.03720642 -0.365263 -0.9301605</float_array>
<technique_common>
<accessor count="34" source="#ID14" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID10">
<input semantic="POSITION" source="#ID8" />
<input semantic="NORMAL" source="#ID9" />
</vertices>
<triangles count="13" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>0 1 2 2 1 6 8 9 10 1 14 6 10 16 17 16 10 18 18 10 9 8 22 9 6 14 24 16 26 17 24 14 28 17 26 30 24 28 32</p>
</triangles>
<triangles count="13" material="Material3">
<input offset="0" semantic="VERTEX" source="#ID10" />
<p>3 4 5 7 4 3 11 12 13 7 15 4 12 11 19 19 11 20 21 20 11 12 23 13 25 15 7 21 27 20 29 15 25 31 27 21 33 29 25</p>
</triangles>
</mesh>
</geometry>
<geometry id="ID15">
<mesh>
<source id="ID18">
<float_array id="ID20" count="9">58.97638 60.7874 28.50244 58.93701 66.5748 27.75591 58.97638 60.95635 29.96063</float_array>
<technique_common>
<accessor count="3" source="#ID20" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ID19">
<input semantic="POSITION" source="#ID18" />
</vertices>
<lines count="2" material="Material2">
<input offset="0" semantic="VERTEX" source="#ID19" />
<p>1 0 2 1</p>
</lines>
</mesh>
</geometry>
</library_geometries>
<library_materials>
<material id="ID6" name="__White_">
<instance_effect url="#ID7" />
</material>
<material id="ID11" name="__Gray_">
<instance_effect url="#ID12" />
</material>
<material id="ID16" name="edge_color477979255">
<instance_effect url="#ID17" />
</material>
</library_materials>
<library_effects>
<effect id="ID7">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>1 1 1 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID12">
<profile_COMMON>
<technique sid="COMMON">
<lambert>
<diffuse>
<color>0.5019608 0.5019608 0.5019608 1</color>
</diffuse>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="ID17">
<profile_COMMON>
<technique sid="COMMON">
<constant>
<transparent opaque="A_ONE">
<color>0.1843137 0.3098039 0.3098039 1</color>
</transparent>
<transparency>
<float>1</float>
</transparency>
</constant>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<scene>
<instance_visual_scene url="#ID1" />
</scene>
</COLLADA>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<model>
<name>Plane</name>
<version>1.0</version>
<sdf version='1.9'>model.sdf</sdf>
<author>
<name>Benjamin Perseghetti</name>
<email>bperseghetti@rudislabs.com</email>
</author>
<description>
This is a model of a standard plane.
</description>
</model>

View File

@ -0,0 +1,596 @@
<?xml version="1.0"?>
<sdf version='1.9'>
<model name='plane'>
<pose>0 0 0.246 0 0 0</pose>
<link name='base_link'>
<pose>0 0 0 0 0 0</pose>
<inertial>
<pose>0 0 0 0 0 0</pose>
<mass>1.5</mass>
<inertia>
<ixx>0.197563</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1458929</iyy>
<iyz>0</iyz>
<izz>0.1477</izz>
</inertia>
</inertial>
<collision name='base_link_collision'>
<pose>0 0 -0.07 0 0 0</pose>
<geometry>
<box>
<size>0.47 0.47 0.11</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<max_vel>10</max_vel>
<min_depth>0.01</min_depth>
</ode>
</contact>
</surface>
</collision>
<visual name='base_link_visual'>
<pose>0.07 0 -0.08 0 0 0</pose>
<geometry>
<mesh>
<scale>0.1 0.1 0.1</scale>
<uri>model://plane/meshes/body.dae</uri>
</mesh>
</geometry>
<material>
<ambient>.175 .175 .175 1.0</ambient>
<diffuse>.175 .175 .175 1.0</diffuse>
</material>
</visual>
<gravity>1</gravity>
<velocity_decay/>
<self_collide>0</self_collide>
<sensor name="imu_sensor" type="imu">
<always_on>1</always_on>
<update_rate>250</update_rate>
</sensor>
</link>
<link name="airspeed">
<pose>0 0 0 0 0 0</pose>
<inertial>
<pose>0 0 0 0 0 0</pose>
<mass>0.015</mass>
<inertia>
<ixx>1e-05</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>1e-05</iyy>
<iyz>0</iyz>
<izz>1e-05</izz>
</inertia>
</inertial>
<visual name="visual">
<geometry>
<cylinder>
<radius>0.01</radius>
<length>0.1</length>
</cylinder>
</geometry>
<material>
<ambient>0 0 0 1.0</ambient>
<diffuse>0 0 0 1.0</diffuse>
</material>
</visual>
<!-- <sensor name="air_speed" type="air_speed">
<always_on>1</always_on>
<update_rate>5.0</update_rate>
<enable_metrics>false</enable_metrics>
<air_speed>
<airspeed>
<noise type="gaussian">
<mean>0</mean>
<stddev>0.01</stddev>
</noise>
</airspeed>
</air_speed>
</sensor> -->
</link>
<joint name='airspeed_joint' type='fixed'>
<child>airspeed</child>
<parent>base_link</parent>
</joint>
<link name='rotor_puller'>
<pose>0.22 0 0.0 0 1.57 0</pose>
<inertial>
<pose>0 0 0 0 0 0</pose>
<mass>0.005</mass>
<inertia>
<ixx>9.75e-07</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.000166704</iyy>
<iyz>0</iyz>
<izz>0.000167604</izz>
</inertia>
</inertial>
<collision name='rotor_puller_collision'>
<pose>0.0 0 0 0 0 0</pose>
<geometry>
<box>
<size>0.005 0.22 0.02</size>
</box>
</geometry>
<surface>
<contact>
<ode/>
</contact>
<friction>
<ode/>
</friction>
</surface>
</collision>
<!-- <visual name='rotor_puller_collision_visual'>
<pose>0.0 0 0 0 0 0</pose>
<geometry>
<box>
<size>0.005 0.22 0.02</size>
</box>
</geometry>
</visual> -->
<visual name='rotor_puller_visual'>
<pose>0 0 0 0.0 0 0.0</pose>
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>model://plane/meshes/iris_prop_ccw.dae</uri>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
<gravity>1</gravity>
<velocity_decay/>
<self_collide>0</self_collide>
</link>
<joint name='rotor_puller_joint' type='revolute'>
<child>rotor_puller</child>
<parent>base_link</parent>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-1e+16</lower>
<upper>1e+16</upper>
</limit>
<dynamics>
<spring_reference>0</spring_reference>
<spring_stiffness>0</spring_stiffness>
</dynamics>
<use_parent_model_frame>1</use_parent_model_frame>
</axis>
</joint>
<link name="left_elevon">
<inertial>
<mass>0.00000001</mass>
<inertia>
<ixx>0.000001</ixx>
<ixy>0.0</ixy>
<iyy>0.000001</iyy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
<izz>0.000001</izz>
</inertia>
<pose>0 0.3 0 0.00 0 0.0</pose>
</inertial>
<visual name='left_elevon_visual'>
<pose>0.07 0.0 -0.08 0.00 0 0.0</pose>
<geometry>
<mesh>
<scale>0.1 0.1 0.1</scale>
<uri>model://plane/meshes/left_aileron.dae</uri>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="right_elevon">
<inertial>
<mass>0.00000001</mass>
<inertia>
<ixx>0.000001</ixx>
<ixy>0.0</ixy>
<iyy>0.000001</iyy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
<izz>0.000001</izz>
</inertia>
<pose>0 -0.3 0 0.00 0 0.0</pose>
</inertial>
<visual name='right_elevon_visual'>
<pose>0.07 0.0 -0.08 0.00 0 0.0</pose>
<geometry>
<mesh>
<scale>0.1 0.1 0.1</scale>
<uri>model://plane/meshes/right_aileron.dae</uri>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="left_flap">
<inertial>
<mass>0.00000001</mass>
<inertia>
<ixx>0.000001</ixx>
<ixy>0.0</ixy>
<iyy>0.000001</iyy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
<izz>0.000001</izz>
</inertia>
<pose>0 0.15 0 0.00 0 0.0</pose>
</inertial>
<visual name='left_flap_visual'>
<pose>0.07 0.0 -0.08 0.00 0 0.0</pose>
<geometry>
<mesh>
<scale>0.1 0.1 0.1</scale>
<uri>model://plane/meshes/left_flap.dae</uri>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="right_flap">
<inertial>
<mass>0.00000001</mass>
<inertia>
<ixx>0.000001</ixx>
<ixy>0.0</ixy>
<iyy>0.000001</iyy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
<izz>0.000001</izz>
</inertia>
<pose>0 -0.15 0 0.00 0 0.0</pose>
</inertial>
<visual name='right_flap_visual'>
<pose>0.07 0.0 -0.08 0.00 0 0.0</pose>
<geometry>
<mesh>
<scale>0.1 0.1 0.1</scale>
<uri>model://plane/meshes/right_flap.dae</uri>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="elevator">
<inertial>
<mass>0.00000001</mass>
<inertia>
<ixx>0.000001</ixx>
<ixy>0.0</ixy>
<iyy>0.000001</iyy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
<izz>0.000001</izz>
</inertia>
<pose> -0.5 0 0 0.00 0 0.0</pose>
</inertial>
<visual name='elevator_visual'>
<pose>0.07 0.0 -0.08 0.00 0 0.0</pose>
<geometry>
<mesh>
<scale>0.1 0.1 0.1</scale>
<uri>model://plane/meshes/elevators.dae</uri>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<link name="rudder">
<inertial>
<mass>0.00000001</mass>
<inertia>
<ixx>0.000001</ixx>
<ixy>0.0</ixy>
<iyy>0.000001</iyy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
<izz>0.000001</izz>
</inertia>
<pose>-0.5 0 0.05 0 0 0 </pose>
</inertial>
<visual name='rudder_visual'>
<pose>0.07 0.0 -0.08 0.00 0 0.0</pose>
<geometry>
<mesh>
<scale>0.1 0.1 0.1</scale>
<uri>model://plane/meshes/rudder.dae</uri>
</mesh>
</geometry>
<material>
<ambient>0 0 1 1.0</ambient>
<diffuse>0 0 1 1.0</diffuse>
</material>
</visual>
</link>
<joint name='px4_servo_0' type='revolute'>
<parent>base_link</parent>
<child>left_elevon</child>
<pose>-0.07 0.4 0.08 0.00 0 0.0</pose>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-0.53</lower>
<upper>0.53</upper>
</limit>
<dynamics>
<damping>1.000</damping>
</dynamics>
</axis>
<physics>
<ode>
<implicit_spring_damper>1</implicit_spring_damper>
</ode>
</physics>
</joint>
<joint name='px4_servo_1' type='revolute'>
<parent>base_link</parent>
<child>right_elevon</child>
<pose>-0.07 -0.4 0.08 0.00 0 0.0</pose>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-0.53</lower>
<upper>0.53</upper>
</limit>
<dynamics>
<damping>1.000</damping>
</dynamics>
</axis>
<physics>
<ode>
<implicit_spring_damper>1</implicit_spring_damper>
</ode>
</physics>
</joint>
<joint name='left_flap_joint' type='revolute'>
<parent>base_link</parent>
<child>left_flap</child>
<pose>-0.07 0.2 0.08 0.00 0 0.0</pose>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-0.53</lower>
<upper>0.53</upper>
</limit>
<dynamics>
<damping>1.000</damping>
</dynamics>
</axis>
<physics>
<ode>
<implicit_spring_damper>1</implicit_spring_damper>
</ode>
</physics>
</joint>
<joint name='right_flap_joint' type='revolute'>
<parent>base_link</parent>
<child>right_flap</child>
<pose>-0.07 -0.2 0.08 0.00 0 0.0</pose>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>-0.53</lower>
<upper>0.53</upper>
</limit>
<dynamics>
<damping>1.000</damping>
</dynamics>
</axis>
<physics>
<ode>
<implicit_spring_damper>1</implicit_spring_damper>
</ode>
</physics>
</joint>
<joint name='px4_servo_2' type='revolute'>
<parent>base_link</parent>
<child>elevator</child>
<pose> -0.5 0 0 0 0 0</pose>
<axis>
<xyz>0 1 0</xyz>
<limit>
<!-- -30/+30 deg. -->
<lower>-0.53</lower>
<upper>0.53</upper>
</limit>
<dynamics>
<damping>1.000</damping>
</dynamics>
</axis>
<physics>
<ode>
<implicit_spring_damper>1</implicit_spring_damper>
</ode>
</physics>
</joint>
<joint name='rudder_joint' type='revolute'>
<parent>base_link</parent>
<child>rudder</child>
<pose>-0.5 0 0.05 0.00 0 0.0</pose>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>-0.53</lower>
<upper>0.53</upper>
</limit>
<dynamics>
<damping>1.000</damping>
</dynamics>
</axis>
<physics>
<ode>
<implicit_spring_damper>1</implicit_spring_damper>
</ode>
</physics>
</joint>
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
<a0>0.05984281113</a0>
<cla>4.752798721</cla>
<cda>0.6417112299</cda>
<cma>0.0</cma>
<alpha_stall>0.3391428111</alpha_stall>
<cla_stall>-3.85</cla_stall>
<cda_stall>-0.9233984055</cda_stall>
<cma_stall>0</cma_stall>
<cp>-0.05 0.45 0.05</cp>
<area>0.6</area>
<air_density>1.2041</air_density>
<forward>1 0 0</forward>
<upward>0 0 1</upward>
<link_name>base_link</link_name>
<control_joint_name>px4_servo_0</control_joint_name>
<control_joint_rad_to_cl>-0.3</control_joint_rad_to_cl>
</plugin>
<plugin
filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
<joint_name>px4_servo_0</joint_name>
</plugin>
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
<a0>0.05984281113</a0>
<cla>4.752798721</cla>
<cda>0.6417112299</cda>
<cma>0.0</cma>
<alpha_stall>0.3391428111</alpha_stall>
<cla_stall>-3.85</cla_stall>
<cda_stall>-0.9233984055</cda_stall>
<cma_stall>0</cma_stall>
<cp>-0.05 -0.45 0.05</cp>
<area>0.6</area>
<air_density>1.2041</air_density>
<forward>1 0 0</forward>
<upward>0 0 1</upward>
<link_name>base_link</link_name>
<control_joint_name>px4_servo_1</control_joint_name>
<control_joint_rad_to_cl>-0.3</control_joint_rad_to_cl>
</plugin>
<plugin
filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
<joint_name>px4_servo_1</joint_name>
</plugin>
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
<a0>0.05984281113</a0>
<cla>4.752798721</cla>
<cda>0.6417112299</cda>
<cma>0.0</cma>
<alpha_stall>0.3391428111</alpha_stall>
<cla_stall>-3.85</cla_stall>
<cda_stall>-0.9233984055</cda_stall>
<cma_stall>0</cma_stall>
<cp>-0.05 0.15 0.05</cp>
<area>0.6</area>
<air_density>1.2041</air_density>
<forward>1 0 0</forward>
<upward>0 0 1</upward>
<link_name>base_link</link_name>
<control_joint_name>left_flap_joint</control_joint_name>
<control_joint_rad_to_cl>-0.1</control_joint_rad_to_cl>
</plugin>
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
<a0>0.05984281113</a0>
<cla>4.752798721</cla>
<cda>0.6417112299</cda>
<cma>0.0</cma>
<alpha_stall>0.3391428111</alpha_stall>
<cla_stall>-3.85</cla_stall>
<cda_stall>-0.9233984055</cda_stall>
<cma_stall>0</cma_stall>
<cp>-0.05 -0.15 0.05</cp>
<area>0.6</area>
<air_density>1.2041</air_density>
<forward>1 0 0</forward>
<upward>0 0 1</upward>
<link_name>base_link</link_name>
<control_joint_name>right_flap_joint</control_joint_name>
<control_joint_rad_to_cl>-0.1</control_joint_rad_to_cl>
</plugin>
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
<a0>-0.2</a0>
<cla>4.752798721</cla>
<cda>0.6417112299</cda>
<cma>0.0</cma>
<alpha_stall>0.3391428111</alpha_stall>
<cla_stall>-3.85</cla_stall>
<cda_stall>-0.9233984055</cda_stall>
<cma_stall>0</cma_stall>
<cp>-0.5 0 0</cp>
<area>0.01</area>
<air_density>1.2041</air_density>
<forward>1 0 0</forward>
<upward>0 0 1</upward>
<link_name>base_link</link_name>
<control_joint_name>px4_servo_2</control_joint_name>
<control_joint_rad_to_cl>-4.0</control_joint_rad_to_cl>
</plugin>
<plugin
filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
<joint_name>px4_servo_2</joint_name>
</plugin>
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
<a0>0.0</a0>
<cla>4.752798721</cla>
<cda>0.6417112299</cda>
<cma>0.0</cma>
<alpha_stall>0.3391428111</alpha_stall>
<cla_stall>-3.85</cla_stall>
<cda_stall>-0.9233984055</cda_stall>
<cma_stall>0</cma_stall>
<cp>-0.5 0 0.05</cp>
<area>0.02</area>
<air_density>1.2041</air_density>
<forward>1 0 0</forward>
<upward>0 1 0</upward>
<link_name>base_link</link_name>
<control_joint_name>rudder_joint</control_joint_name>
<control_joint_rad_to_cl>0.8</control_joint_rad_to_cl>
</plugin>
<plugin
filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
<joint_name>rudder_joint</joint_name>
</plugin>
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="gz::sim::systems::MulticopterMotorModel">
<jointName>rotor_puller_joint</jointName>
<linkName>rotor_puller</linkName>
<turningDirection>cw</turningDirection>
<timeConstantUp>0.0125</timeConstantUp>
<timeConstantDown>0.025</timeConstantDown>
<maxRotVelocity>1000</maxRotVelocity>
<motorConstant>2.44858e-05</motorConstant>
<momentConstant>0.016</momentConstant>
<commandSubTopic>command/motor_speed</commandSubTopic>
<motorNumber>3</motorNumber>
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
<motorType>velocity</motorType>
</plugin>
<static>0</static>
</model>
</sdf>

View File

@ -35,18 +35,19 @@
bool GZMixingInterfaceServo::init(const std::string &model_name)
{
#if 0 // TODO
// output eg /X500/command/motor_speed
std::string actuator_topic = "/" + model_name + "/command/motor_speed";
_actuators_pub = _node.Advertise<ignition::msgs::Actuators>(actuator_topic);
// /model/plane_0/joint/left_elevon_joint/0/cmd_pos
for (int i = 0; i < 8; i++) {
std::string joint_name = "px4_servo_" + std::to_string(i);
std::string servo_topic = "/model/" + model_name + "/joint/" + joint_name + "/0/cmd_pos";
//std::cout << "Servo topic: " << servo_topic << std::endl;
_servos_pub.push_back(_node.Advertise<ignition::msgs::Double>(servo_topic));
if (!_actuators_pub.Valid()) {
PX4_ERR("failed to advertise %s", actuator_topic.c_str());
return false;
if (!_servos_pub.back().Valid()) {
PX4_ERR("failed to advertise %s", servo_topic.c_str());
return false;
}
}
#endif
ScheduleNow();
return true;
@ -55,37 +56,30 @@ bool GZMixingInterfaceServo::init(const std::string &model_name)
bool GZMixingInterfaceServo::updateOutputs(bool stop_motors, uint16_t outputs[MAX_ACTUATORS], unsigned num_outputs,
unsigned num_control_groups_updated)
{
bool updated = false;
// cmd.command_value = (float)outputs[i] / 500.f - 1.f; // [-1, 1]
#if 0 // TODO
unsigned active_output_count = 0;
int i = 0;
for (unsigned i = 0; i < num_outputs; i++) {
for (auto &servo_pub : _servos_pub) {
if (_mixing_output.isFunctionSet(i)) {
active_output_count++;
ignition::msgs::Double servo_output;
///TODO: Normalize output data
double output = (outputs[i] - 500) / 500.0;
// std::cout << "outputs[" << i << "]: " << outputs[i] << std::endl;
// std::cout << " output: " << output << std::endl;
servo_output.set_data(output);
} else {
break;
if (servo_pub.Valid()) {
servo_pub.Publish(servo_output);
updated = true;
}
}
i++;
}
if (active_output_count > 0) {
ignition::msgs::Actuators rotor_velocity_message;
rotor_velocity_message.mutable_velocity()->Resize(active_output_count, 0);
for (unsigned i = 0; i < active_output_count; i++) {
rotor_velocity_message.set_velocity(i, outputs[i]);
}
if (_actuators_pub.Valid()) {
return _actuators_pub.Publish(rotor_velocity_message);
}
}
#endif
return false;
return updated;
}
void GZMixingInterfaceServo::Run()

View File

@ -72,5 +72,5 @@ private:
MixingOutput _mixing_output{"SIM_GZ_SV", MAX_ACTUATORS, *this, MixingOutput::SchedulingPolicy::Auto, false, false};
//ignition::transport::Node::Publisher _actuators_pub;
std::vector<ignition::transport::Node::Publisher> _servos_pub;
};