WIP
@@ -53,9 +53,6 @@
|
|||||||
[submodule "src/lib/events/libevents"]
|
[submodule "src/lib/events/libevents"]
|
||||||
path = src/lib/events/libevents
|
path = src/lib/events/libevents
|
||||||
url = https://github.com/mavlink/libevents.git
|
url = https://github.com/mavlink/libevents.git
|
||||||
[submodule "Tools/simulation-ignition"]
|
|
||||||
path = Tools/simulation-ignition
|
|
||||||
url = https://github.com/PX4/px4-simulation-ignition.git
|
|
||||||
[submodule "src/lib/crypto/libtomcrypt"]
|
[submodule "src/lib/crypto/libtomcrypt"]
|
||||||
path = src/lib/crypto/libtomcrypt
|
path = src/lib/crypto/libtomcrypt
|
||||||
url = https://github.com/PX4/libtomcrypt.git
|
url = https://github.com/PX4/libtomcrypt.git
|
||||||
|
|||||||
@@ -49,185 +49,18 @@
|
|||||||
"group": "test"
|
"group": "test"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"label": "jmavsim build",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "ant create_run_jar copy_res",
|
|
||||||
"options": {
|
|
||||||
"cwd": "${workspaceFolder}/Tools/jMAVSim"
|
|
||||||
},
|
|
||||||
"problemMatcher": [],
|
|
||||||
"presentation":{
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "never",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": false,
|
|
||||||
"clear": false,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "jmavsim",
|
|
||||||
"type": "shell",
|
|
||||||
"dependsOn": "jmavsim build",
|
|
||||||
"command": "java -Djava.ext.dirs= -jar jmavsim_run.jar -r 250 -lockstep -tcp localhost:4560 -qgc",
|
|
||||||
"options": {
|
|
||||||
"cwd": "${workspaceFolder}/Tools/jMAVSim/out/production",
|
|
||||||
"env": {
|
|
||||||
"PX4_SIM_SPEED_FACTOR": "1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"isBackground": true,
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "never",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": false,
|
|
||||||
"clear": false
|
|
||||||
},
|
|
||||||
"problemMatcher": [
|
|
||||||
{
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": ".",
|
|
||||||
"file": 1,
|
|
||||||
"location": 2,
|
|
||||||
"message": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"background": {
|
|
||||||
"activeOnStart": true,
|
|
||||||
"beginsPattern": ".",
|
|
||||||
"endsPattern": ".",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "jmavsim kill",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "kill $(ps aux | grep jmavsim | grep -v 'grep' | awk '{print $2}')",
|
|
||||||
"presentation": {
|
|
||||||
"echo": false,
|
|
||||||
"reveal": "never",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": false,
|
|
||||||
"clear": false
|
|
||||||
},
|
|
||||||
"problemMatcher": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "gazebo build",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "make px4_sitl_default sitl_gazebo",
|
|
||||||
"options": {
|
|
||||||
"cwd": "${workspaceFolder}"
|
|
||||||
},
|
|
||||||
"problemMatcher": [],
|
|
||||||
"presentation":{
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "always",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": false,
|
|
||||||
"clear": false,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "gazebo start",
|
|
||||||
"type": "shell",
|
|
||||||
"dependsOn": "gazebo build",
|
|
||||||
"options": {
|
|
||||||
"cwd": "${workspaceFolder}",
|
|
||||||
"env": {
|
|
||||||
"GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
|
|
||||||
"GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
|
|
||||||
"PX4_SIM_SPEED_FACTOR": "1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"command": "gzserver --verbose ${workspaceFolder}/Tools/sitl_gazebo/worlds/${input:gazeboWorld}.world",
|
|
||||||
"isBackground": true,
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "never",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": false,
|
|
||||||
"clear": false
|
|
||||||
},
|
|
||||||
"problemMatcher": [
|
|
||||||
{
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": ".",
|
|
||||||
"file": 1,
|
|
||||||
"location": 2,
|
|
||||||
"message": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"background": {
|
|
||||||
"activeOnStart": true,
|
|
||||||
"beginsPattern": ".",
|
|
||||||
"endsPattern": ".",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"label": "gazebo",
|
"label": "gazebo",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"dependsOn": "gazebo start",
|
|
||||||
"options": {
|
"options": {
|
||||||
"cwd": "${workspaceFolder}",
|
"cwd": "${workspaceFolder}",
|
||||||
"env": {
|
"env": {
|
||||||
"GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
|
"IGN_GAZEBO_RESOURCE_PATH": "${workspaceFolder}/Tools/simulation/gazebo/models",
|
||||||
"GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
|
|
||||||
"PX4_SIM_SPEED_FACTOR": "1"
|
"PX4_SIM_SPEED_FACTOR": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"command": "gz model --verbose --spawn-file=${workspaceFolder}/Tools/sitl_gazebo/models/${input:vehicleModel}/${input:vehicleModel}.sdf --model-name=${input:vehicleModel} -x 1.01 -y 0.98 -z 0.83",
|
"command": "ign gazebo -v 4 -r ${workspaceFolder}/Tools/simulation/gazebo/worlds/${input:gazeboWorld}.sdf",
|
||||||
"isBackground": false,
|
|
||||||
"presentation": {
|
|
||||||
"echo": true,
|
|
||||||
"reveal": "never",
|
|
||||||
"focus": false,
|
|
||||||
"panel": "shared",
|
|
||||||
"showReuseMessage": false,
|
|
||||||
"clear": false
|
|
||||||
},
|
|
||||||
"problemMatcher": [
|
|
||||||
{
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": ".",
|
|
||||||
"file": 1,
|
|
||||||
"location": 2,
|
|
||||||
"message": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"background": {
|
|
||||||
"activeOnStart": true,
|
|
||||||
"beginsPattern": ".",
|
|
||||||
"endsPattern": ".",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "gazebo client",
|
|
||||||
"type": "shell",
|
|
||||||
"dependsOn": "gazebo build",
|
|
||||||
"options": {
|
|
||||||
"cwd": "${workspaceFolder}",
|
|
||||||
"env": {
|
|
||||||
"GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
|
|
||||||
"GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
|
|
||||||
"PX4_SIM_SPEED_FACTOR": "1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"command": "gzclient --verbose",
|
|
||||||
"isBackground": true,
|
"isBackground": true,
|
||||||
"presentation": {
|
"presentation": {
|
||||||
"echo": true,
|
"echo": true,
|
||||||
@@ -255,10 +88,11 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"label": "gazebo kill",
|
"label": "gazebo kill",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "killall gzserver",
|
"command": "killall ign",
|
||||||
"presentation": {
|
"presentation": {
|
||||||
"echo": true,
|
"echo": true,
|
||||||
"reveal": "silent",
|
"reveal": "silent",
|
||||||
@@ -270,6 +104,7 @@
|
|||||||
"problemMatcher": [],
|
"problemMatcher": [],
|
||||||
"dependsOn":["px4_sitl_cleanup"]
|
"dependsOn":["px4_sitl_cleanup"]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"label": "px4_sitl_cleanup",
|
"label": "px4_sitl_cleanup",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
@@ -335,39 +170,14 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"inputs": [
|
"inputs": [
|
||||||
{
|
|
||||||
"type": "pickString",
|
|
||||||
"id": "vehicleModel",
|
|
||||||
"description": "gazebo model",
|
|
||||||
"options": [
|
|
||||||
"iris",
|
|
||||||
"typhoon_h480",
|
|
||||||
"plane",
|
|
||||||
"plane_catapult",
|
|
||||||
"plane_lidar",
|
|
||||||
"standard_vtol",
|
|
||||||
"tailsitter",
|
|
||||||
"tiltrotor",
|
|
||||||
"r1_rover",
|
|
||||||
"boat"
|
|
||||||
],
|
|
||||||
"default": "iris"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "pickString",
|
"type": "pickString",
|
||||||
"id": "gazeboWorld",
|
"id": "gazeboWorld",
|
||||||
"description": "gazebo world",
|
"description": "gazebo world",
|
||||||
"options": [
|
"options": [
|
||||||
"baylands",
|
"x4"
|
||||||
"empty",
|
|
||||||
"ksql_airport",
|
|
||||||
"mcmillan_airfield",
|
|
||||||
"sonoma_raceway",
|
|
||||||
"warehouse",
|
|
||||||
"windy",
|
|
||||||
"yosemite"
|
|
||||||
],
|
],
|
||||||
"default": "empty"
|
"default": "x4"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# @name Ignition Gazebo X4
|
||||||
|
#
|
||||||
|
# @type Quadrotor
|
||||||
|
#
|
||||||
|
|
||||||
|
. ${R}etc/init.d/rc.mc_defaults
|
||||||
|
|
||||||
|
param set-default MC_PITCHRATE_P 0.1
|
||||||
|
param set-default MC_ROLLRATE_P 0.05
|
||||||
|
|
||||||
|
set MIXER hexa_x
|
||||||
@@ -77,9 +77,12 @@ px4_add_romfs_files(
|
|||||||
1070_boat
|
1070_boat
|
||||||
3010_quadrotor_x
|
3010_quadrotor_x
|
||||||
3011_hexarotor_x
|
3011_hexarotor_x
|
||||||
|
|
||||||
17001_tf-g1
|
17001_tf-g1
|
||||||
17002_tf-g2
|
17002_tf-g2
|
||||||
2507_cloudship
|
2507_cloudship
|
||||||
|
|
||||||
|
6001_x4
|
||||||
6011_typhoon_h480
|
6011_typhoon_h480
|
||||||
6011_typhoon_h480.post
|
6011_typhoon_h480.post
|
||||||
6012_typhoon_h480_ctrlalloc
|
6012_typhoon_h480_ctrlalloc
|
||||||
|
|||||||
@@ -5,27 +5,29 @@
|
|||||||
if ignition_simulator start
|
if ignition_simulator start
|
||||||
then
|
then
|
||||||
|
|
||||||
sensor_baro_sim start
|
sensor_baro_sim start
|
||||||
sensor_gps_sim start
|
sensor_gps_sim start
|
||||||
sensor_mag_sim start
|
sensor_mag_sim start
|
||||||
|
|
||||||
else
|
else
|
||||||
simulator_tcp_port=$((4560+px4_instance))
|
simulator_tcp_port=$((4560+px4_instance))
|
||||||
|
|
||||||
# Check if PX4_SIM_HOSTNAME environment variable is empty
|
# Check if PX4_SIM_HOSTNAME environment variable is empty
|
||||||
# If empty check if PX4_SIM_HOST_ADDR environment variable is empty
|
# If empty check if PX4_SIM_HOST_ADDR environment variable is empty
|
||||||
# If both are empty use localhost for simulator
|
# If both are empty use localhost for simulator
|
||||||
if [ -z "${PX4_SIM_HOSTNAME}" ]; then
|
if [ -z "${PX4_SIM_HOSTNAME}" ]; then
|
||||||
if [ -z "${PX4_SIM_HOST_ADDR}" ]; then
|
|
||||||
echo "PX4 SIM HOST: localhost"
|
if [ -z "${PX4_SIM_HOST_ADDR}" ]; then
|
||||||
simulator start -c $simulator_tcp_port
|
echo "PX4 SIM HOST: localhost"
|
||||||
else
|
simulator start -c $simulator_tcp_port
|
||||||
echo "PX4 SIM HOST: $PX4_SIM_HOST_ADDR"
|
else
|
||||||
simulator start -t $PX4_SIM_HOST_ADDR $simulator_tcp_port
|
echo "PX4 SIM HOST: $PX4_SIM_HOST_ADDR"
|
||||||
fi
|
simulator start -t $PX4_SIM_HOST_ADDR $simulator_tcp_port
|
||||||
else
|
fi
|
||||||
echo "PX4 SIM HOST: $PX4_SIM_HOSTNAME"
|
|
||||||
simulator start -h $PX4_SIM_HOSTNAME $simulator_tcp_port
|
else
|
||||||
fi
|
echo "PX4 SIM HOST: $PX4_SIM_HOSTNAME"
|
||||||
|
simulator start -h $PX4_SIM_HOSTNAME $simulator_tcp_port
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Setup environment to make PX4 visible to Gazebo.
|
|
||||||
#
|
|
||||||
# Note, this is not necessary if using a ROS catkin workspace with the px4
|
|
||||||
# package as the paths are exported.
|
|
||||||
#
|
|
||||||
# License: according to LICENSE.md in the root directory of the PX4 Firmware repository
|
|
||||||
|
|
||||||
if [ "$#" != 2 ]; then
|
|
||||||
echo -e "usage: source setup_gazebo.bash src_dir build_dir\n"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_DIR=$1
|
|
||||||
BUILD_DIR=$2
|
|
||||||
|
|
||||||
# setup Gazebo env and update package path
|
|
||||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${SRC_DIR}/build/px4_sitl_default/build_ign_gazebo
|
|
||||||
export IGN_GAZEBO_SYSTEM_PLUGIN_PATH=$IGN_GAZEBO_SYSTEM_PLUGIN_PATH:${SRC_DIR}/build/px4_sitl_default/build_ign_gazebo
|
|
||||||
export IGN_GAZEBO_RESOURCE_PATH=$IGN_GAZEBO_RESOURCE_PATH:${SRC_DIR}/Tools/simulation-ignition/models
|
|
||||||
|
|
||||||
echo -e "LD_LIBRARY_PATH $LD_LIBRARY_PATH"
|
|
||||||
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 182 KiB |
@@ -0,0 +1,529 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||||
|
<asset><contributor><author></author><authoring_tool>FBX COLLADA exporter</authoring_tool><comments></comments></contributor><created>2018-08-21T21:36:07Z</created><keywords></keywords><modified>2018-08-21T21:36:07Z</modified><revision></revision><subject></subject><title></title><unit meter="1.000000" name="centimeter"></unit><up_axis>Z_UP</up_axis></asset>
|
||||||
|
<library_images>
|
||||||
|
<image id="LEDIndicator_ncl1_2-image" name="LEDIndicator_ncl1_2"><init_from>../materials/textures/led.jpg</init_from></image>
|
||||||
|
</library_images>
|
||||||
|
<library_materials>
|
||||||
|
<material id="LEDIndicator_ncl1_1" name="LEDIndicator_ncl1_1">
|
||||||
|
<instance_effect url="#LEDIndicator_ncl1_1-fx"/>
|
||||||
|
</material>
|
||||||
|
</library_materials>
|
||||||
|
<library_effects>
|
||||||
|
<effect id="LEDIndicator_ncl1_1-fx" name="LEDIndicator_ncl1_1">
|
||||||
|
<profile_COMMON>
|
||||||
|
<technique sid="standard">
|
||||||
|
<phong>
|
||||||
|
<emission>
|
||||||
|
<color sid="emission">0.000000 0.000000 0.000000 1.000000</color>
|
||||||
|
</emission>
|
||||||
|
<ambient>
|
||||||
|
<color sid="ambient">0.588235 0.588235 0.588235 1.000000</color>
|
||||||
|
</ambient>
|
||||||
|
<diffuse>
|
||||||
|
<texture texture="LEDIndicator_ncl1_2-image" texcoord="CHANNEL0">
|
||||||
|
<extra>
|
||||||
|
<technique profile="MAYA">
|
||||||
|
<wrapU sid="wrapU0">TRUE</wrapU>
|
||||||
|
<wrapV sid="wrapV0">TRUE</wrapV>
|
||||||
|
<blend_mode>ADD</blend_mode>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
|
</texture>
|
||||||
|
</diffuse>
|
||||||
|
<specular>
|
||||||
|
<color sid="specular">0.000000 0.000000 0.000000 1.000000</color>
|
||||||
|
</specular>
|
||||||
|
<shininess>
|
||||||
|
<float sid="shininess">2.000000</float>
|
||||||
|
</shininess>
|
||||||
|
<reflective>
|
||||||
|
<color sid="reflective">0.000000 0.000000 0.000000 1.000000</color>
|
||||||
|
</reflective>
|
||||||
|
<reflectivity>
|
||||||
|
<float sid="reflectivity">1.000000</float>
|
||||||
|
</reflectivity>
|
||||||
|
<transparent opaque="RGB_ZERO">
|
||||||
|
<color sid="transparent">1.000000 1.000000 1.000000 1.000000</color>
|
||||||
|
</transparent>
|
||||||
|
<transparency>
|
||||||
|
<float sid="transparency">0.000000</float>
|
||||||
|
</transparency>
|
||||||
|
</phong>
|
||||||
|
</technique>
|
||||||
|
</profile_COMMON>
|
||||||
|
</effect>
|
||||||
|
</library_effects>
|
||||||
|
<library_geometries>
|
||||||
|
<geometry id="LEDIndicator-lib" name="LEDIndicatorMesh">
|
||||||
|
<mesh>
|
||||||
|
<source id="LEDIndicator-POSITION">
|
||||||
|
<float_array id="LEDIndicator-POSITION-array" count="147">
|
||||||
|
-0.068518 0.000000 0.202589
|
||||||
|
-0.059339 -0.034466 0.202589
|
||||||
|
-0.118677 0.000000 0.152431
|
||||||
|
-0.102777 -0.059696 0.152431
|
||||||
|
-0.137036 0.000000 0.083912
|
||||||
|
-0.118677 -0.068932 0.083912
|
||||||
|
-0.179977 -0.104537 0.036913
|
||||||
|
-0.179977 0.104537 0.036913
|
||||||
|
-0.179977 -0.104537 0.000445
|
||||||
|
-0.179977 0.104537 0.000445
|
||||||
|
0.000000 0.068932 0.202589
|
||||||
|
-0.034259 0.059697 0.202589
|
||||||
|
-0.059338 0.034466 0.202589
|
||||||
|
0.000000 0.119393 0.152431
|
||||||
|
-0.059338 0.103397 0.152431
|
||||||
|
-0.102777 0.059697 0.152431
|
||||||
|
0.000000 0.137863 0.083912
|
||||||
|
-0.068518 0.119393 0.083912
|
||||||
|
-0.118677 0.068932 0.083912
|
||||||
|
-0.034259 -0.059697 0.202589
|
||||||
|
-0.059339 -0.103397 0.152431
|
||||||
|
-0.000000 -0.119393 0.152431
|
||||||
|
-0.068518 -0.119393 0.083912
|
||||||
|
-0.000000 -0.068932 0.202589
|
||||||
|
0.034259 -0.059697 0.202589
|
||||||
|
0.059338 -0.034466 0.202589
|
||||||
|
0.059338 -0.103397 0.152431
|
||||||
|
-0.000000 -0.137863 0.083912
|
||||||
|
0.068518 -0.119393 0.083912
|
||||||
|
-0.000000 -0.209074 0.036913
|
||||||
|
-0.000000 -0.209074 0.000445
|
||||||
|
0.068518 -0.000000 0.202589
|
||||||
|
0.102777 -0.059697 0.152431
|
||||||
|
0.118677 -0.000000 0.152431
|
||||||
|
0.118677 -0.068932 0.083912
|
||||||
|
0.137036 -0.000000 0.083912
|
||||||
|
0.179977 -0.104537 0.036913
|
||||||
|
0.179977 -0.104537 0.000445
|
||||||
|
0.000000 0.000000 0.220949
|
||||||
|
0.059339 0.034466 0.202589
|
||||||
|
0.034259 0.059697 0.202589
|
||||||
|
0.102777 0.059696 0.152431
|
||||||
|
0.059339 0.103397 0.152431
|
||||||
|
0.118677 0.068932 0.083912
|
||||||
|
0.068518 0.119393 0.083912
|
||||||
|
0.000000 0.209074 0.036913
|
||||||
|
0.179977 0.104537 0.036913
|
||||||
|
0.000000 0.209074 0.000445
|
||||||
|
0.179977 0.104537 0.000445
|
||||||
|
</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#LEDIndicator-POSITION-array" count="49" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="LEDIndicator-Normal0">
|
||||||
|
<float_array id="LEDIndicator-Normal0-array" count="846">
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
-0.459980 0.263947 0.847791
|
||||||
|
-0.530731 0.000000 0.847540
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
-0.530731 0.000000 0.847540
|
||||||
|
-0.459980 -0.263946 0.847791
|
||||||
|
-0.875931 0.000000 0.482436
|
||||||
|
-0.530731 0.000000 0.847540
|
||||||
|
-0.459980 0.263947 0.847791
|
||||||
|
-0.459980 0.263947 0.847791
|
||||||
|
-0.759342 0.436180 0.482853
|
||||||
|
-0.875931 0.000000 0.482436
|
||||||
|
-0.759343 -0.436179 0.482853
|
||||||
|
-0.459980 -0.263946 0.847791
|
||||||
|
-0.530731 0.000000 0.847540
|
||||||
|
-0.530731 0.000000 0.847540
|
||||||
|
-0.875931 0.000000 0.482436
|
||||||
|
-0.759343 -0.436179 0.482853
|
||||||
|
-0.836841 0.000000 0.547447
|
||||||
|
-0.875931 0.000000 0.482436
|
||||||
|
-0.759342 0.436180 0.482853
|
||||||
|
-0.759342 0.436180 0.482853
|
||||||
|
-0.684937 0.393187 0.613404
|
||||||
|
-0.836841 0.000000 0.547447
|
||||||
|
-0.684938 -0.393186 0.613404
|
||||||
|
-0.759343 -0.436179 0.482853
|
||||||
|
-0.875931 0.000000 0.482436
|
||||||
|
-0.875931 0.000000 0.482436
|
||||||
|
-0.836841 0.000000 0.547447
|
||||||
|
-0.684938 -0.393186 0.613404
|
||||||
|
-0.836841 0.000000 0.547447
|
||||||
|
-0.684937 0.393187 0.613404
|
||||||
|
-0.797292 0.459082 0.391880
|
||||||
|
-0.797292 -0.459081 0.391880
|
||||||
|
-0.797292 0.459082 0.391880
|
||||||
|
-0.866677 0.498870 0.000000
|
||||||
|
-0.866677 0.498870 0.000000
|
||||||
|
-0.866677 -0.498869 0.000000
|
||||||
|
-0.797292 -0.459081 0.391880
|
||||||
|
-0.797292 -0.459081 0.391880
|
||||||
|
-0.684938 -0.393186 0.613404
|
||||||
|
-0.836841 0.000000 0.547447
|
||||||
|
-0.836841 0.000000 0.547447
|
||||||
|
-0.797292 0.459082 0.391880
|
||||||
|
-0.797292 -0.459081 0.391880
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
0.000000 0.529118 0.848548
|
||||||
|
-0.265980 0.457875 0.848296
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
-0.265980 0.457875 0.848296
|
||||||
|
-0.459980 0.263947 0.847791
|
||||||
|
-0.439292 0.757014 0.483687
|
||||||
|
-0.265980 0.457875 0.848296
|
||||||
|
0.000000 0.529118 0.848548
|
||||||
|
0.000000 0.529118 0.848548
|
||||||
|
0.000001 0.875010 0.484104
|
||||||
|
-0.439292 0.757014 0.483687
|
||||||
|
-0.759342 0.436180 0.482853
|
||||||
|
-0.459980 0.263947 0.847791
|
||||||
|
-0.265980 0.457875 0.848296
|
||||||
|
-0.265980 0.457875 0.848296
|
||||||
|
-0.439292 0.757014 0.483687
|
||||||
|
-0.759342 0.436180 0.482853
|
||||||
|
-0.419462 0.722641 0.549401
|
||||||
|
-0.439292 0.757014 0.483687
|
||||||
|
0.000001 0.875010 0.484104
|
||||||
|
0.000001 0.875010 0.484104
|
||||||
|
0.000001 0.788497 0.615039
|
||||||
|
-0.419462 0.722641 0.549401
|
||||||
|
-0.684937 0.393187 0.613404
|
||||||
|
-0.759342 0.436180 0.482853
|
||||||
|
-0.439292 0.757014 0.483687
|
||||||
|
-0.439292 0.757014 0.483687
|
||||||
|
-0.419462 0.722641 0.549401
|
||||||
|
-0.684937 0.393187 0.613404
|
||||||
|
-0.419462 0.722641 0.549401
|
||||||
|
0.000001 0.788497 0.615039
|
||||||
|
0.000001 0.919830 0.392316
|
||||||
|
-0.797292 0.459082 0.391880
|
||||||
|
0.000001 0.919830 0.392316
|
||||||
|
0.000001 1.000000 0.000000
|
||||||
|
0.000001 1.000000 0.000000
|
||||||
|
-0.866677 0.498870 0.000000
|
||||||
|
-0.797292 0.459082 0.391880
|
||||||
|
-0.797292 0.459082 0.391880
|
||||||
|
-0.684937 0.393187 0.613404
|
||||||
|
-0.419462 0.722641 0.549401
|
||||||
|
-0.419462 0.722641 0.549401
|
||||||
|
0.000001 0.919830 0.392316
|
||||||
|
-0.797292 0.459082 0.391880
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
-0.459980 -0.263946 0.847791
|
||||||
|
-0.265980 -0.457875 0.848296
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
-0.265980 -0.457875 0.848296
|
||||||
|
-0.000000 -0.529118 0.848548
|
||||||
|
-0.439293 -0.757013 0.483687
|
||||||
|
-0.265980 -0.457875 0.848296
|
||||||
|
-0.459980 -0.263946 0.847791
|
||||||
|
-0.459980 -0.263946 0.847791
|
||||||
|
-0.759343 -0.436179 0.482853
|
||||||
|
-0.439293 -0.757013 0.483687
|
||||||
|
-0.000000 -0.875010 0.484104
|
||||||
|
-0.000000 -0.529118 0.848548
|
||||||
|
-0.265980 -0.457875 0.848296
|
||||||
|
-0.265980 -0.457875 0.848296
|
||||||
|
-0.439293 -0.757013 0.483687
|
||||||
|
-0.000000 -0.875010 0.484104
|
||||||
|
-0.419463 -0.722640 0.549401
|
||||||
|
-0.439293 -0.757013 0.483687
|
||||||
|
-0.759343 -0.436179 0.482853
|
||||||
|
-0.759343 -0.436179 0.482853
|
||||||
|
-0.684938 -0.393186 0.613404
|
||||||
|
-0.419463 -0.722640 0.549401
|
||||||
|
-0.000000 -0.788497 0.615039
|
||||||
|
-0.000000 -0.875010 0.484104
|
||||||
|
-0.439293 -0.757013 0.483687
|
||||||
|
-0.439293 -0.757013 0.483687
|
||||||
|
-0.419463 -0.722640 0.549401
|
||||||
|
-0.000000 -0.788497 0.615039
|
||||||
|
-0.419463 -0.722640 0.549401
|
||||||
|
-0.684938 -0.393186 0.613404
|
||||||
|
-0.797292 -0.459081 0.391880
|
||||||
|
-0.000001 -0.919830 0.392316
|
||||||
|
-0.797292 -0.459081 0.391880
|
||||||
|
-0.866677 -0.498869 0.000000
|
||||||
|
-0.866677 -0.498869 0.000000
|
||||||
|
-0.000001 -1.000000 0.000000
|
||||||
|
-0.000001 -0.919830 0.392316
|
||||||
|
-0.000001 -0.919830 0.392316
|
||||||
|
-0.000000 -0.788497 0.615039
|
||||||
|
-0.419463 -0.722640 0.549401
|
||||||
|
-0.419463 -0.722640 0.549401
|
||||||
|
-0.797292 -0.459081 0.391880
|
||||||
|
-0.000001 -0.919830 0.392316
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
-0.000000 -0.529118 0.848548
|
||||||
|
0.265980 -0.457875 0.848296
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
0.265980 -0.457875 0.848296
|
||||||
|
0.459980 -0.263947 0.847791
|
||||||
|
0.439292 -0.757014 0.483687
|
||||||
|
0.265980 -0.457875 0.848296
|
||||||
|
-0.000000 -0.529118 0.848548
|
||||||
|
-0.000000 -0.529118 0.848548
|
||||||
|
-0.000000 -0.875010 0.484104
|
||||||
|
0.439292 -0.757014 0.483687
|
||||||
|
0.759342 -0.436180 0.482853
|
||||||
|
0.459980 -0.263947 0.847791
|
||||||
|
0.265980 -0.457875 0.848296
|
||||||
|
0.265980 -0.457875 0.848296
|
||||||
|
0.439292 -0.757014 0.483687
|
||||||
|
0.759342 -0.436180 0.482853
|
||||||
|
0.419462 -0.722641 0.549401
|
||||||
|
0.439292 -0.757014 0.483687
|
||||||
|
-0.000000 -0.875010 0.484104
|
||||||
|
-0.000000 -0.875010 0.484104
|
||||||
|
-0.000000 -0.788497 0.615039
|
||||||
|
0.419462 -0.722641 0.549401
|
||||||
|
0.684937 -0.393187 0.613404
|
||||||
|
0.759342 -0.436180 0.482853
|
||||||
|
0.439292 -0.757014 0.483687
|
||||||
|
0.439292 -0.757014 0.483687
|
||||||
|
0.419462 -0.722641 0.549401
|
||||||
|
0.684937 -0.393187 0.613404
|
||||||
|
0.419462 -0.722641 0.549401
|
||||||
|
-0.000000 -0.788497 0.615039
|
||||||
|
-0.000001 -0.919830 0.392316
|
||||||
|
0.797292 -0.459082 0.391880
|
||||||
|
-0.000001 -0.919830 0.392316
|
||||||
|
-0.000001 -1.000000 0.000000
|
||||||
|
-0.000001 -1.000000 0.000000
|
||||||
|
0.866677 -0.498871 0.000000
|
||||||
|
0.797292 -0.459082 0.391880
|
||||||
|
0.797292 -0.459082 0.391880
|
||||||
|
0.684937 -0.393187 0.613404
|
||||||
|
0.419462 -0.722641 0.549401
|
||||||
|
0.419462 -0.722641 0.549401
|
||||||
|
-0.000001 -0.919830 0.392316
|
||||||
|
0.797292 -0.459082 0.391880
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
0.459980 -0.263947 0.847791
|
||||||
|
0.530731 -0.000000 0.847540
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
0.530731 -0.000000 0.847540
|
||||||
|
0.459981 0.263946 0.847791
|
||||||
|
0.875931 -0.000001 0.482436
|
||||||
|
0.530731 -0.000000 0.847540
|
||||||
|
0.459980 -0.263947 0.847791
|
||||||
|
0.459980 -0.263947 0.847791
|
||||||
|
0.759342 -0.436180 0.482853
|
||||||
|
0.875931 -0.000001 0.482436
|
||||||
|
0.759343 0.436179 0.482853
|
||||||
|
0.459981 0.263946 0.847791
|
||||||
|
0.530731 -0.000000 0.847540
|
||||||
|
0.530731 -0.000000 0.847540
|
||||||
|
0.875931 -0.000001 0.482436
|
||||||
|
0.759343 0.436179 0.482853
|
||||||
|
0.836841 -0.000001 0.547447
|
||||||
|
0.875931 -0.000001 0.482436
|
||||||
|
0.759342 -0.436180 0.482853
|
||||||
|
0.759342 -0.436180 0.482853
|
||||||
|
0.684937 -0.393187 0.613404
|
||||||
|
0.836841 -0.000001 0.547447
|
||||||
|
0.684938 0.393186 0.613404
|
||||||
|
0.759343 0.436179 0.482853
|
||||||
|
0.875931 -0.000001 0.482436
|
||||||
|
0.875931 -0.000001 0.482436
|
||||||
|
0.836841 -0.000001 0.547447
|
||||||
|
0.684938 0.393186 0.613404
|
||||||
|
0.836841 -0.000001 0.547447
|
||||||
|
0.684937 -0.393187 0.613404
|
||||||
|
0.797292 -0.459082 0.391880
|
||||||
|
0.797292 0.459081 0.391880
|
||||||
|
0.797292 -0.459082 0.391880
|
||||||
|
0.866677 -0.498871 0.000000
|
||||||
|
0.866677 -0.498871 0.000000
|
||||||
|
0.866677 0.498869 -0.000000
|
||||||
|
0.797292 0.459081 0.391880
|
||||||
|
0.797292 0.459081 0.391880
|
||||||
|
0.684938 0.393186 0.613404
|
||||||
|
0.836841 -0.000001 0.547447
|
||||||
|
0.836841 -0.000001 0.547447
|
||||||
|
0.797292 -0.459082 0.391880
|
||||||
|
0.797292 0.459081 0.391880
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
0.459981 0.263946 0.847791
|
||||||
|
0.265980 0.457875 0.848296
|
||||||
|
0.000000 -0.000000 1.000000
|
||||||
|
0.265980 0.457875 0.848296
|
||||||
|
0.000000 0.529118 0.848548
|
||||||
|
0.439293 0.757013 0.483687
|
||||||
|
0.265980 0.457875 0.848296
|
||||||
|
0.459981 0.263946 0.847791
|
||||||
|
0.459981 0.263946 0.847791
|
||||||
|
0.759343 0.436179 0.482853
|
||||||
|
0.439293 0.757013 0.483687
|
||||||
|
0.000001 0.875010 0.484104
|
||||||
|
0.000000 0.529118 0.848548
|
||||||
|
0.265980 0.457875 0.848296
|
||||||
|
0.265980 0.457875 0.848296
|
||||||
|
0.439293 0.757013 0.483687
|
||||||
|
0.000001 0.875010 0.484104
|
||||||
|
0.419463 0.722640 0.549401
|
||||||
|
0.439293 0.757013 0.483687
|
||||||
|
0.759343 0.436179 0.482853
|
||||||
|
0.759343 0.436179 0.482853
|
||||||
|
0.684938 0.393186 0.613404
|
||||||
|
0.419463 0.722640 0.549401
|
||||||
|
0.000001 0.788497 0.615039
|
||||||
|
0.000001 0.875010 0.484104
|
||||||
|
0.439293 0.757013 0.483687
|
||||||
|
0.439293 0.757013 0.483687
|
||||||
|
0.419463 0.722640 0.549401
|
||||||
|
0.000001 0.788497 0.615039
|
||||||
|
0.419463 0.722640 0.549401
|
||||||
|
0.684938 0.393186 0.613404
|
||||||
|
0.797292 0.459081 0.391880
|
||||||
|
0.000001 0.919830 0.392316
|
||||||
|
0.797292 0.459081 0.391880
|
||||||
|
0.866677 0.498869 -0.000000
|
||||||
|
0.866677 0.498869 -0.000000
|
||||||
|
0.000001 1.000000 0.000000
|
||||||
|
0.000001 0.919830 0.392316
|
||||||
|
0.000001 0.919830 0.392316
|
||||||
|
0.000001 0.788497 0.615039
|
||||||
|
0.419463 0.722640 0.549401
|
||||||
|
0.419463 0.722640 0.549401
|
||||||
|
0.797292 0.459081 0.391880
|
||||||
|
0.000001 0.919830 0.392316
|
||||||
|
0.000000 0.000000 -1.000000
|
||||||
|
0.000000 0.000000 -1.000000
|
||||||
|
0.000000 -0.000000 -1.000000
|
||||||
|
0.000000 -0.000000 -1.000000
|
||||||
|
0.000000 -0.000000 -1.000000
|
||||||
|
0.000000 -0.000000 -1.000000
|
||||||
|
0.000000 0.000000 -1.000000
|
||||||
|
0.000000 -0.000000 -1.000000
|
||||||
|
0.000000 -0.000000 -1.000000
|
||||||
|
0.000000 -0.000000 -1.000000
|
||||||
|
0.000000 0.000000 -1.000000
|
||||||
|
0.000000 -0.000000 -1.000000
|
||||||
|
</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#LEDIndicator-Normal0-array" count="282" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="LEDIndicator-UV0">
|
||||||
|
<float_array id="LEDIndicator-UV0-array" count="180">
|
||||||
|
0.331040 0.999938
|
||||||
|
0.220938 0.799324
|
||||||
|
0.331041 0.775815
|
||||||
|
0.441144 0.799325
|
||||||
|
0.141050 0.582960
|
||||||
|
0.331041 0.554785
|
||||||
|
0.521033 0.582960
|
||||||
|
0.102792 0.361034
|
||||||
|
0.331041 0.328646
|
||||||
|
0.559290 0.361035
|
||||||
|
0.001390 0.116209
|
||||||
|
0.660694 0.116211
|
||||||
|
0.000033 0.000039
|
||||||
|
0.662052 0.000041
|
||||||
|
0.331040 0.999938
|
||||||
|
0.220938 0.799324
|
||||||
|
0.331041 0.775815
|
||||||
|
0.441144 0.799325
|
||||||
|
0.141050 0.582960
|
||||||
|
0.331041 0.554785
|
||||||
|
0.521033 0.582960
|
||||||
|
0.102792 0.361034
|
||||||
|
0.331041 0.328646
|
||||||
|
0.559290 0.361035
|
||||||
|
0.001390 0.116209
|
||||||
|
0.660694 0.116211
|
||||||
|
0.000033 0.000039
|
||||||
|
0.662052 0.000041
|
||||||
|
0.331040 0.999938
|
||||||
|
0.220938 0.799324
|
||||||
|
0.331041 0.775815
|
||||||
|
0.441144 0.799325
|
||||||
|
0.141050 0.582960
|
||||||
|
0.331041 0.554785
|
||||||
|
0.521033 0.582960
|
||||||
|
0.102792 0.361034
|
||||||
|
0.331041 0.328646
|
||||||
|
0.559290 0.361035
|
||||||
|
0.001390 0.116209
|
||||||
|
0.660694 0.116211
|
||||||
|
0.000033 0.000039
|
||||||
|
0.662052 0.000041
|
||||||
|
0.331040 0.999938
|
||||||
|
0.220938 0.799324
|
||||||
|
0.331041 0.775815
|
||||||
|
0.441144 0.799325
|
||||||
|
0.141050 0.582960
|
||||||
|
0.331041 0.554785
|
||||||
|
0.521033 0.582960
|
||||||
|
0.102792 0.361034
|
||||||
|
0.331041 0.328646
|
||||||
|
0.559290 0.361035
|
||||||
|
0.001390 0.116209
|
||||||
|
0.660694 0.116211
|
||||||
|
0.000033 0.000039
|
||||||
|
0.662052 0.000041
|
||||||
|
0.331040 0.999938
|
||||||
|
0.220938 0.799324
|
||||||
|
0.331041 0.775815
|
||||||
|
0.441144 0.799325
|
||||||
|
0.141050 0.582960
|
||||||
|
0.331041 0.554785
|
||||||
|
0.521033 0.582960
|
||||||
|
0.102792 0.361034
|
||||||
|
0.331041 0.328646
|
||||||
|
0.559290 0.361035
|
||||||
|
0.001390 0.116209
|
||||||
|
0.660694 0.116211
|
||||||
|
0.000033 0.000039
|
||||||
|
0.662052 0.000041
|
||||||
|
0.331040 0.999938
|
||||||
|
0.220938 0.799324
|
||||||
|
0.331041 0.775815
|
||||||
|
0.441144 0.799325
|
||||||
|
0.141050 0.582960
|
||||||
|
0.331041 0.554785
|
||||||
|
0.521033 0.582960
|
||||||
|
0.102792 0.361034
|
||||||
|
0.331041 0.328646
|
||||||
|
0.559290 0.361035
|
||||||
|
0.001390 0.116209
|
||||||
|
0.660694 0.116211
|
||||||
|
0.000033 0.000039
|
||||||
|
0.662052 0.000041
|
||||||
|
0.283335 0.017853
|
||||||
|
0.278499 0.011567
|
||||||
|
0.283335 0.005282
|
||||||
|
0.293006 0.005282
|
||||||
|
0.297841 0.011567
|
||||||
|
0.293006 0.017853
|
||||||
|
</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#LEDIndicator-UV0-array" count="90" stride="2">
|
||||||
|
<param name="S" type="float"/>
|
||||||
|
<param name="T" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<vertices id="LEDIndicator-VERTEX">
|
||||||
|
<input semantic="POSITION" source="#LEDIndicator-POSITION"/>
|
||||||
|
</vertices>
|
||||||
|
<triangles count="94" material="LEDIndicator_ncl1_1"><input semantic="VERTEX" offset="0" source="#LEDIndicator-VERTEX"/><input semantic="NORMAL" offset="1" source="#LEDIndicator-Normal0"/><input semantic="TEXCOORD" offset="2" set="0" source="#LEDIndicator-UV0"/><p> 38 0 0 12 1 1 0 2 2 38 3 0 0 4 2 1 5 3 2 6 5 0 7 2 12 8 1 12 9 1 15 10 4 2 11 5 3 12 6 1 13 3 0 14 2 0 15 2 2 16 5 3 17 6 4 18 8 2 19 5 15 20 4 15 21 4 18 22 7 4 23 8 5 24 9 3 25 6 2 26 5 2 27 5 4 28 8 5 29 9 4 30 8 18 31 7 7 32 10 6 33 11 7 34 10 9 35 12 9 36 12 8 37 13 6 38 11 6 39 11 5 40 9 4 41 8 4 42 8 7 43 10 6 44 11 38 45 14 10 46 15 11 47 16 38 48 14 11 49 16 12 50 17 14 51 19 11 52 16 10 53 15 10 54 15 13 55 18 14 56 19 15 57 20 12 58 17 11 59 16 11 60 16 14 61 19 15 62 20 17 63 22 14 64 19 13 65 18 13 66 18 16 67 21 17 68 22 18 69 23 15 70 20 14 71 19 14 72 19 17 73 22 18 74 23 17 75 22 16 76 21 45 77 24 7 78 25 45 79 24 47 80 26 47 81 26 9 82 27 7 83 25 7 84 25 18 85 23 17 86 22 17 87 22 45 88 24 7 89 25 38 90 28 1 91 29 19 92 30 38 93 28 19 94 30 23 95 31 20 96 33 19 97 30 1 98 29 1 99 29 3 100 32 20 101 33 21 102 34 23 103 31 19 104 30 19 105 30 20 106 33 21 107 34 22 108 36 20 109 33 3 110 32 3 111 32 5 112 35 22 113 36 27 114 37 21 115 34 20 116 33 20 117 33 22 118 36 27 119 37 22 120 36 5 121 35 6 122 38 29 123 39 6 124 38 8 125 40 8 126 40 30 127 41 29 128 39 29 129 39 27 130 37 22 131 36 22 132 36 6 133 38 29 134 39 38 135 42 23 136 43 24 137 44 38 138 42 24 139 44 25 140 45 26 141 47 24 142 44 23 143 43 23 144 43 21 145 46 26 146 47 32 147 48 25 148 45 24 149 44 24 150 44 26 151 47 32 152 48 28 153 50 26 154 47 21 155 46 21 156 46 27 157 49 28 158 50 34 159 51 32 160 48 26 161 47 26 162 47 28 163 50 34 164 51 28 165 50 27 166 49 29 167 52 36 168 53 29 169 52 30 170 54 30 171 54 37 172 55 36 173 53 36 174 53 34 175 51 28 176 50 28 177 50 29 178 52 36 179 53 38 180 56 25 181 57 31 182 58 38 183 56 31 184 58 39 185 59 33 186 61 31 187 58 25 188 57 25 189 57 32 190 60 33 191 61 41 192 62 39 193 59 31 194 58 31 195 58 33 196 61 41 197 62 35 198 64 33 199 61 32 200 60 32 201 60 34 202 63 35 203 64 43 204 65 41 205 62 33 206 61 33 207 61 35 208 64 43 209 65 35 210 64 34 211 63 36 212 66 46 213 67 36 214 66 37 215 68 37 216 68 48 217 69 46 218 67 46 219 67 43 220 65 35 221 64 35 222 64 36 223 66 46 224 67 38 225 70 39 226 71 40 227 72 38 228 70 40 229 72 10 230 73 42 231 75 40 232 72 39 233 71 39 234 71 41 235 74 42 236 75 13 237 76 10 238 73 40 239 72 40 240 72 42 241 75 13 242 76 44 243 78 42 244 75 41 245 74 41 246 74 43 247 77 44 248 78 16 249 79 13 250 76 42 251 75 42 252 75 44 253 78 16 254 79 44 255 78 43 256 77 46 257 80 45 258 81 46 259 80 48 260 82 48 261 82 47 262 83 45 263 81 45 264 81 16 265 79 44 266 78 44 267 78 46 268 80 45 269 81 47 270 85 48 271 86 37 272 87 37 273 87 30 274 88 8 275 89 47 276 85 37 277 87 8 278 89 9 279 84 47 280 85 8 281 89</p></triangles>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</library_geometries>
|
||||||
|
<library_visual_scenes>
|
||||||
|
<visual_scene id="LEDIndicator" name="LEDIndicator">
|
||||||
|
<node name="HuskyReplacement" id="HuskyReplacement" sid="HuskyReplacement"><matrix sid="matrix">0.100000 0.000000 0.000000 0.000000 0.000000 0.099400 0.000000 0.000000 0.000000 0.000000 0.100000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra><node name="LEDIndicator" id="LEDIndicator" sid="LEDIndicator"><matrix sid="matrix">1.000000 -0.000000 -0.000000 0.000000 0.000000 1.000000 -0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000</matrix><instance_geometry url="#LEDIndicator-lib"><bind_material><technique_common><instance_material symbol="LEDIndicator_ncl1_1" target="#LEDIndicator_ncl1_1"/></technique_common></bind_material></instance_geometry><extra><technique profile="FCOLLADA"><visibility>1.000000</visibility></technique></extra></node></node>
|
||||||
|
<extra><technique profile="MAX3D"><frame_rate>30.000000</frame_rate></technique><technique profile="FCOLLADA"><start_time>0.000000</start_time><end_time>3.333333</end_time></technique></extra>
|
||||||
|
</visual_scene>
|
||||||
|
</library_visual_scenes>
|
||||||
|
<scene>
|
||||||
|
<instance_visual_scene url="#LEDIndicator"></instance_visual_scene>
|
||||||
|
</scene>
|
||||||
|
</COLLADA>
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||||
|
<asset>
|
||||||
|
<contributor>
|
||||||
|
<author>VCGLab</author>
|
||||||
|
<authoring_tool>VCGLib | MeshLab</authoring_tool>
|
||||||
|
</contributor>
|
||||||
|
<created>Wed Aug 22 18:54:08 2018 GMT</created>
|
||||||
|
<modified>Wed Aug 22 18:54:08 2018 GMT</modified>
|
||||||
|
<up_axis>Y_UP</up_axis>
|
||||||
|
</asset>
|
||||||
|
<library_geometries>
|
||||||
|
<geometry id="shape0-lib" name="shape0">
|
||||||
|
<mesh>
|
||||||
|
<source id="shape0-lib-positions" name="position">
|
||||||
|
<float_array id="shape0-lib-positions-array" count="147">-0.0068518 0 0.0202589 -0.0059339 -0.00342592 0.0202589 -0.0118677 0 0.0152431 -0.0102777 -0.00593378 0.0152431 -0.0137036 0 0.0083912 -0.0118677 -0.00685184 0.0083912 -0.0179977 -0.010391 0.0036913 -0.0179977 0.010391 0.0036913 -0.0179977 -0.010391 4.45e-05 -0.0179977 0.010391 4.45e-05 0 0.00685184 0.0202589 -0.0034259 0.00593388 0.0202589 -0.0059338 0.00342592 0.0202589 0 0.0118677 0.0152431 -0.0059338 0.0102777 0.0152431 -0.0102777 0.00593388 0.0152431 0 0.0137036 0.0083912 -0.0068518 0.0118677 0.0083912 -0.0118677 0.00685184 0.0083912 -0.0034259 -0.00593388 0.0202589 -0.0059339 -0.0102777 0.0152431 0 -0.0118677 0.0152431 -0.0068518 -0.0118677 0.0083912 0 -0.00685184 0.0202589 0.0034259 -0.00593388 0.0202589 0.0059338 -0.00342592 0.0202589 0.0059338 -0.0102777 0.0152431 0 -0.0137036 0.0083912 0.0068518 -0.0118677 0.0083912 0 -0.020782 0.0036913 0 -0.020782 4.45e-05 0.0068518 0 0.0202589 0.0102777 -0.00593388 0.0152431 0.0118677 0 0.0152431 0.0118677 -0.00685184 0.0083912 0.0137036 0 0.0083912 0.0179977 -0.010391 0.0036913 0.0179977 -0.010391 4.45e-05 0 0 0.0220949 0.0059339 0.00342592 0.0202589 0.0034259 0.00593388 0.0202589 0.0102777 0.00593378 0.0152431 0.0059339 0.0102777 0.0152431 0.0118677 0.00685184 0.0083912 0.0068518 0.0118677 0.0083912 0 0.020782 0.0036913 0.0179977 0.010391 0.0036913 0 0.020782 4.45e-05 0.0179977 0.010391 4.45e-05</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor count="49" source="#shape0-lib-positions-array" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="shape0-lib-normals" name="normal">
|
||||||
|
<float_array id="shape0-lib-normals-array" count="180">-0.258207 0.0691885 0.963609 -0.258207 -0.069181 0.963609 -0.694739 0.18616 0.694753 -0.694739 0.186157 0.694754 -0.694754 -0.186144 0.694743 -0.694739 -0.18616 0.694753 -0.935114 0.250567 0.250555 -0.935115 0.250557 0.250563 -0.93511 -0.25057 0.250567 -0.935117 -0.250558 0.250555 -0.0691854 0.258206 0.963609 -0.189023 0.189018 0.963609 -0.186156 0.694749 0.694744 -0.186162 0.694744 0.694747 -0.50859 0.508578 0.694756 -0.508583 0.508597 0.694746 -0.250569 0.935111 0.250566 -0.250561 0.935115 0.250557 -0.684541 0.68456 0.250561 -0.684544 0.684555 0.250566 -0.189018 -0.189021 0.96361 -0.0691854 -0.258206 0.963609 -0.508583 -0.508591 0.694751 -0.508596 -0.508586 0.694745 -0.186155 -0.694745 0.694748 -0.186159 -0.694746 0.694746 -0.684558 -0.684545 0.250556 -0.684544 -0.684554 0.250571 -0.250566 -0.935114 0.250557 -0.250561 -0.935114 0.250562 0.0691854 -0.258206 0.963609 0.189023 -0.189018 0.963609 0.186156 -0.694749 0.694744 0.186162 -0.694744 0.694747 0.50859 -0.508578 0.694756 0.508583 -0.508597 0.694746 0.250569 -0.935111 0.250566 0.250561 -0.935115 0.250557 0.684541 -0.68456 0.250561 0.684544 -0.684555 0.250566 0.258207 -0.0691885 0.963609 0.258207 0.069181 0.963609 0.694739 -0.18616 0.694753 0.694739 -0.186157 0.694754 0.694754 0.186144 0.694743 0.694739 0.18616 0.694753 0.935114 -0.250567 0.250555 0.935115 -0.250557 0.250563 0.93511 0.25057 0.250567 0.935117 0.250558 0.250555 0.189018 0.189021 0.96361 0.0691854 0.258206 0.963609 0.508583 0.508591 0.694751 0.508596 0.508586 0.694745 0.186155 0.694745 0.694748 0.186159 0.694746 0.694746 0.684558 0.684545 0.250556 0.684544 0.684554 0.250571 0.250566 0.935114 0.250557 0.250561 0.935114 0.250562</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor count="60" source="#shape0-lib-normals-array" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="shape0-lib-map" name="map">
|
||||||
|
<float_array id="shape0-lib-map-array" count="360">0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor count="180" source="#shape0-lib-map-array" stride="2">
|
||||||
|
<param name="U" type="float"/>
|
||||||
|
<param name="V" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<vertices id="shape0-lib-vertices">
|
||||||
|
<input semantic="POSITION" source="#shape0-lib-positions"/>
|
||||||
|
</vertices>
|
||||||
|
<triangles count="60">
|
||||||
|
<input offset="0" semantic="VERTEX" source="#shape0-lib-vertices"/>
|
||||||
|
<input offset="1" semantic="NORMAL" source="#shape0-lib-normals"/>
|
||||||
|
<input offset="2" semantic="TEXCOORD" source="#shape0-lib-map"/>
|
||||||
|
<p>38 0 0 12 0 1 0 0 2 38 1 3 0 1 4 1 1 5 2 2 6 0 2 7 12 2 8 12 3 9 15 3 10 2 3 11 3 4 12 1 4 13 0 4 14 0 5 15 2 5 16 3 5 17 4 6 18 2 6 19 15 6 20 15 7 21 18 7 22 4 7 23 5 8 24 3 8 25 2 8 26 2 9 27 4 9 28 5 9 29 38 10 30 10 10 31 11 10 32 38 11 33 11 11 34 12 11 35 14 12 36 11 12 37 10 12 38 10 13 39 13 13 40 14 13 41 15 14 42 12 14 43 11 14 44 11 15 45 14 15 46 15 15 47 17 16 48 14 16 49 13 16 50 13 17 51 16 17 52 17 17 53 18 18 54 15 18 55 14 18 56 14 19 57 17 19 58 18 19 59 38 20 60 1 20 61 19 20 62 38 21 63 19 21 64 23 21 65 20 22 66 19 22 67 1 22 68 1 23 69 3 23 70 20 23 71 21 24 72 23 24 73 19 24 74 19 25 75 20 25 76 21 25 77 22 26 78 20 26 79 3 26 80 3 27 81 5 27 82 22 27 83 27 28 84 21 28 85 20 28 86 20 29 87 22 29 88 27 29 89 38 30 90 23 30 91 24 30 92 38 31 93 24 31 94 25 31 95 26 32 96 24 32 97 23 32 98 23 33 99 21 33 100 26 33 101 32 34 102 25 34 103 24 34 104 24 35 105 26 35 106 32 35 107 28 36 108 26 36 109 21 36 110 21 37 111 27 37 112 28 37 113 34 38 114 32 38 115 26 38 116 26 39 117 28 39 118 34 39 119 38 40 120 25 40 121 31 40 122 38 41 123 31 41 124 39 41 125 33 42 126 31 42 127 25 42 128 25 43 129 32 43 130 33 43 131 41 44 132 39 44 133 31 44 134 31 45 135 33 45 136 41 45 137 35 46 138 33 46 139 32 46 140 32 47 141 34 47 142 35 47 143 43 48 144 41 48 145 33 48 146 33 49 147 35 49 148 43 49 149 38 50 150 39 50 151 40 50 152 38 51 153 40 51 154 10 51 155 42 52 156 40 52 157 39 52 158 39 53 159 41 53 160 42 53 161 13 54 162 10 54 163 40 54 164 40 55 165 42 55 166 13 55 167 44 56 168 42 56 169 41 56 170 41 57 171 43 57 172 44 57 173 16 58 174 13 58 175 42 58 176 42 59 177 44 59 178 16 59 179</p>
|
||||||
|
</triangles>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</library_geometries>
|
||||||
|
<library_visual_scenes>
|
||||||
|
<visual_scene id="VisualSceneNode" name="VisualScene">
|
||||||
|
<node id="node" name="node">
|
||||||
|
<instance_geometry url="#shape0-lib"/>
|
||||||
|
</node>
|
||||||
|
</visual_scene>
|
||||||
|
</library_visual_scenes>
|
||||||
|
<scene>
|
||||||
|
<instance_visual_scene url="#VisualSceneNode"/>
|
||||||
|
</scene>
|
||||||
|
</COLLADA>
|
||||||
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 166 KiB |
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<model>
|
||||||
|
<name>X4_GPS_RGBD</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<sdf version="1.6">model.sdf</sdf>
|
||||||
|
|
||||||
|
<author>
|
||||||
|
<name>Luis Pinto</name>
|
||||||
|
<email>luis.pinto@mov.ai</email>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
|
||||||
|
<description>
|
||||||
|
X4 UAV with sensor configuration #1: IMU, pressure sensor, magnetometer + GPS , RGBD
|
||||||
|
</description>
|
||||||
|
</model>
|
||||||
@@ -0,0 +1,832 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<sdf version="1.6">
|
||||||
|
<model name="X4">
|
||||||
|
<pose>0 0 0.121078 0 0 0</pose>
|
||||||
|
<link name="base_link">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
|
||||||
|
<inertial>
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<mass>3.42</mass>
|
||||||
|
<inertia>
|
||||||
|
<ixx>0.075</ixx>
|
||||||
|
<ixy>0</ixy>
|
||||||
|
<ixz>0</ixz>
|
||||||
|
<iyy>0.075</iyy>
|
||||||
|
<iyz>0</iyz>
|
||||||
|
<izz>0.148916</izz>
|
||||||
|
</inertia>
|
||||||
|
</inertial>
|
||||||
|
|
||||||
|
<collision name="base_link_inertia_collision">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<box>
|
||||||
|
<size>0.3 0.3 0.25</size>
|
||||||
|
</box>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<visual name="base_link_inertia_visual">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/x4.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="marker_visual_1">
|
||||||
|
<pose frame="">-0.1 0 0.077 0 -0.1 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/led.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="marker_visual_2">
|
||||||
|
<pose frame="">-0.09 0.059 0.059 -0.785397 -0 0.2</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/led.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="marker_visual_3">
|
||||||
|
<pose frame="">-0.09 -0.059 0.059 0.785397 -0 -0.2</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/led.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="downward_flashlight_visual">
|
||||||
|
<pose frame="">-0.043704 0 0.102914 -0.2 0.000158 -1.57002</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>0.01 0.01 0.01</scale>
|
||||||
|
<uri>meshes/spotlight.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="left_flashlight_visual">
|
||||||
|
<pose frame="">-0.071985 0.090826 0.066102 0.06 -4.8e-05 -1.27</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>0.01 0.01 0.01</scale>
|
||||||
|
<uri>meshes/spotlight.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="right_flashlight_visual">
|
||||||
|
<pose frame="">-0.071985 -0.090826 0.066102 0.06 -4.8e-05 -1.87</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>0.01 0.01 0.01</scale>
|
||||||
|
<uri>meshes/spotlight.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<light name="right_light_source" type="spot">
|
||||||
|
<pose frame="">-0.0 -0.11 0.07 3.131592653589795 -1.5107899999999999 2.841592653589791</pose>
|
||||||
|
<attenuation>
|
||||||
|
<range>15</range>
|
||||||
|
<linear>0</linear>
|
||||||
|
<constant>0.1</constant>
|
||||||
|
<quadratic>0.01</quadratic>
|
||||||
|
</attenuation>
|
||||||
|
<diffuse>0.8 0.8 0.5 1</diffuse>
|
||||||
|
<specular>0.8 0.8 0.5 1</specular>
|
||||||
|
<spot>
|
||||||
|
<inner_angle>1</inner_angle>
|
||||||
|
<outer_angle>1.1</outer_angle>
|
||||||
|
<falloff>1</falloff>
|
||||||
|
</spot>
|
||||||
|
<direction>0 0 -1</direction>
|
||||||
|
<cast_shadows>1</cast_shadows>
|
||||||
|
</light>
|
||||||
|
<light name="downward_flashlight_source" type="spot">
|
||||||
|
<pose frame="">0.03 0 0.09 -0.01 -1.3708026535897933 0</pose>
|
||||||
|
<attenuation>
|
||||||
|
<range>15</range>
|
||||||
|
<linear>0</linear>
|
||||||
|
<constant>0.1</constant>
|
||||||
|
<quadratic>0.01</quadratic>
|
||||||
|
</attenuation>
|
||||||
|
<diffuse>0.8 0.8 0.5 1</diffuse>
|
||||||
|
<specular>0.8 0.8 0.5 1</specular>
|
||||||
|
<spot>
|
||||||
|
<inner_angle>1</inner_angle>
|
||||||
|
<outer_angle>1.1</outer_angle>
|
||||||
|
<falloff>1</falloff>
|
||||||
|
</spot>
|
||||||
|
<direction>0 0 -1</direction>
|
||||||
|
<cast_shadows>1</cast_shadows>
|
||||||
|
</light>
|
||||||
|
<light name="left_flashlight_source" type="spot">
|
||||||
|
<pose frame="">-0.0 0.11 0.07 3.131592653589795 -1.5107899999999999 -2.841592653589791</pose>
|
||||||
|
<attenuation>
|
||||||
|
<range>15</range>
|
||||||
|
<linear>0</linear>
|
||||||
|
<constant>0.1</constant>
|
||||||
|
<quadratic>0.01</quadratic>
|
||||||
|
</attenuation>
|
||||||
|
<diffuse>0.8 0.8 0.5 1</diffuse>
|
||||||
|
<specular>0.8 0.8 0.5 1</specular>
|
||||||
|
<spot>
|
||||||
|
<inner_angle>1</inner_angle>
|
||||||
|
<outer_angle>1.1</outer_angle>
|
||||||
|
<falloff>1</falloff>
|
||||||
|
</spot>
|
||||||
|
<direction>0 0 -1</direction>
|
||||||
|
<cast_shadows>1</cast_shadows>
|
||||||
|
</light>
|
||||||
|
|
||||||
|
<sensor name="imu_sensor" type="imu">
|
||||||
|
<always_on>1</always_on>
|
||||||
|
<update_rate>400</update_rate>
|
||||||
|
<imu>
|
||||||
|
<enable_orientation>0</enable_orientation>
|
||||||
|
<angular_velocity>
|
||||||
|
<x>
|
||||||
|
<noise type="gaussian">
|
||||||
|
<mean>0</mean>
|
||||||
|
<stddev>0.009</stddev>
|
||||||
|
<bias_mean>0.00075</bias_mean>
|
||||||
|
<bias_stddev>0.005</bias_stddev>
|
||||||
|
<dynamic_bias_stddev>0.00002</dynamic_bias_stddev>
|
||||||
|
<dynamic_bias_correlation_time>400.0</dynamic_bias_correlation_time>
|
||||||
|
<precision>0.00025</precision>
|
||||||
|
</noise>
|
||||||
|
</x>
|
||||||
|
<y>
|
||||||
|
<noise type="gaussian">
|
||||||
|
<mean>0</mean>
|
||||||
|
<stddev>0.009</stddev>
|
||||||
|
<bias_mean>0.00075</bias_mean>
|
||||||
|
<bias_stddev>0.005</bias_stddev>
|
||||||
|
<dynamic_bias_stddev>0.00002</dynamic_bias_stddev>
|
||||||
|
<dynamic_bias_correlation_time>400.0</dynamic_bias_correlation_time>
|
||||||
|
<precision>0.00025</precision>
|
||||||
|
</noise>
|
||||||
|
</y>
|
||||||
|
<z>
|
||||||
|
<noise type="gaussian">
|
||||||
|
<mean>0</mean>
|
||||||
|
<stddev>0.009</stddev>
|
||||||
|
<bias_mean>0.00075</bias_mean>
|
||||||
|
<bias_stddev>0.005</bias_stddev>
|
||||||
|
<dynamic_bias_stddev>0.00002</dynamic_bias_stddev>
|
||||||
|
<dynamic_bias_correlation_time>400.0</dynamic_bias_correlation_time>
|
||||||
|
<precision>0.00025</precision>
|
||||||
|
</noise>
|
||||||
|
</z>
|
||||||
|
</angular_velocity>
|
||||||
|
<linear_acceleration>
|
||||||
|
<x>
|
||||||
|
<noise type="gaussian">
|
||||||
|
<mean>0</mean>
|
||||||
|
<stddev>0.021</stddev>
|
||||||
|
<bias_mean>0.05</bias_mean>
|
||||||
|
<bias_stddev>0.0075</bias_stddev>
|
||||||
|
<dynamic_bias_stddev>0.000375</dynamic_bias_stddev>
|
||||||
|
<dynamic_bias_correlation_time>175.0</dynamic_bias_correlation_time>
|
||||||
|
<precision>0.005</precision>
|
||||||
|
</noise>
|
||||||
|
</x>
|
||||||
|
<y>
|
||||||
|
<noise type="gaussian">
|
||||||
|
<mean>0</mean>
|
||||||
|
<stddev>0.021</stddev>
|
||||||
|
<bias_mean>0.05</bias_mean>
|
||||||
|
<bias_stddev>0.0075</bias_stddev>
|
||||||
|
<dynamic_bias_stddev>0.000375</dynamic_bias_stddev>
|
||||||
|
<dynamic_bias_correlation_time>175.0</dynamic_bias_correlation_time>
|
||||||
|
<precision>0.005</precision>
|
||||||
|
</noise>
|
||||||
|
</y>
|
||||||
|
<z>
|
||||||
|
<noise type="gaussian">
|
||||||
|
<mean>0</mean>
|
||||||
|
<stddev>0.021</stddev>
|
||||||
|
<bias_mean>0.05</bias_mean>
|
||||||
|
<bias_stddev>0.0075</bias_stddev>
|
||||||
|
<dynamic_bias_stddev>0.000375</dynamic_bias_stddev>
|
||||||
|
<dynamic_bias_correlation_time>175.0</dynamic_bias_correlation_time>
|
||||||
|
<precision>0.005</precision>
|
||||||
|
</noise>
|
||||||
|
</z>
|
||||||
|
</linear_acceleration>
|
||||||
|
</imu>
|
||||||
|
</sensor>
|
||||||
|
|
||||||
|
<visual name="camera_mount_base_visual">
|
||||||
|
<pose>0.05 0 -0.030 0 0.0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<box>
|
||||||
|
<size>0.06 0.06 0.006</size>
|
||||||
|
</box>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="camera_mount_arm_visual">
|
||||||
|
<pose>0.08 0 -0.040 0 0.0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<cylinder>
|
||||||
|
<radius>0.005</radius>
|
||||||
|
<length>0.08</length>
|
||||||
|
</cylinder>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="camera_mount_arm2_visual">
|
||||||
|
<pose>0.08 0 -0.08 0 1.57 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<cylinder>
|
||||||
|
<radius>0.01</radius>
|
||||||
|
<length>0.025</length>
|
||||||
|
</cylinder>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<visual name="camera_visual">
|
||||||
|
<pose>0.1 0 -0.08 0 0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<box>
|
||||||
|
<size>0.02 0.025 0.025</size>
|
||||||
|
</box>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
<sensor name="camera_front" type="rgbd_camera">
|
||||||
|
<pose>0.2 0 0 0 +.785 0</pose>
|
||||||
|
<always_on>1</always_on>
|
||||||
|
<update_rate>20</update_rate>
|
||||||
|
<camera name="camera_front">
|
||||||
|
<horizontal_fov>1.0472</horizontal_fov>
|
||||||
|
<lens>
|
||||||
|
<intrinsics>
|
||||||
|
<!-- fx = fy = width / ( 2 * tan (hfov / 2 ) ) -->
|
||||||
|
<fx>277.1</fx>
|
||||||
|
<fy>277.1</fy>
|
||||||
|
<!-- cx = ( width + 1 ) / 2 -->
|
||||||
|
<cx>160.5</cx>
|
||||||
|
<!-- cy = ( height + 1 ) / 2 -->
|
||||||
|
<cy>120.5</cy>
|
||||||
|
<s>0</s>
|
||||||
|
</intrinsics>
|
||||||
|
</lens>
|
||||||
|
<distortion>
|
||||||
|
<k1>0.0</k1>
|
||||||
|
<k2>0.0</k2>
|
||||||
|
<k3>0.0</k3>
|
||||||
|
<p1>0.0</p1>
|
||||||
|
<p2>0.0</p2>
|
||||||
|
<center>0.5 0.5</center>
|
||||||
|
</distortion>
|
||||||
|
<image>
|
||||||
|
<width>320</width>
|
||||||
|
<height>240</height>
|
||||||
|
<format>R8G8B8</format>
|
||||||
|
</image>
|
||||||
|
<clip>
|
||||||
|
<near>0.01</near>
|
||||||
|
<far>300</far>
|
||||||
|
</clip>
|
||||||
|
<depth_camera>
|
||||||
|
<clip>
|
||||||
|
<near>0.1</near>
|
||||||
|
<far>10</far>
|
||||||
|
</clip>
|
||||||
|
</depth_camera>
|
||||||
|
<noise>
|
||||||
|
<type>gaussian</type>
|
||||||
|
<mean>0</mean>
|
||||||
|
<stddev>0.007</stddev>
|
||||||
|
</noise>
|
||||||
|
</camera>
|
||||||
|
</sensor>
|
||||||
|
</link>
|
||||||
|
<link name="rotor_0">
|
||||||
|
<pose frame="">0.247 0.1506 0.028 0.087267 0 0.523599</pose>
|
||||||
|
<inertial>
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<mass>0.005</mass>
|
||||||
|
<inertia>
|
||||||
|
<ixx>9.75e-07</ixx>
|
||||||
|
<ixy>0</ixy>
|
||||||
|
<ixz>0</ixz>
|
||||||
|
<iyy>8.13545e-05</iyy>
|
||||||
|
<iyz>0</iyz>
|
||||||
|
<izz>8.22545e-05</izz>
|
||||||
|
</inertia>
|
||||||
|
</inertial>
|
||||||
|
<collision name="rotor_0_collision">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<cylinder>
|
||||||
|
<length>0.005</length>
|
||||||
|
<radius>0.1397</radius>
|
||||||
|
</cylinder>
|
||||||
|
</geometry>
|
||||||
|
<surface>
|
||||||
|
<contact>
|
||||||
|
<ode />
|
||||||
|
</contact>
|
||||||
|
<friction>
|
||||||
|
<ode />
|
||||||
|
</friction>
|
||||||
|
</surface>
|
||||||
|
</collision>
|
||||||
|
<visual name="rotor_0_visual">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/neo11_propeller_ccw.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
<material>
|
||||||
|
<diffuse>1 0 0 1</diffuse>
|
||||||
|
<script>
|
||||||
|
<name>Gazebo/Red</name>
|
||||||
|
<uri>file:///media/materials/scripts/gazebo.material</uri>
|
||||||
|
</script>
|
||||||
|
</material>
|
||||||
|
<cast_shadows>0</cast_shadows>
|
||||||
|
</visual>
|
||||||
|
<gravity>1</gravity>
|
||||||
|
<velocity_decay />
|
||||||
|
</link>
|
||||||
|
<joint name="rotor_0_joint" type="revolute">
|
||||||
|
<child>rotor_0</child>
|
||||||
|
<parent>base_link</parent>
|
||||||
|
<axis>
|
||||||
|
<xyz>0.043578 -0.075479 0.996195</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="rotor_1">
|
||||||
|
<pose frame="">-0.00067 0.28929 0.028 0 -0.087267 0</pose>
|
||||||
|
<inertial>
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<mass>0.005</mass>
|
||||||
|
<inertia>
|
||||||
|
<ixx>9.75e-07</ixx>
|
||||||
|
<ixy>0</ixy>
|
||||||
|
<ixz>0</ixz>
|
||||||
|
<iyy>8.13545e-05</iyy>
|
||||||
|
<iyz>0</iyz>
|
||||||
|
<izz>8.22545e-05</izz>
|
||||||
|
</inertia>
|
||||||
|
</inertial>
|
||||||
|
<collision name="rotor_1_collision">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<cylinder>
|
||||||
|
<length>0.005</length>
|
||||||
|
<radius>0.1397</radius>
|
||||||
|
</cylinder>
|
||||||
|
</geometry>
|
||||||
|
<surface>
|
||||||
|
<contact>
|
||||||
|
<ode />
|
||||||
|
</contact>
|
||||||
|
<friction>
|
||||||
|
<ode />
|
||||||
|
</friction>
|
||||||
|
</surface>
|
||||||
|
</collision>
|
||||||
|
<visual name="rotor_1_visual">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/neo11_propeller_cw.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
<material>
|
||||||
|
<diffuse>0 0 1 1</diffuse>
|
||||||
|
<script>
|
||||||
|
<name>Gazebo/Blue</name>
|
||||||
|
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||||
|
</script>
|
||||||
|
</material>
|
||||||
|
<cast_shadows>0</cast_shadows>
|
||||||
|
</visual>
|
||||||
|
<gravity>1</gravity>
|
||||||
|
<velocity_decay />
|
||||||
|
</link>
|
||||||
|
<joint name="rotor_1_joint" type="revolute">
|
||||||
|
<child>rotor_1</child>
|
||||||
|
<parent>base_link</parent>
|
||||||
|
<axis>
|
||||||
|
<xyz>-0.087156 0 0.996195</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="rotor_2">
|
||||||
|
<pose frame="">-0.2501 0.1454 0.028 0.087267 -0 2.61799</pose>
|
||||||
|
<inertial>
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<mass>0.005</mass>
|
||||||
|
<inertia>
|
||||||
|
<ixx>9.75e-07</ixx>
|
||||||
|
<ixy>0</ixy>
|
||||||
|
<ixz>0</ixz>
|
||||||
|
<iyy>8.13545e-05</iyy>
|
||||||
|
<iyz>0</iyz>
|
||||||
|
<izz>8.22545e-05</izz>
|
||||||
|
</inertia>
|
||||||
|
</inertial>
|
||||||
|
<collision name="rotor_2_collision">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<cylinder>
|
||||||
|
<length>0.005</length>
|
||||||
|
<radius>0.1397</radius>
|
||||||
|
</cylinder>
|
||||||
|
</geometry>
|
||||||
|
<surface>
|
||||||
|
<contact>
|
||||||
|
<ode />
|
||||||
|
</contact>
|
||||||
|
<friction>
|
||||||
|
<ode />
|
||||||
|
</friction>
|
||||||
|
</surface>
|
||||||
|
</collision>
|
||||||
|
<visual name="rotor_2_visual">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/neo11_propeller_ccw.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
<material>
|
||||||
|
<diffuse>0 0 1 1</diffuse>
|
||||||
|
<script>
|
||||||
|
<name>Gazebo/Blue</name>
|
||||||
|
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||||
|
</script>
|
||||||
|
</material>
|
||||||
|
<cast_shadows>0</cast_shadows>
|
||||||
|
</visual>
|
||||||
|
<gravity>1</gravity>
|
||||||
|
<velocity_decay />
|
||||||
|
</link>
|
||||||
|
<joint name="rotor_2_joint" type="revolute">
|
||||||
|
<child>rotor_2</child>
|
||||||
|
<parent>base_link</parent>
|
||||||
|
<axis>
|
||||||
|
<xyz>0.043578 0.075479 0.996195</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="rotor_3">
|
||||||
|
<pose frame="">-0.2501 -0.1454 0.028 -0.087267 -0 -2.61799</pose>
|
||||||
|
<inertial>
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<mass>0.005</mass>
|
||||||
|
<inertia>
|
||||||
|
<ixx>9.75e-07</ixx>
|
||||||
|
<ixy>0</ixy>
|
||||||
|
<ixz>0</ixz>
|
||||||
|
<iyy>8.13545e-05</iyy>
|
||||||
|
<iyz>0</iyz>
|
||||||
|
<izz>8.22545e-05</izz>
|
||||||
|
</inertia>
|
||||||
|
</inertial>
|
||||||
|
<collision name="rotor_3_collision">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<cylinder>
|
||||||
|
<length>0.005</length>
|
||||||
|
<radius>0.1397</radius>
|
||||||
|
</cylinder>
|
||||||
|
</geometry>
|
||||||
|
<surface>
|
||||||
|
<contact>
|
||||||
|
<ode />
|
||||||
|
</contact>
|
||||||
|
<friction>
|
||||||
|
<ode />
|
||||||
|
</friction>
|
||||||
|
</surface>
|
||||||
|
</collision>
|
||||||
|
<visual name="rotor_3_visual">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/neo11_propeller_cw.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
<material>
|
||||||
|
<diffuse>0 0 1 1</diffuse>
|
||||||
|
<script>
|
||||||
|
<name>Gazebo/Blue</name>
|
||||||
|
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||||
|
</script>
|
||||||
|
</material>
|
||||||
|
<cast_shadows>0</cast_shadows>
|
||||||
|
</visual>
|
||||||
|
<gravity>1</gravity>
|
||||||
|
<velocity_decay />
|
||||||
|
</link>
|
||||||
|
<joint name="rotor_3_joint" type="revolute">
|
||||||
|
<child>rotor_3</child>
|
||||||
|
<parent>base_link</parent>
|
||||||
|
<axis>
|
||||||
|
<xyz>0.043578 -0.075479 0.996195</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="rotor_4">
|
||||||
|
<pose frame="">-0.00067 -0.28929 0.028 -0 0.087267 -3.14159</pose>
|
||||||
|
<inertial>
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<mass>0.005</mass>
|
||||||
|
<inertia>
|
||||||
|
<ixx>9.75e-07</ixx>
|
||||||
|
<ixy>0</ixy>
|
||||||
|
<ixz>0</ixz>
|
||||||
|
<iyy>8.13545e-05</iyy>
|
||||||
|
<iyz>0</iyz>
|
||||||
|
<izz>8.22545e-05</izz>
|
||||||
|
</inertia>
|
||||||
|
</inertial>
|
||||||
|
<collision name="rotor_4_collision">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<cylinder>
|
||||||
|
<length>0.005</length>
|
||||||
|
<radius>0.1397</radius>
|
||||||
|
</cylinder>
|
||||||
|
</geometry>
|
||||||
|
<surface>
|
||||||
|
<contact>
|
||||||
|
<ode />
|
||||||
|
</contact>
|
||||||
|
<friction>
|
||||||
|
<ode />
|
||||||
|
</friction>
|
||||||
|
</surface>
|
||||||
|
</collision>
|
||||||
|
<visual name="rotor_4_visual">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/neo11_propeller_ccw.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
<material>
|
||||||
|
<diffuse>0 0 1 1</diffuse>
|
||||||
|
<script>
|
||||||
|
<name>Gazebo/Blue</name>
|
||||||
|
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||||
|
</script>
|
||||||
|
</material>
|
||||||
|
<cast_shadows>0</cast_shadows>
|
||||||
|
</visual>
|
||||||
|
<gravity>1</gravity>
|
||||||
|
<velocity_decay />
|
||||||
|
</link>
|
||||||
|
<joint name="rotor_4_joint" type="revolute">
|
||||||
|
<child>rotor_4</child>
|
||||||
|
<parent>base_link</parent>
|
||||||
|
<axis>
|
||||||
|
<xyz>-0.087156 -0 0.996195</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="rotor_5">
|
||||||
|
<pose frame="">0.247 -0.1506 0.028 -0.087267 0 -0.523599</pose>
|
||||||
|
<inertial>
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<mass>0.005</mass>
|
||||||
|
<inertia>
|
||||||
|
<ixx>9.75e-07</ixx>
|
||||||
|
<ixy>0</ixy>
|
||||||
|
<ixz>0</ixz>
|
||||||
|
<iyy>8.13545e-05</iyy>
|
||||||
|
<iyz>0</iyz>
|
||||||
|
<izz>8.22545e-05</izz>
|
||||||
|
</inertia>
|
||||||
|
</inertial>
|
||||||
|
<collision name="rotor_5_collision">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<cylinder>
|
||||||
|
<length>0.005</length>
|
||||||
|
<radius>0.1397</radius>
|
||||||
|
</cylinder>
|
||||||
|
</geometry>
|
||||||
|
<surface>
|
||||||
|
<contact>
|
||||||
|
<ode />
|
||||||
|
</contact>
|
||||||
|
<friction>
|
||||||
|
<ode />
|
||||||
|
</friction>
|
||||||
|
</surface>
|
||||||
|
</collision>
|
||||||
|
<visual name="rotor_5_visual">
|
||||||
|
<pose frame="">0 0 0 0 -0 0</pose>
|
||||||
|
<geometry>
|
||||||
|
<mesh>
|
||||||
|
<scale>1 1 1</scale>
|
||||||
|
<uri>meshes/neo11_propeller_cw.dae</uri>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
<material>
|
||||||
|
<diffuse>1 0 0 1</diffuse>
|
||||||
|
<script>
|
||||||
|
<name>Gazebo/Red</name>
|
||||||
|
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||||
|
</script>
|
||||||
|
</material>
|
||||||
|
<cast_shadows>0</cast_shadows>
|
||||||
|
</visual>
|
||||||
|
<gravity>1</gravity>
|
||||||
|
<velocity_decay />
|
||||||
|
</link>
|
||||||
|
<joint name="rotor_5_joint" type="revolute">
|
||||||
|
<child>rotor_5</child>
|
||||||
|
<parent>base_link</parent>
|
||||||
|
<axis>
|
||||||
|
<xyz>0.043578 0.075479 0.996195</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>
|
||||||
|
<!-- now some plugins -->
|
||||||
|
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||||
|
<robotNamespace>X4</robotNamespace>
|
||||||
|
<jointName>rotor_0_joint</jointName>
|
||||||
|
<linkName>rotor_0</linkName>
|
||||||
|
<turningDirection>ccw</turningDirection>
|
||||||
|
<timeConstantUp>0.0182</timeConstantUp>
|
||||||
|
<timeConstantDown>0.0182</timeConstantDown>
|
||||||
|
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||||
|
<motorConstant>1.269e-05</motorConstant>
|
||||||
|
<momentConstant>0.016754</momentConstant>
|
||||||
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||||
|
<motorNumber>0</motorNumber>
|
||||||
|
<rotorDragCoefficient>2.0673e-04</rotorDragCoefficient>
|
||||||
|
<rotorDragCoefficient>0</rotorDragCoefficient>
|
||||||
|
<rollingMomentCoefficient>0</rollingMomentCoefficient>
|
||||||
|
<motorSpeedPubTopic>motor_speed/0</motorSpeedPubTopic>
|
||||||
|
<rotorVelocitySlowdownSim>2</rotorVelocitySlowdownSim>
|
||||||
|
<motorType>velocity</motorType>
|
||||||
|
</plugin>
|
||||||
|
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||||
|
<robotNamespace>X4</robotNamespace>
|
||||||
|
<jointName>rotor_1_joint</jointName>
|
||||||
|
<linkName>rotor_1</linkName>
|
||||||
|
<turningDirection>cw</turningDirection>
|
||||||
|
<timeConstantUp>0.0182</timeConstantUp>
|
||||||
|
<timeConstantDown>0.0182</timeConstantDown>
|
||||||
|
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||||
|
<motorConstant>1.269e-05</motorConstant>
|
||||||
|
<momentConstant>0.016754</momentConstant>
|
||||||
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||||
|
<motorNumber>1</motorNumber>
|
||||||
|
<rotorDragCoefficient>2.0673e-04</rotorDragCoefficient>
|
||||||
|
<rotorDragCoefficient>0</rotorDragCoefficient>
|
||||||
|
<rollingMomentCoefficient>0</rollingMomentCoefficient>
|
||||||
|
<motorSpeedPubTopic>motor_speed/1</motorSpeedPubTopic>
|
||||||
|
<rotorVelocitySlowdownSim>2</rotorVelocitySlowdownSim>
|
||||||
|
<motorType>velocity</motorType>
|
||||||
|
</plugin>
|
||||||
|
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||||
|
<robotNamespace>X4</robotNamespace>
|
||||||
|
<jointName>rotor_2_joint</jointName>
|
||||||
|
<linkName>rotor_2</linkName>
|
||||||
|
<turningDirection>ccw</turningDirection>
|
||||||
|
<timeConstantUp>0.0182</timeConstantUp>
|
||||||
|
<timeConstantDown>0.0182</timeConstantDown>
|
||||||
|
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||||
|
<motorConstant>1.269e-05</motorConstant>
|
||||||
|
<momentConstant>0.016754</momentConstant>
|
||||||
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||||
|
<motorNumber>2</motorNumber>
|
||||||
|
<rotorDragCoefficient>2.0673e-04</rotorDragCoefficient>
|
||||||
|
<rotorDragCoefficient>0</rotorDragCoefficient>
|
||||||
|
<rollingMomentCoefficient>0</rollingMomentCoefficient>
|
||||||
|
<motorSpeedPubTopic>motor_speed/2</motorSpeedPubTopic>
|
||||||
|
<rotorVelocitySlowdownSim>2</rotorVelocitySlowdownSim>
|
||||||
|
<motorType>velocity</motorType>
|
||||||
|
</plugin>
|
||||||
|
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||||
|
<robotNamespace>X4</robotNamespace>
|
||||||
|
<jointName>rotor_3_joint</jointName>
|
||||||
|
<linkName>rotor_3</linkName>
|
||||||
|
<turningDirection>cw</turningDirection>
|
||||||
|
<timeConstantUp>0.0182</timeConstantUp>
|
||||||
|
<timeConstantDown>0.0182</timeConstantDown>
|
||||||
|
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||||
|
<motorConstant>1.269e-05</motorConstant>
|
||||||
|
<momentConstant>0.016754</momentConstant>
|
||||||
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||||
|
<motorNumber>3</motorNumber>
|
||||||
|
<rotorDragCoefficient>2.0673e-04</rotorDragCoefficient>
|
||||||
|
<rotorDragCoefficient>0</rotorDragCoefficient>
|
||||||
|
<rollingMomentCoefficient>0</rollingMomentCoefficient>
|
||||||
|
<motorSpeedPubTopic>motor_speed/3</motorSpeedPubTopic>
|
||||||
|
<rotorVelocitySlowdownSim>2</rotorVelocitySlowdownSim>
|
||||||
|
<motorType>velocity</motorType>
|
||||||
|
</plugin>
|
||||||
|
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||||
|
<robotNamespace>X4</robotNamespace>
|
||||||
|
<jointName>rotor_4_joint</jointName>
|
||||||
|
<linkName>rotor_4</linkName>
|
||||||
|
<turningDirection>ccw</turningDirection>
|
||||||
|
<timeConstantUp>0.0182</timeConstantUp>
|
||||||
|
<timeConstantDown>0.0182</timeConstantDown>
|
||||||
|
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||||
|
<motorConstant>1.269e-05</motorConstant>
|
||||||
|
<momentConstant>0.016754</momentConstant>
|
||||||
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||||
|
<motorNumber>4</motorNumber>
|
||||||
|
<rotorDragCoefficient>2.0673e-04</rotorDragCoefficient>
|
||||||
|
<rotorDragCoefficient>0</rotorDragCoefficient>
|
||||||
|
<rollingMomentCoefficient>0</rollingMomentCoefficient>
|
||||||
|
<motorSpeedPubTopic>motor_speed/4</motorSpeedPubTopic>
|
||||||
|
<rotorVelocitySlowdownSim>2</rotorVelocitySlowdownSim>
|
||||||
|
<motorType>velocity</motorType>
|
||||||
|
</plugin>
|
||||||
|
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||||
|
<robotNamespace>X4</robotNamespace>
|
||||||
|
<jointName>rotor_5_joint</jointName>
|
||||||
|
<linkName>rotor_5</linkName>
|
||||||
|
<turningDirection>cw</turningDirection>
|
||||||
|
<timeConstantUp>0.0182</timeConstantUp>
|
||||||
|
<timeConstantDown>0.0182</timeConstantDown>
|
||||||
|
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||||
|
<motorConstant>1.269e-05</motorConstant>
|
||||||
|
<momentConstant>0.016754</momentConstant>
|
||||||
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||||
|
<motorNumber>5</motorNumber>
|
||||||
|
<rotorDragCoefficient>2.0673e-04</rotorDragCoefficient>
|
||||||
|
<rotorDragCoefficient>0</rotorDragCoefficient>
|
||||||
|
<rollingMomentCoefficient>0</rollingMomentCoefficient>
|
||||||
|
<motorSpeedPubTopic>motor_speed/5</motorSpeedPubTopic>
|
||||||
|
<rotorVelocitySlowdownSim>2</rotorVelocitySlowdownSim>
|
||||||
|
<motorType>velocity</motorType>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<plugin filename="ignition-gazebo-odometry-publisher-system" name="ignition::gazebo::systems::OdometryPublisher">
|
||||||
|
<dimensions>3</dimensions>
|
||||||
|
<odom_frame>X4/odom</odom_frame>
|
||||||
|
<robot_base_frame>X4/base_footprint</robot_base_frame>
|
||||||
|
</plugin>
|
||||||
|
</model>
|
||||||
|
</sdf>
|
||||||
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 206 KiB |
@@ -1,20 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<model>
|
|
||||||
<name>x3</name>
|
|
||||||
<version>1.0</version>
|
|
||||||
<sdf version="1.6">model.sdf</sdf>
|
|
||||||
|
|
||||||
<author>
|
|
||||||
<name>Carlos Aguero</name>
|
|
||||||
<email>caguero@openrobotics.org</email>
|
|
||||||
</author>
|
|
||||||
|
|
||||||
<author>
|
|
||||||
<name>Cole Biesemeyer</name>
|
|
||||||
<email>cole@openrobotics.org</email>
|
|
||||||
</author>
|
|
||||||
|
|
||||||
<description>
|
|
||||||
</description>
|
|
||||||
</model>
|
|
||||||
@@ -1,318 +0,0 @@
|
|||||||
<sdf version='1.6'>
|
|
||||||
<model name='x3'>
|
|
||||||
<pose>0 0 0.053302 0 0 0</pose>
|
|
||||||
<link name='X3/base_link'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<inertial>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<mass>1.5</mass>
|
|
||||||
<inertia>
|
|
||||||
<ixx>0.0347563</ixx>
|
|
||||||
<ixy>0</ixy>
|
|
||||||
<ixz>0</ixz>
|
|
||||||
<iyy>0.07</iyy>
|
|
||||||
<iyz>0</iyz>
|
|
||||||
<izz>0.0977</izz>
|
|
||||||
</inertia>
|
|
||||||
</inertial>
|
|
||||||
<collision name='X3/base_link_inertia_collision'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<box>
|
|
||||||
<size>0.47 0.47 0.11</size>
|
|
||||||
</box>
|
|
||||||
</geometry>
|
|
||||||
</collision>
|
|
||||||
<visual name='X3/base_link_inertia_visual'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<mesh>
|
|
||||||
<scale>1 1 1</scale>
|
|
||||||
<uri>model://x3/meshes/x3.dae</uri>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
</visual>
|
|
||||||
<sensor name="imu_sensor" type="imu">
|
|
||||||
<always_on>1</always_on>
|
|
||||||
<update_rate>250</update_rate>
|
|
||||||
<visualize>true</visualize>
|
|
||||||
<topic>imu</topic>
|
|
||||||
</sensor>
|
|
||||||
</link>
|
|
||||||
<link name='X3/rotor_0'>
|
|
||||||
<pose frame=''>0.13 -0.22 0.023 0 -0 0</pose>
|
|
||||||
<inertial>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<mass>0.005</mass>
|
|
||||||
<inertia>
|
|
||||||
<ixx>9.75e-07</ixx>
|
|
||||||
<ixy>0</ixy>
|
|
||||||
<ixz>0</ixz>
|
|
||||||
<iyy>4.17041e-05</iyy>
|
|
||||||
<iyz>0</iyz>
|
|
||||||
<izz>4.26041e-05</izz>
|
|
||||||
</inertia>
|
|
||||||
</inertial>
|
|
||||||
<collision name='X3/rotor_0_collision'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<cylinder>
|
|
||||||
<length>0.005</length>
|
|
||||||
<radius>0.1</radius>
|
|
||||||
</cylinder>
|
|
||||||
</geometry>
|
|
||||||
<surface>
|
|
||||||
<contact>
|
|
||||||
<ode/>
|
|
||||||
</contact>
|
|
||||||
<friction>
|
|
||||||
<ode/>
|
|
||||||
</friction>
|
|
||||||
</surface>
|
|
||||||
</collision>
|
|
||||||
<visual name='X3/rotor_0_visual'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<mesh>
|
|
||||||
<scale>0.1 0.1 0.1</scale>
|
|
||||||
<uri>model://x3/meshes/propeller_ccw.dae</uri>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<material>
|
|
||||||
<script>
|
|
||||||
<name>Gazebo/Blue</name>
|
|
||||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
|
||||||
</script>
|
|
||||||
</material>
|
|
||||||
</visual>
|
|
||||||
<gravity>1</gravity>
|
|
||||||
<velocity_decay/>
|
|
||||||
</link>
|
|
||||||
<joint name='X3/rotor_0_joint' type='revolute'>
|
|
||||||
<child>X3/rotor_0</child>
|
|
||||||
<parent>X3/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='X3/rotor_1'>
|
|
||||||
<pose frame=''>-0.13 0.2 0.023 0 -0 0</pose>
|
|
||||||
<inertial>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<mass>0.005</mass>
|
|
||||||
<inertia>
|
|
||||||
<ixx>9.75e-07</ixx>
|
|
||||||
<ixy>0</ixy>
|
|
||||||
<ixz>0</ixz>
|
|
||||||
<iyy>4.17041e-05</iyy>
|
|
||||||
<iyz>0</iyz>
|
|
||||||
<izz>4.26041e-05</izz>
|
|
||||||
</inertia>
|
|
||||||
</inertial>
|
|
||||||
<collision name='X3/rotor_1_collision'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<cylinder>
|
|
||||||
<length>0.005</length>
|
|
||||||
<radius>0.1</radius>
|
|
||||||
</cylinder>
|
|
||||||
</geometry>
|
|
||||||
<surface>
|
|
||||||
<contact>
|
|
||||||
<ode/>
|
|
||||||
</contact>
|
|
||||||
<friction>
|
|
||||||
<ode/>
|
|
||||||
</friction>
|
|
||||||
</surface>
|
|
||||||
</collision>
|
|
||||||
<visual name='X3/rotor_1_visual'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<mesh>
|
|
||||||
<scale>0.1 0.1 0.1</scale>
|
|
||||||
<uri>model://x3/meshes/propeller_ccw.dae</uri>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<material>
|
|
||||||
<script>
|
|
||||||
<name>Gazebo/Red</name>
|
|
||||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
|
||||||
</script>
|
|
||||||
</material>
|
|
||||||
</visual>
|
|
||||||
<gravity>1</gravity>
|
|
||||||
<velocity_decay/>
|
|
||||||
</link>
|
|
||||||
<joint name='X3/rotor_1_joint' type='revolute'>
|
|
||||||
<child>X3/rotor_1</child>
|
|
||||||
<parent>X3/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='X3/rotor_2'>
|
|
||||||
<pose frame=''>0.13 0.22 0.023 0 -0 0</pose>
|
|
||||||
<inertial>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<mass>0.005</mass>
|
|
||||||
<inertia>
|
|
||||||
<ixx>9.75e-07</ixx>
|
|
||||||
<ixy>0</ixy>
|
|
||||||
<ixz>0</ixz>
|
|
||||||
<iyy>4.17041e-05</iyy>
|
|
||||||
<iyz>0</iyz>
|
|
||||||
<izz>4.26041e-05</izz>
|
|
||||||
</inertia>
|
|
||||||
</inertial>
|
|
||||||
<collision name='X3/rotor_2_collision'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<cylinder>
|
|
||||||
<length>0.005</length>
|
|
||||||
<radius>0.1</radius>
|
|
||||||
</cylinder>
|
|
||||||
</geometry>
|
|
||||||
<surface>
|
|
||||||
<contact>
|
|
||||||
<ode/>
|
|
||||||
</contact>
|
|
||||||
<friction>
|
|
||||||
<ode/>
|
|
||||||
</friction>
|
|
||||||
</surface>
|
|
||||||
</collision>
|
|
||||||
<visual name='X3/rotor_2_visual'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<mesh>
|
|
||||||
<scale>0.1 0.1 0.1</scale>
|
|
||||||
<uri>model://x3/meshes/propeller_cw.dae</uri>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<material>
|
|
||||||
<script>
|
|
||||||
<name>Gazebo/Blue</name>
|
|
||||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
|
||||||
</script>
|
|
||||||
</material>
|
|
||||||
</visual>
|
|
||||||
<gravity>1</gravity>
|
|
||||||
<velocity_decay/>
|
|
||||||
</link>
|
|
||||||
<joint name='X3/rotor_2_joint' type='revolute'>
|
|
||||||
<child>X3/rotor_2</child>
|
|
||||||
<parent>X3/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='X3/rotor_3'>
|
|
||||||
<pose frame=''>-0.13 -0.2 0.023 0 -0 0</pose>
|
|
||||||
<inertial>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<mass>0.005</mass>
|
|
||||||
<inertia>
|
|
||||||
<ixx>9.75e-07</ixx>
|
|
||||||
<ixy>0</ixy>
|
|
||||||
<ixz>0</ixz>
|
|
||||||
<iyy>4.17041e-05</iyy>
|
|
||||||
<iyz>0</iyz>
|
|
||||||
<izz>4.26041e-05</izz>
|
|
||||||
</inertia>
|
|
||||||
</inertial>
|
|
||||||
<collision name='X3/rotor_3_collision'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<cylinder>
|
|
||||||
<length>0.005</length>
|
|
||||||
<radius>0.1</radius>
|
|
||||||
</cylinder>
|
|
||||||
</geometry>
|
|
||||||
<surface>
|
|
||||||
<contact>
|
|
||||||
<ode/>
|
|
||||||
</contact>
|
|
||||||
<friction>
|
|
||||||
<ode/>
|
|
||||||
</friction>
|
|
||||||
</surface>
|
|
||||||
</collision>
|
|
||||||
<visual name='X3/rotor_3_visual'>
|
|
||||||
<pose frame=''>0 0 0 0 -0 0</pose>
|
|
||||||
<geometry>
|
|
||||||
<mesh>
|
|
||||||
<scale>0.1 0.1 0.1</scale>
|
|
||||||
<uri>model://x3/meshes/propeller_cw.dae</uri>
|
|
||||||
</mesh>
|
|
||||||
</geometry>
|
|
||||||
<material>
|
|
||||||
<script>
|
|
||||||
<name>Gazebo/Red</name>
|
|
||||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
|
||||||
</script>
|
|
||||||
</material>
|
|
||||||
</visual>
|
|
||||||
<gravity>1</gravity>
|
|
||||||
<velocity_decay/>
|
|
||||||
</link>
|
|
||||||
<joint name='X3/rotor_3_joint' type='revolute'>
|
|
||||||
<child>X3/rotor_3</child>
|
|
||||||
<parent>X3/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>
|
|
||||||
<plugin
|
|
||||||
filename="libgazebo_barometer_plugin.so"
|
|
||||||
name="barometer_plugin::BarometerPlugin">
|
|
||||||
<link_name>X3/base_link</link_name>
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="libgazebo_magnetometer_plugin.so"
|
|
||||||
name="magnetometer_plugin::MagnetometerPlugin">
|
|
||||||
<link_name>X3/base_link</link_name>
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="libgazebo_gps_plugin.so"
|
|
||||||
name="gps_plugin::GpsPlugin">
|
|
||||||
<link_name>X3/base_link</link_name>
|
|
||||||
</plugin>
|
|
||||||
</model>
|
|
||||||
</sdf>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# !/bin/bash
|
|
||||||
|
|
||||||
export IGN_GAZEBO_SYSTEM_PLUGIN_PATH=$1/Tools/sitl_ign_gazebo/build
|
|
||||||
export IGN_GAZEBO_RESOURCE_PATH=$IGN_GAZEBO_RESOURCE_PATH:$1/Tools/sitl_ign_gazebo/models
|
|
||||||
@@ -1,341 +0,0 @@
|
|||||||
<?xml version="1.0" ?>
|
|
||||||
<sdf version="1.6">
|
|
||||||
<world name="quadcopter">
|
|
||||||
<physics name="4ms" type="ode">
|
|
||||||
<max_step_size>0.004</max_step_size>
|
|
||||||
<real_time_factor>1.0</real_time_factor>
|
|
||||||
</physics>
|
|
||||||
<plugin
|
|
||||||
filename="libignition-gazebo-physics-system.so"
|
|
||||||
name="ignition::gazebo::systems::Physics">
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="libignition-gazebo-scene-broadcaster-system.so"
|
|
||||||
name="ignition::gazebo::systems::SceneBroadcaster">
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="libignition-gazebo-user-commands-system.so"
|
|
||||||
name="ignition::gazebo::systems::UserCommands">
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="libignition-gazebo-sensors-system.so"
|
|
||||||
name="ignition::gazebo::systems::Sensors">
|
|
||||||
<render_engine>ogre2</render_engine>
|
|
||||||
</plugin>
|
|
||||||
<plugin filename="libignition-gazebo-imu-system.so"
|
|
||||||
name="ignition::gazebo::systems::Imu">
|
|
||||||
</plugin>
|
|
||||||
<gui fullscreen="0">
|
|
||||||
<!-- 3D scene -->
|
|
||||||
<plugin filename="GzScene3D" name="3D View">
|
|
||||||
<ignition-gui>
|
|
||||||
<title>3D View</title>
|
|
||||||
<property type="bool" key="showTitleBar">false</property>
|
|
||||||
<property type="string" key="state">docked</property>
|
|
||||||
</ignition-gui>
|
|
||||||
|
|
||||||
<engine>ogre2</engine>
|
|
||||||
<scene>scene</scene>
|
|
||||||
<ambient_light>0.4 0.4 0.4</ambient_light>
|
|
||||||
<background_color>0.8 0.8 0.8</background_color>
|
|
||||||
<camera_pose>-6 0 6 0 0.5 0</camera_pose>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<!-- World control -->
|
|
||||||
<plugin filename="WorldControl" name="World control">
|
|
||||||
<ignition-gui>
|
|
||||||
<title>World control</title>
|
|
||||||
<property type="bool" key="showTitleBar">false</property>
|
|
||||||
<property type="bool" key="resizable">false</property>
|
|
||||||
<property type="double" key="height">72</property>
|
|
||||||
<property type="double" key="width">121</property>
|
|
||||||
<property type="double" key="z">1</property>
|
|
||||||
|
|
||||||
<property type="string" key="state">floating</property>
|
|
||||||
<anchors target="3D View">
|
|
||||||
<line own="left" target="left"/>
|
|
||||||
<line own="bottom" target="bottom"/>
|
|
||||||
</anchors>
|
|
||||||
</ignition-gui>
|
|
||||||
|
|
||||||
<play_pause>true</play_pause>
|
|
||||||
<step>true</step>
|
|
||||||
<start_paused>true</start_paused>
|
|
||||||
<service>/world/quadcopter/control</service>
|
|
||||||
<stats_topic>/world/quadcopter/stats</stats_topic>
|
|
||||||
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<!-- World statistics -->
|
|
||||||
<plugin filename="WorldStats" name="World stats">
|
|
||||||
<ignition-gui>
|
|
||||||
<title>World stats</title>
|
|
||||||
<property type="bool" key="showTitleBar">false</property>
|
|
||||||
<property type="bool" key="resizable">false</property>
|
|
||||||
<property type="double" key="height">110</property>
|
|
||||||
<property type="double" key="width">290</property>
|
|
||||||
<property type="double" key="z">1</property>
|
|
||||||
|
|
||||||
<property type="string" key="state">floating</property>
|
|
||||||
<anchors target="3D View">
|
|
||||||
<line own="right" target="right"/>
|
|
||||||
<line own="bottom" target="bottom"/>
|
|
||||||
</anchors>
|
|
||||||
</ignition-gui>
|
|
||||||
|
|
||||||
<sim_time>true</sim_time>
|
|
||||||
<real_time>true</real_time>
|
|
||||||
<real_time_factor>true</real_time_factor>
|
|
||||||
<iterations>true</iterations>
|
|
||||||
<topic>/world/quadcopter/stats</topic>
|
|
||||||
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
</gui>
|
|
||||||
|
|
||||||
<light type="directional" name="sun">
|
|
||||||
<cast_shadows>true</cast_shadows>
|
|
||||||
<pose>0 0 10 0 0 0</pose>
|
|
||||||
<diffuse>0.8 0.8 0.8 1</diffuse>
|
|
||||||
<specular>0.2 0.2 0.2 1</specular>
|
|
||||||
<attenuation>
|
|
||||||
<range>1000</range>
|
|
||||||
<constant>0.9</constant>
|
|
||||||
<linear>0.01</linear>
|
|
||||||
<quadratic>0.001</quadratic>
|
|
||||||
</attenuation>
|
|
||||||
<direction>-0.5 0.1 -0.9</direction>
|
|
||||||
</light>
|
|
||||||
|
|
||||||
<model name="ground_plane">
|
|
||||||
<static>true</static>
|
|
||||||
<link name="link">
|
|
||||||
<collision name="collision">
|
|
||||||
<geometry>
|
|
||||||
<plane>
|
|
||||||
<normal>0 0 1</normal>
|
|
||||||
</plane>
|
|
||||||
</geometry>
|
|
||||||
</collision>
|
|
||||||
<visual name="visual">
|
|
||||||
<geometry>
|
|
||||||
<plane>
|
|
||||||
<normal>0 0 1</normal>
|
|
||||||
<size>100 100</size>
|
|
||||||
</plane>
|
|
||||||
</geometry>
|
|
||||||
<material>
|
|
||||||
<ambient>0.8 0.8 0.8 1</ambient>
|
|
||||||
<diffuse>0.8 0.8 0.8 1</diffuse>
|
|
||||||
<specular>0.8 0.8 0.8 1</specular>
|
|
||||||
</material>
|
|
||||||
</visual>
|
|
||||||
</link>
|
|
||||||
</model>
|
|
||||||
<include>
|
|
||||||
<uri>model://x3</uri>
|
|
||||||
<plugin
|
|
||||||
filename="ignition-gazebo-multicopter-motor-model-system"
|
|
||||||
name="ignition::gazebo::systems::MulticopterMotorModel">
|
|
||||||
<robotNamespace>X3</robotNamespace>
|
|
||||||
<jointName>X3/rotor_0_joint</jointName>
|
|
||||||
<linkName>X3/rotor_0</linkName>
|
|
||||||
<turningDirection>ccw</turningDirection>
|
|
||||||
<timeConstantUp>0.0125</timeConstantUp>
|
|
||||||
<timeConstantDown>0.025</timeConstantDown>
|
|
||||||
<maxRotVelocity>800.0</maxRotVelocity>
|
|
||||||
<motorConstant>8.54858e-06</motorConstant>
|
|
||||||
<momentConstant>0.016</momentConstant>
|
|
||||||
<commandSubTopic>gazebo/command/motor_speed</commandSubTopic>
|
|
||||||
<motorNumber>0</motorNumber>
|
|
||||||
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
|
|
||||||
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
|
||||||
<motorSpeedPubTopic>motor_speed/0</motorSpeedPubTopic>
|
|
||||||
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
|
|
||||||
<motorType>velocity</motorType>
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="ignition-gazebo-multicopter-motor-model-system"
|
|
||||||
name="ignition::gazebo::systems::MulticopterMotorModel">
|
|
||||||
<robotNamespace>X3</robotNamespace>
|
|
||||||
<jointName>X3/rotor_1_joint</jointName>
|
|
||||||
<linkName>X3/rotor_1</linkName>
|
|
||||||
<turningDirection>ccw</turningDirection>
|
|
||||||
<timeConstantUp>0.0125</timeConstantUp>
|
|
||||||
<timeConstantDown>0.025</timeConstantDown>
|
|
||||||
<maxRotVelocity>800.0</maxRotVelocity>
|
|
||||||
<motorConstant>8.54858e-06</motorConstant>
|
|
||||||
<momentConstant>0.016</momentConstant>
|
|
||||||
<commandSubTopic>gazebo/command/motor_speed</commandSubTopic>
|
|
||||||
<motorNumber>1</motorNumber>
|
|
||||||
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
|
|
||||||
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
|
||||||
<motorSpeedPubTopic>motor_speed/1</motorSpeedPubTopic>
|
|
||||||
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
|
|
||||||
<motorType>velocity</motorType>
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="ignition-gazebo-multicopter-motor-model-system"
|
|
||||||
name="ignition::gazebo::systems::MulticopterMotorModel">
|
|
||||||
<robotNamespace>X3</robotNamespace>
|
|
||||||
<jointName>X3/rotor_2_joint</jointName>
|
|
||||||
<linkName>X3/rotor_2</linkName>
|
|
||||||
<turningDirection>cw</turningDirection>
|
|
||||||
<timeConstantUp>0.0125</timeConstantUp>
|
|
||||||
<timeConstantDown>0.025</timeConstantDown>
|
|
||||||
<maxRotVelocity>800.0</maxRotVelocity>
|
|
||||||
<motorConstant>8.54858e-06</motorConstant>
|
|
||||||
<momentConstant>0.016</momentConstant>
|
|
||||||
<commandSubTopic>gazebo/command/motor_speed</commandSubTopic>
|
|
||||||
<motorNumber>2</motorNumber>
|
|
||||||
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
|
|
||||||
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
|
||||||
<motorSpeedPubTopic>motor_speed/2</motorSpeedPubTopic>
|
|
||||||
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
|
|
||||||
<motorType>velocity</motorType>
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="ignition-gazebo-multicopter-motor-model-system"
|
|
||||||
name="ignition::gazebo::systems::MulticopterMotorModel">
|
|
||||||
<robotNamespace>X3</robotNamespace>
|
|
||||||
<jointName>X3/rotor_3_joint</jointName>
|
|
||||||
<linkName>X3/rotor_3</linkName>
|
|
||||||
<turningDirection>cw</turningDirection>
|
|
||||||
<timeConstantUp>0.0125</timeConstantUp>
|
|
||||||
<timeConstantDown>0.025</timeConstantDown>
|
|
||||||
<maxRotVelocity>800.0</maxRotVelocity>
|
|
||||||
<motorConstant>8.54858e-06</motorConstant>
|
|
||||||
<momentConstant>0.016</momentConstant>
|
|
||||||
<commandSubTopic>gazebo/command/motor_speed</commandSubTopic>
|
|
||||||
<motorNumber>3</motorNumber>
|
|
||||||
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
|
|
||||||
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
|
||||||
<motorSpeedPubTopic>motor_speed/3</motorSpeedPubTopic>
|
|
||||||
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
|
|
||||||
<motorType>velocity</motorType>
|
|
||||||
</plugin>
|
|
||||||
<plugin
|
|
||||||
filename="libmavlink_sitl_ign_gazebo.so"
|
|
||||||
name="mavlink_interface::GazeboMavlinkInterface">
|
|
||||||
<robotNamespace/>
|
|
||||||
<imuSubTopic>/imu</imuSubTopic>
|
|
||||||
<magSubTopic>/mag</magSubTopic>
|
|
||||||
<baroSubTopic>/baro</baroSubTopic>
|
|
||||||
<mavlink_addr>INADDR_ANY</mavlink_addr>
|
|
||||||
<mavlink_udp_port>14560</mavlink_udp_port>
|
|
||||||
<mavlink_tcp_port>4560</mavlink_tcp_port>
|
|
||||||
<serialEnabled>0</serialEnabled>
|
|
||||||
<serialDevice>/dev/ttyACM0</serialDevice>
|
|
||||||
<baudRate>921600</baudRate>
|
|
||||||
<qgc_addr>INADDR_ANY</qgc_addr>
|
|
||||||
<qgc_udp_port>14550</qgc_udp_port>
|
|
||||||
<sdk_addr>INADDR_ANY</sdk_addr>
|
|
||||||
<sdk_udp_port>14540</sdk_udp_port>
|
|
||||||
<hil_mode>0</hil_mode>
|
|
||||||
<hil_state_level>0</hil_state_level>
|
|
||||||
<vehicle_is_tailsitter>0</vehicle_is_tailsitter>
|
|
||||||
<send_vision_estimation>0</send_vision_estimation>
|
|
||||||
<send_odometry>1</send_odometry>
|
|
||||||
<enable_lockstep>1</enable_lockstep>
|
|
||||||
<use_tcp>1</use_tcp>
|
|
||||||
<motorSpeedCommandPubTopic>/gazebo/command/motor_speed</motorSpeedCommandPubTopic>
|
|
||||||
<control_channels>
|
|
||||||
<channel name='rotor1'>
|
|
||||||
<input_index>0</input_index>
|
|
||||||
<input_offset>0</input_offset>
|
|
||||||
<input_scaling>1000</input_scaling>
|
|
||||||
<zero_position_disarmed>0</zero_position_disarmed>
|
|
||||||
<zero_position_armed>100</zero_position_armed>
|
|
||||||
<joint_control_type>velocity</joint_control_type>
|
|
||||||
</channel>
|
|
||||||
<channel name='rotor2'>
|
|
||||||
<input_index>1</input_index>
|
|
||||||
<input_offset>0</input_offset>
|
|
||||||
<input_scaling>1000</input_scaling>
|
|
||||||
<zero_position_disarmed>0</zero_position_disarmed>
|
|
||||||
<zero_position_armed>100</zero_position_armed>
|
|
||||||
<joint_control_type>velocity</joint_control_type>
|
|
||||||
</channel>
|
|
||||||
<channel name='rotor3'>
|
|
||||||
<input_index>2</input_index>
|
|
||||||
<input_offset>0</input_offset>
|
|
||||||
<input_scaling>1000</input_scaling>
|
|
||||||
<zero_position_disarmed>0</zero_position_disarmed>
|
|
||||||
<zero_position_armed>100</zero_position_armed>
|
|
||||||
<joint_control_type>velocity</joint_control_type>
|
|
||||||
</channel>
|
|
||||||
<channel name='rotor4'>
|
|
||||||
<input_index>3</input_index>
|
|
||||||
<input_offset>0</input_offset>
|
|
||||||
<input_scaling>1000</input_scaling>
|
|
||||||
<zero_position_disarmed>0</zero_position_disarmed>
|
|
||||||
<zero_position_armed>100</zero_position_armed>
|
|
||||||
<joint_control_type>velocity</joint_control_type>
|
|
||||||
</channel>
|
|
||||||
<channel name='rotor5'>
|
|
||||||
<input_index>4</input_index>
|
|
||||||
<input_offset>1</input_offset>
|
|
||||||
<input_scaling>324.6</input_scaling>
|
|
||||||
<zero_position_disarmed>0</zero_position_disarmed>
|
|
||||||
<zero_position_armed>0</zero_position_armed>
|
|
||||||
<joint_control_type>velocity</joint_control_type>
|
|
||||||
<joint_control_pid>
|
|
||||||
<p>0.1</p>
|
|
||||||
<i>0</i>
|
|
||||||
<d>0</d>
|
|
||||||
<iMax>0.0</iMax>
|
|
||||||
<iMin>0.0</iMin>
|
|
||||||
<cmdMax>2</cmdMax>
|
|
||||||
<cmdMin>-2</cmdMin>
|
|
||||||
</joint_control_pid>
|
|
||||||
<joint_name>zephyr_delta_wing::propeller_joint</joint_name>
|
|
||||||
</channel>
|
|
||||||
<channel name='rotor6'>
|
|
||||||
<input_index>5</input_index>
|
|
||||||
<input_offset>0</input_offset>
|
|
||||||
<input_scaling>0.524</input_scaling>
|
|
||||||
<zero_position_disarmed>0</zero_position_disarmed>
|
|
||||||
<zero_position_armed>0</zero_position_armed>
|
|
||||||
<joint_control_type>position</joint_control_type>
|
|
||||||
<joint_name>zephyr_delta_wing::flap_left_joint</joint_name>
|
|
||||||
<joint_control_pid>
|
|
||||||
<p>10.0</p>
|
|
||||||
<i>0</i>
|
|
||||||
<d>0</d>
|
|
||||||
<iMax>0</iMax>
|
|
||||||
<iMin>0</iMin>
|
|
||||||
<cmdMax>20</cmdMax>
|
|
||||||
<cmdMin>-20</cmdMin>
|
|
||||||
</joint_control_pid>
|
|
||||||
</channel>
|
|
||||||
<channel name='rotor7'>
|
|
||||||
<input_index>6</input_index>
|
|
||||||
<input_offset>0</input_offset>
|
|
||||||
<input_scaling>0.524</input_scaling>
|
|
||||||
<zero_position_disarmed>0</zero_position_disarmed>
|
|
||||||
<zero_position_armed>0</zero_position_armed>
|
|
||||||
<joint_control_type>position</joint_control_type>
|
|
||||||
<joint_name>zephyr_delta_wing::flap_right_joint</joint_name>
|
|
||||||
<joint_control_pid>
|
|
||||||
<p>10.0</p>
|
|
||||||
<i>0</i>
|
|
||||||
<d>0</d>
|
|
||||||
<iMax>0</iMax>
|
|
||||||
<iMin>0</iMin>
|
|
||||||
<cmdMax>20</cmdMax>
|
|
||||||
<cmdMin>-20</cmdMin>
|
|
||||||
</joint_control_pid>
|
|
||||||
</channel>
|
|
||||||
<channel name='rotor8'>
|
|
||||||
<input_index>7</input_index>
|
|
||||||
<input_offset>0</input_offset>
|
|
||||||
<input_scaling>0.524</input_scaling>
|
|
||||||
<zero_position_disarmed>0</zero_position_disarmed>
|
|
||||||
<zero_position_armed>0</zero_position_armed>
|
|
||||||
<joint_control_type>position</joint_control_type>
|
|
||||||
</channel>
|
|
||||||
</control_channels>
|
|
||||||
</plugin>
|
|
||||||
</include>
|
|
||||||
</world>
|
|
||||||
</sdf>
|
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<sdf version="1.6">
|
||||||
|
<world name="quadcopter">
|
||||||
|
<physics name="2.5 ms" type="ode">
|
||||||
|
<max_step_size>0.002500</max_step_size>
|
||||||
|
<real_time_factor>1.0</real_time_factor>
|
||||||
|
</physics>
|
||||||
|
<plugin
|
||||||
|
filename="libignition-gazebo-physics-system.so"
|
||||||
|
name="ignition::gazebo::systems::Physics">
|
||||||
|
</plugin>
|
||||||
|
<plugin
|
||||||
|
filename="libignition-gazebo-scene-broadcaster-system.so"
|
||||||
|
name="ignition::gazebo::systems::SceneBroadcaster">
|
||||||
|
</plugin>
|
||||||
|
<plugin
|
||||||
|
filename="libignition-gazebo-user-commands-system.so"
|
||||||
|
name="ignition::gazebo::systems::UserCommands">
|
||||||
|
</plugin>
|
||||||
|
<plugin
|
||||||
|
filename="libignition-gazebo-sensors-system.so"
|
||||||
|
name="ignition::gazebo::systems::Sensors">
|
||||||
|
<render_engine>ogre2</render_engine>
|
||||||
|
</plugin>
|
||||||
|
<plugin filename="libignition-gazebo-imu-system.so"
|
||||||
|
name="ignition::gazebo::systems::Imu">
|
||||||
|
</plugin>
|
||||||
|
<gui fullscreen="0">
|
||||||
|
<!-- 3D scene -->
|
||||||
|
<plugin filename="GzScene3D" name="3D View">
|
||||||
|
<ignition-gui>
|
||||||
|
<title>3D View</title>
|
||||||
|
<property type="bool" key="showTitleBar">false</property>
|
||||||
|
<property type="string" key="state">docked</property>
|
||||||
|
</ignition-gui>
|
||||||
|
|
||||||
|
<engine>ogre2</engine>
|
||||||
|
<scene>scene</scene>
|
||||||
|
<ambient_light>0.4 0.4 0.4</ambient_light>
|
||||||
|
<background_color>0.8 0.8 0.8</background_color>
|
||||||
|
<camera_pose>-6 0 6 0 0.5 0</camera_pose>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- World control -->
|
||||||
|
<plugin filename="WorldControl" name="World control">
|
||||||
|
<ignition-gui>
|
||||||
|
<title>World control</title>
|
||||||
|
<property type="bool" key="showTitleBar">false</property>
|
||||||
|
<property type="bool" key="resizable">false</property>
|
||||||
|
<property type="double" key="height">72</property>
|
||||||
|
<property type="double" key="width">121</property>
|
||||||
|
<property type="double" key="z">1</property>
|
||||||
|
|
||||||
|
<property type="string" key="state">floating</property>
|
||||||
|
<anchors target="3D View">
|
||||||
|
<line own="left" target="left"/>
|
||||||
|
<line own="bottom" target="bottom"/>
|
||||||
|
</anchors>
|
||||||
|
</ignition-gui>
|
||||||
|
|
||||||
|
<play_pause>true</play_pause>
|
||||||
|
<step>true</step>
|
||||||
|
<start_paused>true</start_paused>
|
||||||
|
<service>/world/quadcopter/control</service>
|
||||||
|
<stats_topic>/world/quadcopter/stats</stats_topic>
|
||||||
|
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- World statistics -->
|
||||||
|
<plugin filename="WorldStats" name="World stats">
|
||||||
|
<ignition-gui>
|
||||||
|
<title>World stats</title>
|
||||||
|
<property type="bool" key="showTitleBar">false</property>
|
||||||
|
<property type="bool" key="resizable">false</property>
|
||||||
|
<property type="double" key="height">110</property>
|
||||||
|
<property type="double" key="width">290</property>
|
||||||
|
<property type="double" key="z">1</property>
|
||||||
|
|
||||||
|
<property type="string" key="state">floating</property>
|
||||||
|
<anchors target="3D View">
|
||||||
|
<line own="right" target="right"/>
|
||||||
|
<line own="bottom" target="bottom"/>
|
||||||
|
</anchors>
|
||||||
|
</ignition-gui>
|
||||||
|
|
||||||
|
<sim_time>true</sim_time>
|
||||||
|
<real_time>true</real_time>
|
||||||
|
<real_time_factor>true</real_time_factor>
|
||||||
|
<iterations>true</iterations>
|
||||||
|
<topic>/world/quadcopter/stats</topic>
|
||||||
|
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
</gui>
|
||||||
|
|
||||||
|
<light type="directional" name="sun">
|
||||||
|
<cast_shadows>true</cast_shadows>
|
||||||
|
<pose>0 0 10 0 0 0</pose>
|
||||||
|
<diffuse>0.8 0.8 0.8 1</diffuse>
|
||||||
|
<specular>0.2 0.2 0.2 1</specular>
|
||||||
|
<attenuation>
|
||||||
|
<range>1000</range>
|
||||||
|
<constant>0.9</constant>
|
||||||
|
<linear>0.01</linear>
|
||||||
|
<quadratic>0.001</quadratic>
|
||||||
|
</attenuation>
|
||||||
|
<direction>-0.5 0.1 -0.9</direction>
|
||||||
|
</light>
|
||||||
|
|
||||||
|
<model name="ground_plane">
|
||||||
|
<static>true</static>
|
||||||
|
<link name="link">
|
||||||
|
<collision name="collision">
|
||||||
|
<geometry>
|
||||||
|
<plane>
|
||||||
|
<normal>0 0 1</normal>
|
||||||
|
</plane>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<visual name="visual">
|
||||||
|
<geometry>
|
||||||
|
<plane>
|
||||||
|
<normal>0 0 1</normal>
|
||||||
|
<size>100 100</size>
|
||||||
|
</plane>
|
||||||
|
</geometry>
|
||||||
|
<material>
|
||||||
|
<ambient>0.8 0.8 0.8 1</ambient>
|
||||||
|
<diffuse>0.8 0.8 0.8 1</diffuse>
|
||||||
|
<specular>0.8 0.8 0.8 1</specular>
|
||||||
|
</material>
|
||||||
|
</visual>
|
||||||
|
</link>
|
||||||
|
</model>
|
||||||
|
<include>
|
||||||
|
<uri>model://X4</uri>
|
||||||
|
</include>
|
||||||
|
</world>
|
||||||
|
</sdf>
|
||||||
@@ -194,8 +194,12 @@ elif [ "$program" == "ignition" ] && [ -z "$no_sim" ]; then
|
|||||||
else
|
else
|
||||||
ignition_headless=""
|
ignition_headless=""
|
||||||
fi
|
fi
|
||||||
source "$src_path/Tools/setup_ignition.bash" "${src_path}" "${build_path}"
|
|
||||||
ign gazebo --force-version 5 ${verbose} ${ignition_headless} -r "${src_path}/Tools/simulation-ignition/worlds/${model}.world"&
|
export IGN_GAZEBO_RESOURCE_PATH=$IGN_GAZEBO_RESOURCE_PATH:${src_path}/Tools/simulation/gazebo/models
|
||||||
|
#ign gazebo --force-version 5 ${verbose} ${ignition_headless} -r "${src_path}/Tools/simulation/gazebo/worlds/${model}.world"&
|
||||||
|
|
||||||
|
ign gazebo -r "${src_path}/Tools/simulation/gazebo/worlds/${model}.sdf" &
|
||||||
|
|
||||||
elif [ "$program" == "flightgear" ] && [ -z "$no_sim" ]; then
|
elif [ "$program" == "flightgear" ] && [ -z "$no_sim" ]; then
|
||||||
echo "FG setup"
|
echo "FG setup"
|
||||||
cd "${src_path}/Tools/flightgear_bridge/"
|
cd "${src_path}/Tools/flightgear_bridge/"
|
||||||
@@ -231,9 +235,9 @@ pushd "$rootfs" >/dev/null
|
|||||||
set +e
|
set +e
|
||||||
|
|
||||||
if [[ ${model} == test_* ]] || [[ ${model} == *_generated ]]; then
|
if [[ ${model} == test_* ]] || [[ ${model} == *_generated ]]; then
|
||||||
sitl_command="\"$sitl_bin\" $no_pxh \"$src_path\"/ROMFS/px4fmu_test -s \"${src_path}\"/posix-configs/SITL/init/test/${model} -t \"$src_path\"/test_data"
|
sitl_command="\"$sitl_bin\" $no_pxh \"$src_path\"/ROMFS/px4fmu_test -s \"${src_path}\"/posix-configs/SITL/init/test/${model}"
|
||||||
else
|
else
|
||||||
sitl_command="\"$sitl_bin\" $no_pxh \"$build_path\"/etc -s etc/init.d-posix/rcS -t \"$src_path\"/test_data"
|
sitl_command="\"$sitl_bin\" $no_pxh \"$build_path\"/etc -s etc/init.d-posix/rcS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo SITL COMMAND: $sitl_command
|
echo SITL COMMAND: $sitl_command
|
||||||
|
|||||||
@@ -8,10 +8,7 @@
|
|||||||
"program": "${command:cmake.launchTargetPath}",
|
"program": "${command:cmake.launchTargetPath}",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceFolder}/ROMFS/px4fmu_common",
|
"${workspaceFolder}/ROMFS/px4fmu_common",
|
||||||
"-s",
|
"-s", "etc/init.d-posix/rcS"
|
||||||
"etc/init.d-posix/rcS",
|
|
||||||
"-t",
|
|
||||||
"${workspaceFolder}/test_data"
|
|
||||||
],
|
],
|
||||||
"stopAtEntry": false,
|
"stopAtEntry": false,
|
||||||
"cwd": "${command:cmake.buildDirectory}/tmp",
|
"cwd": "${command:cmake.buildDirectory}/tmp",
|
||||||
|
|||||||
@@ -7,9 +7,7 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${command:cmake.launchTargetPath}",
|
"program": "${command:cmake.launchTargetPath}",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceFolder}/ROMFS/px4fmu_common",
|
"${workspaceFolder}/ROMFS/px4fmu_common"
|
||||||
"-s", "etc/init.d-posix/rcS",
|
|
||||||
"-t", "${workspaceFolder}/test_data"
|
|
||||||
],
|
],
|
||||||
"stopAtEntry": false,
|
"stopAtEntry": false,
|
||||||
"cwd": "${command:cmake.buildDirectory}/tmp",
|
"cwd": "${command:cmake.buildDirectory}/tmp",
|
||||||
@@ -48,52 +46,7 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "SITL (jmavsim iris)",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${command:cmake.launchTargetPath}",
|
|
||||||
"args": [
|
|
||||||
"${workspaceFolder}/ROMFS/px4fmu_common",
|
|
||||||
"-s", "etc/init.d-posix/rcS",
|
|
||||||
"-t", "${workspaceFolder}/test_data"
|
|
||||||
],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "${command:cmake.buildDirectory}/tmp",
|
|
||||||
"environment": [
|
|
||||||
{
|
|
||||||
"name": "PX4_SIM_MODEL",
|
|
||||||
"value": "iris"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"preLaunchTask": "jmavsim",
|
|
||||||
"postDebugTask": "jmavsim kill",
|
|
||||||
"linux": {
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"externalConsole": false,
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "PX4 ignore wq signals",
|
|
||||||
"text": "handle SIGCONT nostop noprint nopass",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"osx": {
|
|
||||||
"MIMode": "lldb",
|
|
||||||
"externalConsole": true,
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"text": "pro hand -p true -s false -n false SIGCONT",
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "SITL (shell)",
|
"name": "SITL (shell)",
|
||||||
"type": "cppdbg",
|
"type": "cppdbg",
|
||||||
@@ -145,18 +98,9 @@
|
|||||||
"id": "PX4_SIM_MODEL",
|
"id": "PX4_SIM_MODEL",
|
||||||
"description": "PX4_SIM_MODEL",
|
"description": "PX4_SIM_MODEL",
|
||||||
"options": [
|
"options": [
|
||||||
"iris",
|
"x4",
|
||||||
"typhoon_h480",
|
|
||||||
"plane",
|
|
||||||
"plane_catapult",
|
|
||||||
"plane_lidar",
|
|
||||||
"standard_vtol",
|
|
||||||
"tailsitter",
|
|
||||||
"tiltrotor",
|
|
||||||
"r1_rover",
|
|
||||||
"boat"
|
|
||||||
],
|
],
|
||||||
"default": "iris"
|
"default": "x4"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ if(parallel_jobs LESS 1)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(DEBUG "${NUMBER_OF_LOGICAL_CORES} logical cores detected and ${AVAILABLE_PHYSICAL_MEMORY} megabytes of memory available.
|
message(DEBUG "${NUMBER_OF_LOGICAL_CORES} logical cores detected and ${AVAILABLE_PHYSICAL_MEMORY} megabytes of memory available.
|
||||||
Limiting sitl_gazebo and simulation-ignition concurrent jobs to ${parallel_jobs}")
|
Limiting sitl_gazebo concurrent jobs to ${parallel_jobs}")
|
||||||
|
|
||||||
# project to build sitl_gazebo if necessary
|
# project to build sitl_gazebo if necessary
|
||||||
px4_add_git_submodule(TARGET git_gazebo PATH "${PX4_SOURCE_DIR}/Tools/sitl_gazebo")
|
px4_add_git_submodule(TARGET git_gazebo PATH "${PX4_SOURCE_DIR}/Tools/sitl_gazebo")
|
||||||
@@ -73,20 +73,6 @@ ExternalProject_Add(sitl_gazebo
|
|||||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> -- -j ${parallel_jobs}
|
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> -- -j ${parallel_jobs}
|
||||||
)
|
)
|
||||||
|
|
||||||
px4_add_git_submodule(TARGET git_ign_gazebo PATH "${PX4_SOURCE_DIR}/Tools/simulation-ignition")
|
|
||||||
ExternalProject_Add(simulation-ignition
|
|
||||||
SOURCE_DIR ${PX4_SOURCE_DIR}/Tools/simulation-ignition
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
|
|
||||||
BINARY_DIR ${PX4_BINARY_DIR}/build_ign_gazebo
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
DEPENDS git_ign_gazebo
|
|
||||||
USES_TERMINAL_CONFIGURE true
|
|
||||||
USES_TERMINAL_BUILD true
|
|
||||||
EXCLUDE_FROM_ALL true
|
|
||||||
BUILD_ALWAYS 1
|
|
||||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> -- -j ${parallel_jobs}
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(mavsdk_tests
|
ExternalProject_Add(mavsdk_tests
|
||||||
SOURCE_DIR ${PX4_SOURCE_DIR}/test/mavsdk_tests
|
SOURCE_DIR ${PX4_SOURCE_DIR}/test/mavsdk_tests
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
|
||||||
@@ -129,7 +115,6 @@ set(viewers
|
|||||||
none
|
none
|
||||||
jmavsim
|
jmavsim
|
||||||
gazebo
|
gazebo
|
||||||
ignition
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(debuggers
|
set(debuggers
|
||||||
@@ -222,8 +207,6 @@ foreach(viewer ${viewers})
|
|||||||
add_dependencies(${_targ_name} px4 sitl_gazebo)
|
add_dependencies(${_targ_name} px4 sitl_gazebo)
|
||||||
elseif(viewer STREQUAL "jmavsim")
|
elseif(viewer STREQUAL "jmavsim")
|
||||||
add_dependencies(${_targ_name} px4 git_jmavsim)
|
add_dependencies(${_targ_name} px4 git_jmavsim)
|
||||||
elseif(viewer STREQUAL "ignition")
|
|
||||||
add_dependencies(${_targ_name} px4 simulation-ignition)
|
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
if(viewer STREQUAL "gazebo")
|
if(viewer STREQUAL "gazebo")
|
||||||
@@ -413,6 +396,16 @@ if(ENABLE_LOCKSTEP_SCHEDULER STREQUAL "no")
|
|||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
# Ignition Gazebo
|
||||||
|
add_custom_target(ignition_x4
|
||||||
|
COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh $<TARGET_FILE:px4> none ignition x4 none ${PX4_SOURCE_DIR} ${PX4_BINARY_DIR}
|
||||||
|
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
||||||
|
USES_TERMINAL
|
||||||
|
DEPENDS logs_symlink
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
string(REPLACE ";" "," posix_vmd_make_target_list "${all_posix_vmd_make_targets}")
|
string(REPLACE ";" "," posix_vmd_make_target_list "${all_posix_vmd_make_targets}")
|
||||||
|
|
||||||
add_custom_target(list_vmd_make_targets
|
add_custom_target(list_vmd_make_targets
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ foreach(test_name ${tests})
|
|||||||
add_test(NAME ${test_name_prefix}
|
add_test(NAME ${test_name_prefix}
|
||||||
COMMAND $<TARGET_FILE:px4>
|
COMMAND $<TARGET_FILE:px4>
|
||||||
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_${test_name}_generated
|
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_${test_name}_generated
|
||||||
-t ${PX4_SOURCE_DIR}/test_data
|
|
||||||
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
||||||
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
||||||
)
|
)
|
||||||
@@ -62,7 +61,6 @@ foreach(test_name ${cmd_tests})
|
|||||||
add_test(NAME ${test_name_prefix}
|
add_test(NAME ${test_name_prefix}
|
||||||
COMMAND $<TARGET_FILE:px4>
|
COMMAND $<TARGET_FILE:px4>
|
||||||
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_${test_name}_generated
|
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_${test_name}_generated
|
||||||
-t ${PX4_SOURCE_DIR}/test_data
|
|
||||||
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
||||||
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
||||||
)
|
)
|
||||||
@@ -79,7 +77,6 @@ endforeach()
|
|||||||
add_test(NAME sitl-mavlink
|
add_test(NAME sitl-mavlink
|
||||||
COMMAND $<TARGET_FILE:px4>
|
COMMAND $<TARGET_FILE:px4>
|
||||||
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_mavlink
|
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_mavlink
|
||||||
-t ${PX4_SOURCE_DIR}/test_data
|
|
||||||
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
||||||
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
||||||
)
|
)
|
||||||
@@ -93,7 +90,6 @@ sanitizer_fail_test_on_error(sitl-mavlink)
|
|||||||
add_test(NAME sitl-imu_filtering
|
add_test(NAME sitl-imu_filtering
|
||||||
COMMAND $<TARGET_FILE:px4>
|
COMMAND $<TARGET_FILE:px4>
|
||||||
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_imu_filtering
|
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_imu_filtering
|
||||||
-t ${PX4_SOURCE_DIR}/test_data
|
|
||||||
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
||||||
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
||||||
)
|
)
|
||||||
@@ -108,7 +104,6 @@ sanitizer_fail_test_on_error(sitl-imu_filtering)
|
|||||||
# add_test(NAME sitl-shutdown
|
# add_test(NAME sitl-shutdown
|
||||||
# COMMAND $<TARGET_FILE:px4>
|
# COMMAND $<TARGET_FILE:px4>
|
||||||
# -s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_shutdown
|
# -s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/test_shutdown
|
||||||
# -t ${PX4_SOURCE_DIR}/test_data
|
|
||||||
# ${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
# ${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
||||||
# WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
# WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
||||||
# )
|
# )
|
||||||
@@ -149,7 +144,6 @@ foreach(cmd_name ${test_cmds})
|
|||||||
COMMAND $<TARGET_FILE:px4>
|
COMMAND $<TARGET_FILE:px4>
|
||||||
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
${PX4_SOURCE_DIR}/ROMFS/px4fmu_test
|
||||||
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/cmd_${cmd_name}_generated
|
-s ${PX4_SOURCE_DIR}/posix-configs/SITL/init/test/cmd_${cmd_name}_generated
|
||||||
-t ${PX4_SOURCE_DIR}/test_data
|
|
||||||
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
WORKING_DIRECTORY ${SITL_WORKING_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015-2018 PX4 Development Team. All rights reserved.
|
* Copyright (C) 2015-2022 PX4 Development Team. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@@ -197,8 +197,7 @@ int main(int argc, char **argv)
|
|||||||
/* Server/daemon apps need to parse the command line arguments. */
|
/* Server/daemon apps need to parse the command line arguments. */
|
||||||
|
|
||||||
std::string data_path{};
|
std::string data_path{};
|
||||||
std::string commands_file = "etc/init.d/rcS";
|
std::string commands_file = "etc/init.d-posix/rcS";
|
||||||
std::string test_data_path{};
|
|
||||||
std::string working_directory{};
|
std::string working_directory{};
|
||||||
int instance = 0;
|
int instance = 0;
|
||||||
|
|
||||||
@@ -206,7 +205,7 @@ int main(int argc, char **argv)
|
|||||||
int ch;
|
int ch;
|
||||||
const char *myoptarg = nullptr;
|
const char *myoptarg = nullptr;
|
||||||
|
|
||||||
while ((ch = px4_getopt(argc, argv, "hdt:s:i:w:", &myoptind, &myoptarg)) != EOF) {
|
while ((ch = px4_getopt(argc, argv, "hds:i:w:", &myoptind, &myoptarg)) != EOF) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'h':
|
case 'h':
|
||||||
print_usage();
|
print_usage();
|
||||||
@@ -216,10 +215,6 @@ int main(int argc, char **argv)
|
|||||||
pxh_off = true;
|
pxh_off = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 't':
|
|
||||||
test_data_path = myoptarg;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
commands_file = myoptarg;
|
commands_file = myoptarg;
|
||||||
break;
|
break;
|
||||||
@@ -270,18 +265,6 @@ int main(int argc, char **argv)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (test_data_path != "") {
|
|
||||||
const std::string required_test_data_path = "./test_data";
|
|
||||||
|
|
||||||
if (!dir_exists(required_test_data_path)) {
|
|
||||||
ret = symlink(test_data_path.c_str(), required_test_data_path.c_str());
|
|
||||||
|
|
||||||
if (ret != PX4_OK) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!file_exists(commands_file)) {
|
if (!file_exists(commands_file)) {
|
||||||
PX4_ERR("Error opening startup file, does not exist: %s", commands_file.c_str());
|
PX4_ERR("Error opening startup file, does not exist: %s", commands_file.c_str());
|
||||||
return -1;
|
return -1;
|
||||||
@@ -550,7 +533,7 @@ void print_usage()
|
|||||||
{
|
{
|
||||||
printf("Usage for Server/daemon process: \n");
|
printf("Usage for Server/daemon process: \n");
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf(" px4 [-h|-d] [-s <startup_file>] [-t <test_data_directory>] [<rootfs_directory>] [-i <instance>] [-w <working_directory>]\n");
|
printf(" px4 [-h|-d] [-s <startup_file>] [<rootfs_directory>] [-i <instance>] [-w <working_directory>]\n");
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf(" -s <startup_file> shell script to be used as startup (default=etc/init.d/rcS)\n");
|
printf(" -s <startup_file> shell script to be used as startup (default=etc/init.d/rcS)\n");
|
||||||
printf(" <rootfs_directory> directory where startup files and mixers are located,\n");
|
printf(" <rootfs_directory> directory where startup files and mixers are located,\n");
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ px4_add_module(
|
|||||||
MAIN ignition_simulator
|
MAIN ignition_simulator
|
||||||
COMPILE_FLAGS
|
COMPILE_FLAGS
|
||||||
#${MAX_CUSTOM_OPT_LEVEL}
|
#${MAX_CUSTOM_OPT_LEVEL}
|
||||||
|
-O0
|
||||||
SRCS
|
SRCS
|
||||||
IgnitionSimulator.cpp
|
IgnitionSimulator.cpp
|
||||||
IgnitionSimulator.hpp
|
IgnitionSimulator.hpp
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
*
|
*
|
||||||
* Copyright (c) 2021 PX4 Development Team. All rights reserved.
|
* Copyright (c) 2022 PX4 Development Team. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@@ -55,37 +55,13 @@ void IgnitionSimulator::ImuCallback(const ignition::msgs::IMU &imu)
|
|||||||
|
|
||||||
void IgnitionSimulator::PoseInfoCallback(const ignition::msgs::Pose_V &pose)
|
void IgnitionSimulator::PoseInfoCallback(const ignition::msgs::Pose_V &pose)
|
||||||
{
|
{
|
||||||
// TODO: find by name or id?
|
|
||||||
//
|
|
||||||
|
|
||||||
//pose.position
|
|
||||||
//pose.orientation
|
|
||||||
|
|
||||||
|
|
||||||
// TODO:
|
|
||||||
// - gps
|
|
||||||
// - magnetometer
|
|
||||||
// - barometer
|
|
||||||
|
|
||||||
// - groundtruth
|
|
||||||
|
|
||||||
for (int p = 0; p < pose.pose_size(); p++) {
|
for (int p = 0; p < pose.pose_size(); p++) {
|
||||||
//std::cout << p << pose.pose(p).name() << std::endl;
|
std::string vehicle_name = "X4";
|
||||||
|
|
||||||
std::string vehicle_name = "x3";
|
|
||||||
|
|
||||||
if (pose.pose(p).name() == vehicle_name) {
|
if (pose.pose(p).name() == vehicle_name) {
|
||||||
|
|
||||||
//std::cout << pose.pose(p) << std::endl;
|
ignition::msgs::Vector3d pose_position = pose.pose(p).position();
|
||||||
|
ignition::msgs::Quaternion pose_orientation = pose.pose(p).orientation();
|
||||||
// ignition.msgs.Header header
|
|
||||||
// .ignition.msgs.Vector3d position = 4;
|
|
||||||
// .ignition.msgs.Quaternion orientation = 5;
|
|
||||||
|
|
||||||
ignition::msgs::Vector3d position = pose.pose(p).position();
|
|
||||||
ignition::msgs::Quaternion orientation = pose.pose(p).orientation();
|
|
||||||
// position.x(), position.y(), position.z()
|
|
||||||
// orientation. wxyz
|
|
||||||
|
|
||||||
static const auto q_FLU_to_FRD = ignition::math::Quaterniond(0, 1, 0, 0);
|
static const auto q_FLU_to_FRD = ignition::math::Quaterniond(0, 1, 0, 0);
|
||||||
|
|
||||||
@@ -98,66 +74,74 @@ void IgnitionSimulator::PoseInfoCallback(const ignition::msgs::Pose_V &pose)
|
|||||||
*/
|
*/
|
||||||
static const auto q_ENU_to_NED = ignition::math::Quaterniond(0, 0.70711, 0.70711, 0);
|
static const auto q_ENU_to_NED = ignition::math::Quaterniond(0, 0.70711, 0.70711, 0);
|
||||||
|
|
||||||
|
|
||||||
// ground truth
|
// ground truth
|
||||||
ignition::math::Quaterniond q_gr = ignition::math::Quaterniond(
|
ignition::math::Quaterniond q_gr = ignition::math::Quaterniond(
|
||||||
last_imu_message_.orientation().w(),
|
pose_orientation.w(),
|
||||||
last_imu_message_.orientation().x(),
|
pose_orientation.x(),
|
||||||
last_imu_message_.orientation().y(),
|
pose_orientation.y(),
|
||||||
last_imu_message_.orientation().z());
|
pose_orientation.z());
|
||||||
|
|
||||||
ignition::math::Quaterniond q_gb = q_gr * q_FLU_to_FRD.Inverse();
|
ignition::math::Quaterniond q_gb = q_gr * q_FLU_to_FRD.Inverse();
|
||||||
ignition::math::Quaterniond q_nb = q_ENU_to_NED * q_gb;
|
ignition::math::Quaterniond q_nb = q_ENU_to_NED * q_gb;
|
||||||
|
|
||||||
hil_state_quat.attitude_quaternion[0] = q_nb.W();
|
// publish attitude groundtruth
|
||||||
hil_state_quat.attitude_quaternion[1] = q_nb.X();
|
vehicle_attitude_s vehicle_attitude_groundtruth{};
|
||||||
hil_state_quat.attitude_quaternion[2] = q_nb.Y();
|
vehicle_attitude_groundtruth.timestamp_sample = hrt_absolute_time();
|
||||||
hil_state_quat.attitude_quaternion[3] = q_nb.Z();
|
vehicle_attitude_groundtruth.q[0] = q_nb.W();
|
||||||
|
vehicle_attitude_groundtruth.q[1] = q_nb.X();
|
||||||
|
vehicle_attitude_groundtruth.q[2] = q_nb.Y();
|
||||||
|
vehicle_attitude_groundtruth.q[3] = q_nb.Z();
|
||||||
|
vehicle_attitude_groundtruth.timestamp = hrt_absolute_time();
|
||||||
|
_attitude_ground_truth_pub.publish(vehicle_attitude_groundtruth);
|
||||||
|
|
||||||
//PX4_INFO("matched, position [%.6f, %.6f, %.6f]", (double)position.x(), (double)position.y(), (double)position.z());
|
|
||||||
|
if (!_pos_ref.isInitialized()) {
|
||||||
|
_pos_ref.initReference(_param_sim_home_lat.get(), _param_sim_home_lon.get(), hrt_absolute_time());
|
||||||
|
}
|
||||||
|
|
||||||
vehicle_local_position_s local_position_groundtruth{};
|
vehicle_local_position_s local_position_groundtruth{};
|
||||||
local_position_groundtruth.x = position.x();
|
local_position_groundtruth.timestamp_sample = hrt_absolute_time();
|
||||||
local_position_groundtruth.y = position.y();
|
|
||||||
local_position_groundtruth.z = position.z();
|
|
||||||
local_position_groundtruth.timestamp = hrt_absolute_time();
|
|
||||||
|
|
||||||
|
const double dt = hrt_elapsed_time(&_timestamp_prev) * 1e-6f;
|
||||||
|
const matrix::Vector3d position{pose_position.x(), pose_position.y(), pose_position.z()};
|
||||||
|
const matrix::Vector3d velocity{(position - _position_prev) / dt};
|
||||||
|
const matrix::Vector3d acceleration{(velocity - _velocity_prev) / dt};
|
||||||
|
|
||||||
|
_position_prev = position;
|
||||||
|
_velocity_prev = velocity;
|
||||||
|
|
||||||
|
local_position_groundtruth.ax = acceleration(0);
|
||||||
|
local_position_groundtruth.ay = acceleration(1);
|
||||||
|
local_position_groundtruth.az = acceleration(2);
|
||||||
|
local_position_groundtruth.vx = velocity(0);
|
||||||
|
local_position_groundtruth.vy = velocity(1);
|
||||||
|
local_position_groundtruth.vz = velocity(2);
|
||||||
|
local_position_groundtruth.x = position(0);
|
||||||
|
local_position_groundtruth.y = position(1);
|
||||||
|
local_position_groundtruth.z = position(2);
|
||||||
|
|
||||||
|
local_position_groundtruth.ref_lat = _pos_ref.getProjectionReferenceLat(); // Reference point latitude in degrees
|
||||||
|
local_position_groundtruth.ref_lon = _pos_ref.getProjectionReferenceLon(); // Reference point longitude in degrees
|
||||||
|
local_position_groundtruth.ref_alt = _param_sim_home_alt.get();
|
||||||
|
local_position_groundtruth.ref_timestamp = _pos_ref.getProjectionReferenceTimestamp();
|
||||||
|
|
||||||
|
local_position_groundtruth.timestamp = hrt_absolute_time();
|
||||||
_lpos_ground_truth_pub.publish(local_position_groundtruth);
|
_lpos_ground_truth_pub.publish(local_position_groundtruth);
|
||||||
|
|
||||||
|
if (_pos_ref.isInitialized()) {
|
||||||
|
// publish position groundtruth
|
||||||
|
vehicle_global_position_s global_position_groundtruth{};
|
||||||
|
global_position_groundtruth.timestamp_sample = hrt_absolute_time();
|
||||||
|
|
||||||
// _param_sim_home_lat.get()
|
_pos_ref.reproject(local_position_groundtruth.x, local_position_groundtruth.y,
|
||||||
// reproject
|
global_position_groundtruth.lat, global_position_groundtruth.lon);
|
||||||
|
|
||||||
|
global_position_groundtruth.alt = _param_sim_home_alt.get() - static_cast<float>(pose_position.z());
|
||||||
|
global_position_groundtruth.timestamp = hrt_absolute_time();
|
||||||
|
_gpos_ground_truth_pub.publish(global_position_groundtruth);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// header {
|
|
||||||
// stamp {
|
|
||||||
// sec: 93
|
|
||||||
// nsec: 200000000
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// pose {
|
|
||||||
// name: "x3"
|
|
||||||
// id: 8
|
|
||||||
// position {
|
|
||||||
// x: 9.41649363105415e-19
|
|
||||||
// y: -1.038857584459745e-19
|
|
||||||
// z: 0.054999053759016557
|
|
||||||
// }
|
|
||||||
// orientation {
|
|
||||||
// x: -3.5059616538432739e-20
|
|
||||||
// y: -7.2796873500671957e-18
|
|
||||||
// z: 1.3844952801031163e-18
|
|
||||||
// w: 1
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IgnitionSimulator::IgnitionSimulator() :
|
IgnitionSimulator::IgnitionSimulator() :
|
||||||
@@ -174,15 +158,15 @@ void IgnitionSimulator::run()
|
|||||||
ignition::transport::Node node;
|
ignition::transport::Node node;
|
||||||
|
|
||||||
// Subscribe to messages of other plugins.
|
// Subscribe to messages of other plugins.
|
||||||
node.Subscribe("/imu", &IgnitionSimulator::ImuCallback, this);
|
node.Subscribe("/world/quadcopter/model/X4/link/base_link/sensor/imu_sensor/imu", &IgnitionSimulator::ImuCallback,
|
||||||
|
this);
|
||||||
node.Subscribe("/world/quadcopter/pose/info", &IgnitionSimulator::PoseInfoCallback, this);
|
node.Subscribe("/world/quadcopter/pose/info", &IgnitionSimulator::PoseInfoCallback, this);
|
||||||
|
|
||||||
|
std::string topic = "/X4/command/motor_speed";
|
||||||
std::string topic = "/X3/gazebo/command/motor_speed";
|
|
||||||
auto pub = node.Advertise<ignition::msgs::Actuators>(topic);
|
auto pub = node.Advertise<ignition::msgs::Actuators>(topic);
|
||||||
|
|
||||||
ignition::msgs::Actuators rotor_velocity_message;
|
ignition::msgs::Actuators rotor_velocity_message;
|
||||||
rotor_velocity_message.mutable_velocity()->Resize(4, 0);
|
rotor_velocity_message.mutable_velocity()->Resize(6, 0);
|
||||||
|
|
||||||
|
|
||||||
uORB::Subscription actuator_outputs_sub{ORB_ID(actuator_outputs)};
|
uORB::Subscription actuator_outputs_sub{ORB_ID(actuator_outputs)};
|
||||||
@@ -195,13 +179,14 @@ void IgnitionSimulator::run()
|
|||||||
rotor_velocity_message.set_velocity(1, math::constrain(actuator_outputs.output[1] - 1000, 0.f, 1000.f));
|
rotor_velocity_message.set_velocity(1, math::constrain(actuator_outputs.output[1] - 1000, 0.f, 1000.f));
|
||||||
rotor_velocity_message.set_velocity(2, math::constrain(actuator_outputs.output[2] - 1000, 0.f, 1000.f));
|
rotor_velocity_message.set_velocity(2, math::constrain(actuator_outputs.output[2] - 1000, 0.f, 1000.f));
|
||||||
rotor_velocity_message.set_velocity(3, math::constrain(actuator_outputs.output[3] - 1000, 0.f, 1000.f));
|
rotor_velocity_message.set_velocity(3, math::constrain(actuator_outputs.output[3] - 1000, 0.f, 1000.f));
|
||||||
|
rotor_velocity_message.set_velocity(4, math::constrain(actuator_outputs.output[4] - 1000, 0.f, 1000.f));
|
||||||
|
rotor_velocity_message.set_velocity(5, math::constrain(actuator_outputs.output[5] - 1000, 0.f, 1000.f));
|
||||||
|
|
||||||
if (!pub.Publish(rotor_velocity_message)) {
|
if (!pub.Publish(rotor_velocity_message)) {
|
||||||
PX4_ERR("publish failed");
|
PX4_ERR("publish failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
px4_usleep(1000);
|
px4_usleep(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
*
|
*
|
||||||
* Copyright (c) 2021 PX4 Development Team. All rights reserved.
|
* Copyright (c) 2022 PX4 Development Team. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@@ -40,6 +40,7 @@
|
|||||||
#include <px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp>
|
#include <px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp>
|
||||||
#include <lib/drivers/accelerometer/PX4Accelerometer.hpp>
|
#include <lib/drivers/accelerometer/PX4Accelerometer.hpp>
|
||||||
#include <lib/drivers/gyroscope/PX4Gyroscope.hpp>
|
#include <lib/drivers/gyroscope/PX4Gyroscope.hpp>
|
||||||
|
#include <lib/geo/geo.h>
|
||||||
#include <uORB/PublicationMulti.hpp>
|
#include <uORB/PublicationMulti.hpp>
|
||||||
#include <uORB/Subscription.hpp>
|
#include <uORB/Subscription.hpp>
|
||||||
#include <uORB/SubscriptionInterval.hpp>
|
#include <uORB/SubscriptionInterval.hpp>
|
||||||
@@ -108,4 +109,10 @@ private:
|
|||||||
|
|
||||||
PX4Accelerometer _px4_accel;
|
PX4Accelerometer _px4_accel;
|
||||||
PX4Gyroscope _px4_gyro;
|
PX4Gyroscope _px4_gyro;
|
||||||
|
|
||||||
|
MapProjection _pos_ref{};
|
||||||
|
|
||||||
|
matrix::Vector3d _position_prev{};
|
||||||
|
matrix::Vector3d _velocity_prev{};
|
||||||
|
hrt_abstime _timestamp_prev{};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ void SensorGpsSim::Run()
|
|||||||
sensor_gps.vdop = 100.f;
|
sensor_gps.vdop = 100.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sensor_gps.timestamp_sample = gpos.timestamp;
|
sensor_gps.timestamp_sample = gpos.timestamp;
|
||||||
sensor_gps.time_utc_usec = 0;
|
sensor_gps.time_utc_usec = 0;
|
||||||
sensor_gps.device_id = device_id.devid;
|
sensor_gps.device_id = device_id.devid;
|
||||||
sensor_gps.lat = roundf(latitude * 1e7); // Latitude in 1E-7 degrees
|
sensor_gps.lat = roundf(latitude * 1e7); // Latitude in 1E-7 degrees
|
||||||
|
|||||||
@@ -151,14 +151,10 @@ class Px4Runner(Runner):
|
|||||||
super().__init__(log_dir, model, case, verbose)
|
super().__init__(log_dir, model, case, verbose)
|
||||||
self.name = "px4"
|
self.name = "px4"
|
||||||
self.cmd = os.path.join(workspace_dir, build_dir, "bin/px4")
|
self.cmd = os.path.join(workspace_dir, build_dir, "bin/px4")
|
||||||
self.cwd = os.path.join(workspace_dir, build_dir,
|
self.cwd = os.path.join(workspace_dir, build_dir, "tmp_mavsdk_tests/rootfs")
|
||||||
"tmp_mavsdk_tests/rootfs")
|
|
||||||
self.args = [
|
self.args = [
|
||||||
os.path.join(workspace_dir, build_dir, "etc"),
|
os.path.join(workspace_dir, build_dir, "etc"),
|
||||||
"-s",
|
"-s", "etc/init.d-posix/rcS",
|
||||||
"etc/init.d-posix/rcS",
|
|
||||||
"-t",
|
|
||||||
os.path.join(workspace_dir, "test_data"),
|
|
||||||
"-d"
|
"-d"
|
||||||
]
|
]
|
||||||
self.env["PX4_SIM_MODEL"] = self.model
|
self.env["PX4_SIM_MODEL"] = self.model
|
||||||
|
|||||||