Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 115568eb82 | |||
| c89ae1d690 | |||
| ed10146e9f | |||
| f05fccebb7 | |||
| 6bd020e848 | |||
| 4fe90322db | |||
| 167c3da99d | |||
| 70321ed610 | |||
| f476ebdcbf | |||
| 9d5adf8bab | |||
| e91295e5db | |||
| b16a53018d | |||
| 0987bb2e8e | |||
| da01dd9eeb | |||
| b825b61a20 | |||
| 9c204774f1 | |||
| 88bf1030b5 | |||
| d4cce452cf | |||
| 2542b1bb26 | |||
| e115095f70 | |||
| 4087c27e84 | |||
| aa8d594e9b | |||
| 667e99be81 | |||
| 115cf4d572 | |||
| f233f2167e | |||
| 8a25d06ed7 | |||
| cecef7e3f6 | |||
| d38c02fd6a | |||
| 2635e2c386 | |||
| 7e75b497ae | |||
| f32d931117 | |||
| 349f152601 | |||
| 7bf62373ae | |||
| 2edb35b1b5 | |||
| 6a9a049f1e | |||
| 9ba6f4efb7 | |||
| 554d965a2d | |||
| 608ab9ff9c | |||
| e346190e63 | |||
| 5ece24cdc4 | |||
| 8f0c2f4146 | |||
| 92fbd86b46 | |||
| a2a5093881 | |||
| d996af4647 | |||
| 0c860fa227 | |||
| 9ed35debec | |||
| a56f654651 | |||
| 7bbdc220f5 | |||
| e467d11990 |
@@ -3,7 +3,7 @@ name: Checks
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Clang Tidy
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Linux Targets
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Linux ARM64 Targets
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: MacOS build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Nuttx Targets
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Deploy metadata for all targets
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
- 'release/*'
|
||||
- 'pr-metadata-test'
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ name: MAVROS Mission Tests
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: MAVROS Offboard Tests
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Metadata
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
- 'release/*'
|
||||
- 'pr-metadata-test'
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Python CI Checks
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -3,7 +3,7 @@ name: SITL Tests
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
@@ -11,7 +11,7 @@ matrix:
|
||||
dist: xenial
|
||||
# In order to stay under the coverity rate limit, we only run this weekly
|
||||
# and not on push which is configured in travis-ci settings.
|
||||
if: branch = master
|
||||
if: branch = main
|
||||
|
||||
before_install:
|
||||
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
|
||||
|
||||
@@ -297,10 +297,10 @@ pipeline {
|
||||
sh('make distclean; git clean -ff -x -d .')
|
||||
withCredentials([usernamePassword(credentialsId: 'px4buildbot_github_personal_token', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) {
|
||||
sh("git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/px4_msgs.git")
|
||||
// 'master' branch
|
||||
// 'main' branch
|
||||
sh('./msg/tools/uorb_to_ros_msgs.py msg/ px4_msgs/msg/')
|
||||
sh('cd px4_msgs; git status; git add .; git commit -a -m "Update message definitions `date`" || true')
|
||||
sh('cd px4_msgs; git push origin master || true')
|
||||
sh('cd px4_msgs; git push origin main || true')
|
||||
// 'ros1' branch
|
||||
sh('cd px4_msgs; git checkout ros1')
|
||||
sh('./msg/tools/uorb_to_ros_msgs.py msg/ px4_msgs/msg/')
|
||||
|
||||
@@ -30,4 +30,3 @@ param set-default PWM_MAIN_FUNC1 101
|
||||
param set-default PWM_MAIN_FUNC2 102
|
||||
param set-default PWM_MAIN_FUNC3 103
|
||||
param set-default PWM_MAIN_FUNC4 104
|
||||
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# @name Ignition Gazebo X4
|
||||
#
|
||||
# @type Quadrotor
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
|
||||
PX4_SIMULATOR=${PX4_SIMULATOR:=ignition}
|
||||
PX4_SIM_MODEL=${PX4_SIM_MODEL:=x4}
|
||||
PX4_SIM_WORLD=${PX4_SIM_WORLD:=default}
|
||||
|
||||
param set-default SYS_CTRL_ALLOC 1
|
||||
|
||||
param set-default CA_AIRFRAME 0
|
||||
param set-default CA_ROTOR_COUNT 6
|
||||
|
||||
param set-default CA_ROTOR0_PX 0.25
|
||||
param set-default CA_ROTOR0_PY -0.15
|
||||
param set-default CA_ROTOR0_KM 0.05
|
||||
|
||||
param set-default CA_ROTOR1_PX 0.00
|
||||
param set-default CA_ROTOR1_PY -0.29
|
||||
param set-default CA_ROTOR1_KM -0.05
|
||||
|
||||
param set-default CA_ROTOR2_PX -0.25
|
||||
param set-default CA_ROTOR2_PY -0.15
|
||||
param set-default CA_ROTOR2_KM 0.05
|
||||
|
||||
param set-default CA_ROTOR3_PX -0.25
|
||||
param set-default CA_ROTOR3_PY 0.15
|
||||
param set-default CA_ROTOR3_KM -0.05
|
||||
|
||||
param set-default CA_ROTOR4_PX 0.00
|
||||
param set-default CA_ROTOR4_PY 0.29
|
||||
param set-default CA_ROTOR4_KM 0.05
|
||||
|
||||
param set-default CA_ROTOR5_PX 0.25
|
||||
param set-default CA_ROTOR5_PY 0.15
|
||||
param set-default CA_ROTOR5_KM -0.05
|
||||
|
||||
param set-default SIM_IGN_FUNC1 101
|
||||
param set-default SIM_IGN_FUNC2 102
|
||||
param set-default SIM_IGN_FUNC3 103
|
||||
param set-default SIM_IGN_FUNC4 104
|
||||
param set-default SIM_IGN_FUNC5 105
|
||||
param set-default SIM_IGN_FUNC6 106
|
||||
|
||||
param set-default SIM_IGN_MIN1 150
|
||||
param set-default SIM_IGN_MIN2 150
|
||||
param set-default SIM_IGN_MIN3 150
|
||||
param set-default SIM_IGN_MIN4 150
|
||||
param set-default SIM_IGN_MIN5 150
|
||||
param set-default SIM_IGN_MIN6 150
|
||||
|
||||
param set-default SIM_IGN_MAX1 1000
|
||||
param set-default SIM_IGN_MAX2 1000
|
||||
param set-default SIM_IGN_MAX3 1000
|
||||
param set-default SIM_IGN_MAX4 1000
|
||||
param set-default SIM_IGN_MAX5 1000
|
||||
param set-default SIM_IGN_MAX6 1000
|
||||
|
||||
|
||||
param set-default MC_PITCHRATE_D 0.0016
|
||||
param set-default MC_PITCHRATE_I 0.2500
|
||||
param set-default MC_PITCHRATE_P 0.1831
|
||||
param set-default MC_PITCH_P 5.216
|
||||
|
||||
param set-default MC_ROLLRATE_D 0.0022
|
||||
param set-default MC_ROLLRATE_I 0.2095
|
||||
param set-default MC_ROLLRATE_P 0.1570
|
||||
param set-default MC_ROLL_P 6.081
|
||||
|
||||
param set-default MC_YAWRATE_D 0.0009
|
||||
param set-default MC_YAWRATE_I 0.1800
|
||||
param set-default MC_YAWRATE_P 0.1773
|
||||
param set-default MC_YAW_P 5.386490
|
||||
|
||||
param set-default MPC_THR_HOVER 0.61
|
||||
@@ -79,7 +79,6 @@ px4_add_romfs_files(
|
||||
17002_tf-g2
|
||||
2507_cloudship
|
||||
|
||||
6001_x4
|
||||
6011_typhoon_h480
|
||||
6011_typhoon_h480.post
|
||||
)
|
||||
|
||||
@@ -20,7 +20,10 @@ elif [ "$PX4_SIMULATOR" = "ignition" ]; then
|
||||
. ../gazebo_env.sh
|
||||
fi
|
||||
|
||||
if ! ign service --info --service /world/${PX4_SIM_WORLD}/create | grep "ignition.msgs.EntityFactory"; then
|
||||
ign_world=$( ign topic -l | grep -m 1 -e "/world/.*/clock" | sed 's/\/world\///g; s/\/clock//g' )
|
||||
|
||||
if [ -z $ign_world ]; then
|
||||
|
||||
# starting ign gazebo with ${PX4_SIM_WORLD} world
|
||||
echo "INFO [init] starting ign gazebo"
|
||||
|
||||
@@ -31,16 +34,37 @@ elif [ "$PX4_SIMULATOR" = "ignition" ]; then
|
||||
ign gazebo --verbose=1 -r -s "${PX4_IGN_GAZEBO_WORLDS}/${PX4_SIM_WORLD}.sdf" &
|
||||
fi
|
||||
else
|
||||
echo "INFO [init] ign gazebo already running"
|
||||
echo "INFO [init] ign gazebo already running world: $ign_world"
|
||||
PX4_SIM_WORLD=$ign_world
|
||||
fi
|
||||
|
||||
if simulator_ignition_bridge start -m "${PX4_SIM_MODEL}" -w "${PX4_SIM_WORLD}"; then
|
||||
sensor_baro_sim start
|
||||
sensor_gps_sim start
|
||||
sensor_mag_sim start
|
||||
if [ -z $PX4_IGN_MODEL_POSE ]; then
|
||||
# start ignition bridge without pose arg.
|
||||
echo "WARN [init] PX4_IGN_MODEL_POSE not set, spawning at origin."
|
||||
if simulator_ignition_bridge start -m "${PX4_SIM_MODEL}" -w "${PX4_SIM_WORLD}"; then
|
||||
sensor_baro_sim start
|
||||
sensor_gps_sim start
|
||||
sensor_mag_sim start
|
||||
else
|
||||
echo "ERROR [init] ign gazebo failed to start"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "ERROR [init] ign gazebo failed to start"
|
||||
exit 1
|
||||
|
||||
# Clean potential input line formatting.
|
||||
model_pose="$( echo ${PX4_IGN_MODEL_POSE} | sed -e 's/^[ \t]*//; s/[ \t]*$//; s/,/ /g; s/ / /g; s/ /,/g' )"
|
||||
echo "INFO [init] PX4_IGN_MODEL_POSE set, spawning at: ${model_pose}"
|
||||
|
||||
# start ignition bridge with pose arg.
|
||||
if simulator_ignition_bridge start -p "${model_pose}" -m "${PX4_SIM_MODEL}" -w "${PX4_SIM_WORLD}"; then
|
||||
sensor_baro_sim start
|
||||
sensor_gps_sim start
|
||||
sensor_mag_sim start
|
||||
else
|
||||
echo "ERROR [init] ign gazebo failed to start"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
@@ -262,6 +262,12 @@ then
|
||||
gyro_calibration start
|
||||
fi
|
||||
|
||||
# Payload deliverer module if gripper is enabled
|
||||
if param compare -s PD_GRIPPER_EN 1
|
||||
then
|
||||
payload_deliverer start
|
||||
fi
|
||||
|
||||
#user defined mavlink streams for instances can be in PATH
|
||||
. px4-rc.mavlink
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ px4_add_romfs_files(
|
||||
rc.boat_defaults
|
||||
rc.fw_apps
|
||||
rc.fw_defaults
|
||||
rc.heli_defaults
|
||||
rc.interface
|
||||
rc.logging
|
||||
rc.mc_apps
|
||||
|
||||
@@ -1,55 +1,27 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# @name Blade 130X
|
||||
# @name Generic Helicopter (Tail ESC)
|
||||
#
|
||||
# @type Helicopter
|
||||
# @class Copter
|
||||
#
|
||||
# @maintainer Bart Slinger <bartslinger@gmail.com>
|
||||
#
|
||||
# @output Motor1 main motor
|
||||
# @output Servo1 front swashplate servo
|
||||
# @output Servo2 right swashplate servo
|
||||
# @output Servo3 left swashplate servo
|
||||
# @output Servo4 tail-rotor servo
|
||||
#
|
||||
# @board px4_fmu-v2 exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
|
||||
# Configure as helicopter
|
||||
param set-default MAV_TYPE 4
|
||||
. ${R}etc/init.d/rc.heli_defaults
|
||||
|
||||
|
||||
|
||||
param set-default ATT_BIAS_MAX 0
|
||||
|
||||
param set-default CBRK_IO_SAFETY 22027
|
||||
|
||||
param set-default MC_ROLL_P 5
|
||||
# Disable PID gains for initial setup. These should be enabled after setting the FF gain.
|
||||
# P is expected to be lower than FF.
|
||||
param set-default MC_ROLLRATE_P 0
|
||||
param set-default MC_ROLLRATE_I 0
|
||||
param set-default MC_ROLLRATE_D 0
|
||||
param set-default MC_ROLLRATE_FF 0.15
|
||||
param set-default MC_ROLLRATE_FF 0.1
|
||||
param set-default MC_PITCHRATE_P 0
|
||||
param set-default MC_PITCHRATE_I 0
|
||||
param set-default MC_PITCHRATE_D 0
|
||||
param set-default MC_PITCHRATE_FF 0.15
|
||||
param set-default MC_YAW_P 3
|
||||
param set-default MC_YAWRATE_P 0.1
|
||||
param set-default MC_YAWRATE_I 0
|
||||
param set-default MC_ROLLRATE_MAX 720
|
||||
param set-default MC_PITCHRATE_MAX 720
|
||||
param set-default MC_YAWRATE_MAX 400
|
||||
param set-default MC_ACRO_R_MAX 360
|
||||
param set-default MC_ACRO_P_MAX 360
|
||||
|
||||
param set-default MPC_THR_MIN 0.06
|
||||
param set-default MPC_MANTHR_MIN 0.06
|
||||
|
||||
param set-default PWM_MAIN_MIN 1075
|
||||
param set-default MC_PITCHRATE_FF 0.1
|
||||
|
||||
param set-default CA_AIRFRAME 10
|
||||
|
||||
|
||||
@@ -60,7 +60,6 @@ param set-default CP_DIST 6
|
||||
param set-default MPC_ACC_DOWN_MAX 5
|
||||
param set-default MPC_ACC_HOR_MAX 10
|
||||
param set-default MPC_ACC_UP_MAX 4
|
||||
param set-default MPC_MANTHR_MIN 0
|
||||
param set-default MPC_MAN_Y_MAX 120
|
||||
param set-default MPC_TILTMAX_AIR 45
|
||||
param set-default MPC_THR_HOVER 0.3
|
||||
|
||||
@@ -26,7 +26,6 @@ param set-default MC_ROLLRATE_MAX 1600
|
||||
param set-default MC_PITCHRATE_MAX 1600
|
||||
param set-default MC_YAWRATE_MAX 1000
|
||||
|
||||
param set-default MPC_MANTHR_MIN 0
|
||||
param set-default MPC_MAN_TILT_MAX 60
|
||||
|
||||
param set-default THR_MDL_FAC 0.3
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Helicopter default parameters.
|
||||
#
|
||||
# NOTE: Script variables are declared/initialized/unset in the rcS script.
|
||||
#
|
||||
|
||||
# Inherit from mc
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
|
||||
param set-default MAV_TYPE 4
|
||||
|
||||
param set-default COM_PREARM_MODE 2
|
||||
param set-default COM_SPOOLUP_TIME 10
|
||||
|
||||
# No need for minimum collective pitch (or airmode) to keep torque authority
|
||||
param set-default MPC_MANTHR_MIN 0
|
||||
@@ -505,6 +505,12 @@ else
|
||||
px4flow start -X &
|
||||
fi
|
||||
|
||||
# Payload deliverer module if gripper is enabled
|
||||
if param compare -s PD_GRIPPER_EN 1
|
||||
then
|
||||
payload_deliverer start
|
||||
fi
|
||||
|
||||
#
|
||||
# Optional board supplied extras: rc.board_extras
|
||||
#
|
||||
|
||||
@@ -47,6 +47,8 @@ fi
|
||||
|
||||
# Python dependencies
|
||||
echo "Installing PX4 Python3 dependencies"
|
||||
# We need to have future to install pymavlink later.
|
||||
python3 -m pip install future
|
||||
python3 -m pip install --user -r ${DIR}/requirements.txt
|
||||
|
||||
# Optional, but recommended additional simulation tools:
|
||||
|
||||
@@ -2,20 +2,29 @@
|
||||
|
||||
set -e
|
||||
|
||||
## Bash script to setup PX4 development environment on Ubuntu LTS (20.04, 18.04, 16.04).
|
||||
## Can also be used in docker.
|
||||
##
|
||||
## Installs:
|
||||
## - Common dependencies and tools for nuttx, jMAVSim, Gazebo
|
||||
## - NuttX toolchain (omit with arg: --no-nuttx)
|
||||
## - jMAVSim and Gazebo9 simulator (omit with arg: --no-sim-tools)
|
||||
##
|
||||
## Not Installs:
|
||||
## - FastRTPS and FastCDR
|
||||
usage() {
|
||||
echo "
|
||||
Bash script to set up the PX4 development environment on Ubuntu LTS versions
|
||||
- 22.04
|
||||
- 20.04
|
||||
- 18.04 (without simulation support)
|
||||
|
||||
The script can be used directly or inside docker
|
||||
(use --from-docker when running inside docker).
|
||||
|
||||
Installs:
|
||||
- Build dependencies
|
||||
- NuttX toolchain (omit with arg: --no-nuttx)
|
||||
- Gazebo Classic (omit with arg: --no-gazebo-classic)
|
||||
- Gazebo Ignition (omit with arg: --no-gazebo-ignition)
|
||||
"
|
||||
}
|
||||
|
||||
INSTALL_NUTTX="true"
|
||||
INSTALL_SIM="true"
|
||||
INSTALL_ARCH=`uname -m`
|
||||
INSTALL_GAZEBO_CLASSIC="true"
|
||||
INSTALL_GAZEBO_IGNITION="true"
|
||||
INSTALL_ARCH=$(uname -m)
|
||||
INSIDE_DOCKER="false"
|
||||
|
||||
# Parse arguments
|
||||
for arg in "$@"
|
||||
@@ -24,38 +33,38 @@ do
|
||||
INSTALL_NUTTX="false"
|
||||
fi
|
||||
|
||||
if [[ $arg == "--no-sim-tools" ]]; then
|
||||
INSTALL_SIM="false"
|
||||
if [[ $arg == "--no-gazebo-classic" ]]; then
|
||||
INSTALL_GAZEBO_CLASSIC="false"
|
||||
fi
|
||||
|
||||
if [[ $arg == "--no-gazebo-ignition" ]]; then
|
||||
INSTALL_GAZEBO_IGNITION="false"
|
||||
fi
|
||||
|
||||
if [[ $arg == "--from-docker" ]]; then
|
||||
INSIDE_DOCKER="true"
|
||||
fi
|
||||
|
||||
if [[ $arg == "--help" ]]; then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
# detect if running in docker
|
||||
if [ -f /.dockerenv ]; then
|
||||
echo "Running within docker, installing initial dependencies";
|
||||
apt-get --quiet -y update && DEBIAN_FRONTEND=noninteractive apt-get --quiet -y install \
|
||||
ca-certificates \
|
||||
gnupg \
|
||||
lsb-core \
|
||||
sudo \
|
||||
wget \
|
||||
;
|
||||
fi
|
||||
|
||||
# script directory
|
||||
# Script directory
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
||||
# check requirements.txt exists (script not run in source tree)
|
||||
# Check requirements.txt exists (script not run in source tree)
|
||||
REQUIREMENTS_FILE="requirements.txt"
|
||||
if [[ ! -f "${DIR}/${REQUIREMENTS_FILE}" ]]; then
|
||||
echo "FAILED: ${REQUIREMENTS_FILE} needed in same directory as ubuntu.sh (${DIR})."
|
||||
return 1
|
||||
echo "Failed: ${REQUIREMENTS_FILE} needed in same directory as ubuntu.sh (${DIR})."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# check ubuntu version
|
||||
# otherwise warn and point to docker?
|
||||
UBUNTU_RELEASE="`lsb_release -rs`"
|
||||
# Check ubuntu version
|
||||
UBUNTU_RELEASE=$(lsb_release -rs)
|
||||
|
||||
if [[ "${UBUNTU_RELEASE}" == "14.04" ]]; then
|
||||
echo "Ubuntu 14.04 is no longer supported"
|
||||
@@ -65,24 +74,43 @@ elif [[ "${UBUNTU_RELEASE}" == "16.04" ]]; then
|
||||
exit 1
|
||||
elif [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then
|
||||
echo "Ubuntu 18.04"
|
||||
echo "Gazebo Classic and Gazebo Ignition omitted"
|
||||
INSTALL_GAZEBO_IGNITION="false"
|
||||
INSTALL_GAZEBO_CLASSIC="false"
|
||||
elif [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then
|
||||
echo "Ubuntu 20.04"
|
||||
elif [[ "${UBUNTU_RELEASE}" == "22.04" ]]; then
|
||||
echo "Ubuntu 22.04"
|
||||
fi
|
||||
|
||||
VERBOSE_BAR="================================================================================"
|
||||
echo
|
||||
echo $VERBOSE_BAR
|
||||
echo "⚡️ Starting PX4 Dependency Installer for Ubuntu ${UBUNTU_RELEASE} (${INSTALL_ARCH})"
|
||||
echo ""
|
||||
echo "Options:
|
||||
- Install NuttX toolchain: ${INSTALL_NUTTX}
|
||||
- Install Gazebo Classic: ${INSTALL_GAZEBO_CLASSIC}
|
||||
- Install Gazebo Ignition: ${INSTALL_GAZEBO_IGNITION}"
|
||||
echo $VERBOSE_BAR
|
||||
echo
|
||||
|
||||
echo
|
||||
echo "Installing PX4 general dependencies"
|
||||
echo $VERBOSE_BAR
|
||||
echo "🍻 Installing System Dependencies"
|
||||
echo $VERBOSE_BAR
|
||||
echo
|
||||
|
||||
sudo apt-get update -y --quiet
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
|
||||
astyle \
|
||||
build-essential \
|
||||
cmake \
|
||||
cppcheck \
|
||||
file \
|
||||
g++ \
|
||||
gcc \
|
||||
gdb \
|
||||
astyle \
|
||||
cmake \
|
||||
cppcheck \
|
||||
file \
|
||||
git \
|
||||
lcov \
|
||||
libxml2-dev \
|
||||
@@ -98,34 +126,32 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends i
|
||||
shellcheck \
|
||||
unzip \
|
||||
zip \
|
||||
libssl-dev \
|
||||
;
|
||||
|
||||
# Python3 dependencies
|
||||
# Python 3 dependencies
|
||||
echo
|
||||
echo "Installing PX4 Python3 dependencies"
|
||||
if [ -n "$VIRTUAL_ENV" ]; then
|
||||
# virtual environments don't allow --user option
|
||||
python -m pip install -r ${DIR}/requirements.txt
|
||||
else
|
||||
# older versions of Ubuntu require --user option
|
||||
python3 -m pip install --user -r ${DIR}/requirements.txt
|
||||
fi
|
||||
echo $VERBOSE_BAR
|
||||
echo "🍻 Installing Python dependencies"
|
||||
echo $VERBOSE_BAR
|
||||
echo
|
||||
|
||||
python3 -m pip install -r "$DIR"/requirements.txt
|
||||
|
||||
# NuttX toolchain (arm-none-eabi-gcc)
|
||||
if [[ $INSTALL_NUTTX == "true" ]]; then
|
||||
|
||||
echo
|
||||
echo "Installing NuttX dependencies"
|
||||
echo $VERBOSE_BAR
|
||||
echo "🍻 Installing NuttX dependencies"
|
||||
echo $VERBOSE_BAR
|
||||
echo
|
||||
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
|
||||
automake \
|
||||
binutils-dev \
|
||||
bison \
|
||||
build-essential \
|
||||
flex \
|
||||
g++-multilib \
|
||||
gcc-multilib \
|
||||
gdb-multiarch \
|
||||
genromfs \
|
||||
gettext \
|
||||
gperf \
|
||||
@@ -144,99 +170,108 @@ if [[ $INSTALL_NUTTX == "true" ]]; then
|
||||
texinfo \
|
||||
u-boot-tools \
|
||||
util-linux \
|
||||
vim-common \
|
||||
g++-arm-linux-gnueabihf \
|
||||
gcc-arm-linux-gnueabihf \
|
||||
g++-aarch64-linux-gnu \
|
||||
gcc-aarch64-linux-gnu \
|
||||
;
|
||||
if [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then
|
||||
|
||||
if [[ "${UBUNTU_RELEASE}" == "20.04" ]] || [[ "${UBUNTU_RELEASE}" == "22.04" ]]; then
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
|
||||
kconfig-frontends \
|
||||
;
|
||||
fi
|
||||
|
||||
|
||||
if [ -n "$USER" ]; then
|
||||
# add user to dialout group (serial port access)
|
||||
sudo usermod -a -G dialout $USER
|
||||
# Add user to dialout group (serial port access)
|
||||
sudo usermod -a -G dialout "$USER"
|
||||
fi
|
||||
|
||||
# arm-none-eabi-gcc
|
||||
NUTTX_GCC_VERSION="9-2020-q2-update"
|
||||
NUTTX_GCC_VERSION_SHORT="9-2020q2"
|
||||
NUTTX_GCC_VERSION="10.3-2021.10"
|
||||
echo
|
||||
echo $VERBOSE_BAR
|
||||
echo "🍻 Verifying arm-none-eabi-gcc version (${NUTTX_GCC_VERSION}), and installing if not found"
|
||||
echo
|
||||
|
||||
source $HOME/.profile # load changed path for the case the script is reran before relogin
|
||||
if [ $(which arm-none-eabi-gcc) ]; then
|
||||
source "$HOME/.profile" # load changed path for the case the script is reran before relogin
|
||||
if [ "$(which arm-none-eabi-gcc)" ]; then
|
||||
GCC_VER_STR=$(arm-none-eabi-gcc --version)
|
||||
GCC_FOUND_VER=$(echo $GCC_VER_STR | grep -c "${NUTTX_GCC_VERSION}")
|
||||
fi
|
||||
|
||||
if [[ "$GCC_FOUND_VER" == "1" ]]; then
|
||||
echo "arm-none-eabi-gcc-${NUTTX_GCC_VERSION} found, skipping installation"
|
||||
if [[ $(echo "$GCC_VER_STR" | grep -c "${NUTTX_GCC_VERSION}") == "1" ]]; then
|
||||
echo "📌 Skipping installation, the arm cross compiler was found"
|
||||
echo $VERBOSE_BAR
|
||||
echo
|
||||
|
||||
else
|
||||
echo "Installing arm-none-eabi-gcc-${NUTTX_GCC_VERSION}";
|
||||
wget -O /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/${NUTTX_GCC_VERSION_SHORT}/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-${INSTALL_ARCH}-linux.tar.bz2 && \
|
||||
sudo tar -jxf /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 -C /opt/;
|
||||
echo "📌 The arm cross compiler was not found";
|
||||
echo " * Installing arm-none-eabi-gcc-${NUTTX_GCC_VERSION}";
|
||||
# The arm cross compiler hosting provider is known to throttle download speeds
|
||||
# for users who reach a certain limit of downloads in a given time frame
|
||||
# for this reason we allow for using a previously downloaded file
|
||||
# this is specially helpful when debugging this installer script
|
||||
# from within a container COMPILER_PATH="/tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2"
|
||||
COMPILER_NAME="gcc-arm-none-eabi-${NUTTX_GCC_VERSION}"
|
||||
COMPILER_PATH="/tmp/$COMPILER_NAME-linux.tar.bz2"
|
||||
if [ ! -f "$COMPILER_PATH" ]; then
|
||||
wget -O "/tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 https://developer.arm.com/-/media/Files/downloads/gnu-rm/${NUTTX_GCC_VERSION}/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-${INSTALL_ARCH}-linux.tar.bz2"
|
||||
fi
|
||||
sudo tar -jxf $COMPILER_PATH -C /opt/;
|
||||
|
||||
# add arm-none-eabi-gcc to user's PATH
|
||||
exportline="export PATH=/opt/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}/bin:\$PATH"
|
||||
|
||||
if grep -Fxq "$exportline" $HOME/.profile; then
|
||||
exportline="export PATH=\"/opt/${COMPILER_NAME}/bin:\$PATH\""
|
||||
if [[ $INSIDE_DOCKER == "true" ]]; then
|
||||
# when running on a docker container its best to set the environment globally
|
||||
# since we don't know which user is going to be running commands on the container
|
||||
touch /etc/profile.d/px4env.sh
|
||||
echo "$exportline" >> /etc/profile.d/px4env.sh
|
||||
elif grep -Fxq "$exportline" "$HOME"/.profile; then
|
||||
echo "${NUTTX_GCC_VERSION} path already set.";
|
||||
else
|
||||
echo $exportline >> $HOME/.profile;
|
||||
echo "$exportline" >> "$HOME"/.profile;
|
||||
fi
|
||||
echo " * arm-none-eabi-gcc (${NUTTX_GCC_VERSION}) Installed successfully to /opt/${COMPILER_NAME}/bin"
|
||||
echo $VERBOSE_BAR
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
# Simulation tools
|
||||
if [[ $INSTALL_SIM == "true" ]]; then
|
||||
|
||||
echo
|
||||
echo "Installing PX4 simulation dependencies"
|
||||
|
||||
install_gazebo_common() {
|
||||
# General simulation dependencies
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
|
||||
bc \
|
||||
;
|
||||
|
||||
if [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then
|
||||
java_version=11
|
||||
elif [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then
|
||||
java_version=13
|
||||
elif [[ "${UBUNTU_RELEASE}" == "22.04" ]]; then
|
||||
java_version=11
|
||||
else
|
||||
java_version=14
|
||||
fi
|
||||
# Java (jmavsim or fastrtps)
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
|
||||
ant \
|
||||
openjdk-$java_version-jre \
|
||||
openjdk-$java_version-jdk \
|
||||
libvecmath-java \
|
||||
;
|
||||
# Installing Gazebo and dependencies
|
||||
# Setup OSRF Gazebo repository
|
||||
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
|
||||
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
|
||||
# Update list, since new gazebo-stable.list has been added
|
||||
sudo apt-get update -y --quiet
|
||||
}
|
||||
|
||||
# Set Java 11 as default
|
||||
sudo update-alternatives --set java $(update-alternatives --list java | grep "java-$java_version")
|
||||
# Gazebo Classic
|
||||
if [[ $INSTALL_GAZEBO_CLASSIC == "true" ]]; then
|
||||
|
||||
# Gazebo
|
||||
if [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then
|
||||
gazebo_version=9
|
||||
gazebo_packages="gazebo$gazebo_version libgazebo$gazebo_version-dev"
|
||||
elif [[ "${UBUNTU_RELEASE}" == "22.04" ]]; then
|
||||
gazebo_packages="gazebo libgazebo-dev"
|
||||
else
|
||||
# default and Ubuntu 20.04
|
||||
gazebo_version=11
|
||||
gazebo_packages="gazebo$gazebo_version libgazebo$gazebo_version-dev"
|
||||
fi
|
||||
echo
|
||||
echo $VERBOSE_BAR
|
||||
echo "🍻 Installing Gazebo Classic"
|
||||
echo
|
||||
|
||||
echo " * Gazebo Classic (Version 11)"
|
||||
echo $VERBOSE_BAR
|
||||
|
||||
install_gazebo_common
|
||||
|
||||
# Installing Gazebo and dependencies
|
||||
# Setup OSRF Gazebo repository
|
||||
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
|
||||
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
|
||||
# Update list, since new gazebo-stable.list has been added
|
||||
sudo apt-get update -y --quiet
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
|
||||
dmidecode \
|
||||
$gazebo_packages \
|
||||
gazebo libgazebo-dev \
|
||||
gstreamer1.0-plugins-bad \
|
||||
gstreamer1.0-plugins-base \
|
||||
gstreamer1.0-plugins-good \
|
||||
@@ -257,7 +292,51 @@ if [[ $INSTALL_SIM == "true" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $INSTALL_NUTTX == "true" ]]; then
|
||||
# Gazebo Ignition
|
||||
if [[ $INSTALL_GAZEBO_IGNITION == "true" ]]; then
|
||||
|
||||
echo
|
||||
echo "Relogin or reboot computer before attempting to build NuttX targets"
|
||||
echo $VERBOSE_BAR
|
||||
echo "🍻 Installing Gazebo IGNITION"
|
||||
echo
|
||||
|
||||
echo " * Gazebo Ignition (Version 6 / Fortress)"
|
||||
echo $VERBOSE_BAR
|
||||
|
||||
# We have likely done the common pieces already earlier.
|
||||
if [[ $INSTALL_GAZEBO_CLASSIC != "true" ]]; then
|
||||
install_gazebo_common
|
||||
fi
|
||||
|
||||
#
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
|
||||
ignition-fortress \
|
||||
;
|
||||
fi
|
||||
|
||||
|
||||
if [[ $INSIDE_DOCKER == "true" ]]; then
|
||||
# cleanup installation
|
||||
rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
|
||||
fi
|
||||
|
||||
if [[ $INSIDE_DOCKER == "false" ]] && [[ $INSTALL_NUTTX == "true" ]]; then
|
||||
echo
|
||||
echo $VERBOSE_BAR
|
||||
echo "💡 We recommend you relogin/reboot before attempting to upload NuttX targets"
|
||||
echo " to be part of the dialout group to have access to serial ports."
|
||||
echo $VERBOSE_BAR
|
||||
echo
|
||||
fi
|
||||
|
||||
echo
|
||||
echo
|
||||
echo $VERBOSE_BAR
|
||||
echo "⚡️ PX4 Dependency Installer ended successfully
|
||||
|
||||
For more information on PX4 Autopilot check out our docs
|
||||
at https://docs.px4.io.
|
||||
If you find a bug please file an issue
|
||||
on https://github.com/PX4/PX4-Autopilot"
|
||||
echo $VERBOSE_BAR
|
||||
echo
|
||||
|
||||
|
Before Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 182 KiB |
@@ -1,529 +0,0 @@
|
||||
<?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>
|
||||
@@ -1,66 +0,0 @@
|
||||
<?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>
|
||||
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 166 KiB |
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<model>
|
||||
<name>x4</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>
|
||||
@@ -1,822 +0,0 @@
|
||||
<?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>250</update_rate>
|
||||
<imu>
|
||||
<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>
|
||||
<plugin filename="libignition-gazebo-imu-system.so" name="ignition::gazebo::systems::Imu" />
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
|
Before Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<model>
|
||||
<name>x500-Base</name>
|
||||
<version>1.0</version>
|
||||
<sdf version="1.9">model.sdf</sdf>
|
||||
<author>
|
||||
<name>Benjamin Perseghetti</name>
|
||||
<email>bperseghetti@rudislabs.com</email>
|
||||
</author>
|
||||
<description>Model of the NXP HoverGames Drone development kit (KIT-HGDRONEK66). The PX4 software compatible kit provides mechanical, RC remote and other components needed to evaluate the RDDRONE-FMUK66 reference design. The FMU includes 100Base-T1 Automotive Ethernet, dual CAN transceivers, as well as SE050 secure element, and works with add on boards NavQPlus, MR-T1ETH8, MR-T1ADAPT, and CAN-nodes such as UCANS32K1SIC. Kit may be used with, and contains the components needed for the HoverGames.com coding challenges.</description>
|
||||
</model>
|
||||
@@ -0,0 +1,516 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<sdf version='1.9'>
|
||||
<model name='x500-Base'>
|
||||
<pose>0 0 .24 0 0 0</pose>
|
||||
<self_collide>false</self_collide>
|
||||
<static>false</static>
|
||||
<link name="base_link">
|
||||
<inertial>
|
||||
<mass>2.0</mass>
|
||||
<inertia>
|
||||
<ixx>0.02166666666666667</ixx>
|
||||
<ixy>0</ixy>
|
||||
<ixz>0</ixz>
|
||||
<iyy>0.02166666666666667</iyy>
|
||||
<iyz>0</iyz>
|
||||
<izz>0.04000000000000001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<gravity>true</gravity>
|
||||
<velocity_decay/>
|
||||
<visual name="base_link_visual">
|
||||
<pose>0 0 .025 0 0 3.141592654</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/NXP-HGD-CF.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="5010_motor_base_0">
|
||||
<pose>0.174 0.174 .032 0 0 -.45</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/5010Base.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="5010_motor_base_1">
|
||||
<pose>-0.174 0.174 .032 0 0 -.45</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/5010Base.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="5010_motor_base_2">
|
||||
<pose>0.174 -0.174 .032 0 0 -.45</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/5010Base.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="5010_motor_base_3">
|
||||
<pose>-0.174 -0.174 .032 0 0 -.45</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/5010Base.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="NXP_FMUK66_FRONT">
|
||||
<pose>0.047 .001 .043 1 0 1.57</pose>
|
||||
<cast_shadows>false</cast_shadows>
|
||||
<geometry>
|
||||
<plane>
|
||||
<normal>0 0 1</normal>
|
||||
<size>.013 .007</size>
|
||||
</plane>
|
||||
</geometry>
|
||||
<material>
|
||||
<diffuse>1.0 1.0 1.0</diffuse>
|
||||
<specular>1.0 1.0 1.0</specular>
|
||||
<pbr>
|
||||
<metal>
|
||||
<albedo_map>model://x500-Base/materials/textures/nxp.png</albedo_map>
|
||||
</metal>
|
||||
</pbr>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="NXP_FMUK66_TOP">
|
||||
<pose>-0.023 0 .0515 0 0 -1.57</pose>
|
||||
<cast_shadows>false</cast_shadows>
|
||||
<geometry>
|
||||
<plane>
|
||||
<normal>0 0 1</normal>
|
||||
<size>.013 .007</size>
|
||||
</plane>
|
||||
</geometry>
|
||||
<material>
|
||||
<diffuse>1.0 1.0 1.0</diffuse>
|
||||
<specular>1.0 1.0 1.0</specular>
|
||||
<pbr>
|
||||
<metal>
|
||||
<albedo_map>model://x500-Base/materials/textures/nxp.png</albedo_map>
|
||||
</metal>
|
||||
</pbr>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="RDDRONE_FMUK66_TOP">
|
||||
<pose>-.03 0 .0515 0 0 -1.57</pose>
|
||||
<cast_shadows>false</cast_shadows>
|
||||
<geometry>
|
||||
<plane>
|
||||
<normal>0 0 1</normal>
|
||||
<size>.032 .0034</size>
|
||||
</plane>
|
||||
</geometry>
|
||||
<material>
|
||||
<diffuse>1.0 1.0 1.0</diffuse>
|
||||
<specular>1.0 1.0 1.0</specular>
|
||||
<pbr>
|
||||
<metal>
|
||||
<albedo_map>model://x500-Base/materials/textures/rd.png</albedo_map>
|
||||
</metal>
|
||||
</pbr>
|
||||
</material>
|
||||
</visual>
|
||||
<collision name="base_link_collision_0">
|
||||
<pose>0 0 .007 0 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.35355339059327373 0.35355339059327373 0.05</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<collision name="base_link_collision_1">
|
||||
<pose>0 -0.098 -.123 -0.35 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.015 0.015 0.21</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<collision name="base_link_collision_2">
|
||||
<pose>0 0.098 -.123 0.35 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.015 0.015 0.21</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<collision name="base_link_collision_3">
|
||||
<pose>0 -0.132 -.2195 0 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.25 0.015 0.015</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<collision name="base_link_collision_4">
|
||||
<pose>0 0.132 -.2195 0 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.25 0.015 0.015</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<sensor name="imu_sensor" type="imu">
|
||||
<always_on>1</always_on>
|
||||
<update_rate>250</update_rate>
|
||||
</sensor>
|
||||
</link>
|
||||
<link name="rotor_0">
|
||||
<gravity>true</gravity>
|
||||
<self_collide>false</self_collide>
|
||||
<velocity_decay/>
|
||||
<pose>0.174 -0.174 0.06 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.016076923076923075</mass>
|
||||
<inertia>
|
||||
<ixx>3.8464910483993325e-07</ixx>
|
||||
<iyy>2.6115851691700804e-05</iyy>
|
||||
<izz>2.649858234714004e-05</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="rotor_0_visual">
|
||||
<pose>-0.022 -0.14638461538461536 -0.016 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>0.8461538461538461 0.8461538461538461 0.8461538461538461</scale>
|
||||
<uri>model://x500-Base/meshes/1345_prop_ccw.stl</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<material>
|
||||
<script>
|
||||
<name>Gazebo/DarkGrey</name>
|
||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||
</script>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="rotor_0_visual_motor_bell">
|
||||
<pose>0 0 -.032 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/5010Bell.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision name="rotor_0_collision">
|
||||
<pose>0 0 0 0 0 0 </pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.2792307692307692 0.016923076923076923 0.0008461538461538462</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="rotor_0_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>rotor_0</child>
|
||||
<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="rotor_1">
|
||||
<gravity>true</gravity>
|
||||
<self_collide>false</self_collide>
|
||||
<velocity_decay/>
|
||||
<pose>-0.174 0.174 0.06 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.016076923076923075</mass>
|
||||
<inertia>
|
||||
<ixx>3.8464910483993325e-07</ixx>
|
||||
<iyy>2.6115851691700804e-05</iyy>
|
||||
<izz>2.649858234714004e-05</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="rotor_1_visual">
|
||||
<pose>-0.022 -0.14638461538461536 -0.016 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>0.8461538461538461 0.8461538461538461 0.8461538461538461</scale>
|
||||
<uri>model://x500-Base/meshes/1345_prop_ccw.stl</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<material>
|
||||
<script>
|
||||
<name>Gazebo/DarkGrey</name>
|
||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||
</script>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="rotor_1_visual_motor_top">
|
||||
<pose>0 0 -.032 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/5010Bell.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision name="rotor_1_collision">
|
||||
<pose>0 0 0 0 0 0 </pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.2792307692307692 0.016923076923076923 0.0008461538461538462</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="rotor_1_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>rotor_1</child>
|
||||
<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="rotor_2">
|
||||
<gravity>true</gravity>
|
||||
<self_collide>false</self_collide>
|
||||
<velocity_decay/>
|
||||
<pose>0.174 0.174 0.06 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.016076923076923075</mass>
|
||||
<inertia>
|
||||
<ixx>3.8464910483993325e-07</ixx>
|
||||
<iyy>2.6115851691700804e-05</iyy>
|
||||
<izz>2.649858234714004e-05</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="rotor_2_visual">
|
||||
<pose>-0.022 -0.14638461538461536 -0.016 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>0.8461538461538461 0.8461538461538461 0.8461538461538461</scale>
|
||||
<uri>model://x500-Base/meshes/1345_prop_cw.stl</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<material>
|
||||
<script>
|
||||
<name>Gazebo/DarkGrey</name>
|
||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||
</script>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="rotor_2_visual_motor_top">
|
||||
<pose>0 0 -.032 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/5010Bell.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision name="rotor_2_collision">
|
||||
<pose>0 0 0 0 0 0 </pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.2792307692307692 0.016923076923076923 0.0008461538461538462</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="rotor_2_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>rotor_2</child>
|
||||
<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="rotor_3">
|
||||
<gravity>true</gravity>
|
||||
<self_collide>false</self_collide>
|
||||
<velocity_decay/>
|
||||
<pose>-0.174 -0.174 0.06 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.016076923076923075</mass>
|
||||
<inertia>
|
||||
<ixx>3.8464910483993325e-07</ixx>
|
||||
<iyy>2.6115851691700804e-05</iyy>
|
||||
<izz>2.649858234714004e-05</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="rotor_3_visual">
|
||||
<pose>-0.022 -0.14638461538461536 -0.016 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>0.8461538461538461 0.8461538461538461 0.8461538461538461</scale>
|
||||
<uri>model://x500-Base/meshes/1345_prop_cw.stl</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<material>
|
||||
<script>
|
||||
<name>Gazebo/DarkGrey</name>
|
||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||
</script>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="rotor_3_visual_motor_top">
|
||||
<pose>0 0 -.032 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500-Base/meshes/5010Bell.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision name="rotor_3_collision">
|
||||
<pose>0 0 0 0 0 0 </pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.2792307692307692 0.016923076923076923 0.0008461538461538462</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="rotor_3_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>rotor_3</child>
|
||||
<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>
|
||||
</model>
|
||||
</sdf>
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<model>
|
||||
<name>x500-Depth</name>
|
||||
<version>1.0</version>
|
||||
<sdf version="1.9">model.sdf</sdf>
|
||||
<author>
|
||||
<name>Benjamin Perseghetti</name>
|
||||
<email>bperseghetti@rudislabs.com</email>
|
||||
</author>
|
||||
<description>Model of the NXP HoverGames Drone development kit (KIT-HGDRONEK66). The PX4 software compatible kit provides mechanical, RC remote and other components needed to evaluate the RDDRONE-FMUK66 reference design. The FMU includes 100Base-T1 Automotive Ethernet, dual CAN transceivers, as well as SE050 secure element, and works with add on boards NavQPlus, MR-T1ETH8, MR-T1ADAPT, and CAN-nodes such as UCANS32K1SIC. Kit may be used with, and contains the components needed for the HoverGames.com coding challenges.</description>
|
||||
</model>
|
||||
@@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<sdf version='1.9'>
|
||||
<model name='x500-Depth'>
|
||||
<include merge='true'>
|
||||
<uri>model://x500-Base</uri>
|
||||
</include>
|
||||
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||
<robotNamespace>model/x500-Depth</robotNamespace>
|
||||
<jointName>rotor_0_joint</jointName>
|
||||
<linkName>rotor_0</linkName>
|
||||
<turningDirection>ccw</turningDirection>
|
||||
<timeConstantUp>0.0125</timeConstantUp>
|
||||
<timeConstantDown>0.025</timeConstantDown>
|
||||
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||
<motorConstant>8.54858e-06</motorConstant>
|
||||
<momentConstant>0.016</momentConstant>
|
||||
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||
<motorNumber>0</motorNumber>
|
||||
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
|
||||
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
||||
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
|
||||
<motorType>velocity</motorType>
|
||||
</plugin>
|
||||
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||
<robotNamespace>model/x500-Depth</robotNamespace>
|
||||
<jointName>rotor_1_joint</jointName>
|
||||
<linkName>rotor_1</linkName>
|
||||
<turningDirection>ccw</turningDirection>
|
||||
<timeConstantUp>0.0125</timeConstantUp>
|
||||
<timeConstantDown>0.025</timeConstantDown>
|
||||
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||
<motorConstant>8.54858e-06</motorConstant>
|
||||
<momentConstant>0.016</momentConstant>
|
||||
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||
<motorNumber>1</motorNumber>
|
||||
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
|
||||
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
||||
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
|
||||
<motorType>velocity</motorType>
|
||||
</plugin>
|
||||
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||
<robotNamespace>model/x500-Depth</robotNamespace>
|
||||
<jointName>rotor_2_joint</jointName>
|
||||
<linkName>rotor_2</linkName>
|
||||
<turningDirection>cw</turningDirection>
|
||||
<timeConstantUp>0.0125</timeConstantUp>
|
||||
<timeConstantDown>0.025</timeConstantDown>
|
||||
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||
<motorConstant>8.54858e-06</motorConstant>
|
||||
<momentConstant>0.016</momentConstant>
|
||||
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||
<motorNumber>2</motorNumber>
|
||||
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
|
||||
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
||||
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
|
||||
<motorType>velocity</motorType>
|
||||
</plugin>
|
||||
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||
<robotNamespace>model/x500-Depth</robotNamespace>
|
||||
<jointName>rotor_3_joint</jointName>
|
||||
<linkName>rotor_3</linkName>
|
||||
<turningDirection>cw</turningDirection>
|
||||
<timeConstantUp>0.0125</timeConstantUp>
|
||||
<timeConstantDown>0.025</timeConstantDown>
|
||||
<maxRotVelocity>1000.0</maxRotVelocity>
|
||||
<motorConstant>8.54858e-06</motorConstant>
|
||||
<momentConstant>0.016</momentConstant>
|
||||
<commandSubTopic>command/motor_speed</commandSubTopic>
|
||||
<motorNumber>3</motorNumber>
|
||||
<rotorDragCoefficient>8.06428e-05</rotorDragCoefficient>
|
||||
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
||||
<rotorVelocitySlowdownSim>10</rotorVelocitySlowdownSim>
|
||||
<motorType>velocity</motorType>
|
||||
</plugin>
|
||||
<include merge='true'>
|
||||
<uri>https://fuel.gazebosim.org/1.0/RudisLaboratories/models/OakD-Lite</uri>
|
||||
<pose>.12 .03 .242 0 0 0</pose>
|
||||
</include>
|
||||
<joint name="CameraJoint" type="fixed">
|
||||
<parent>base_link</parent>
|
||||
<child>OakD-Lite/base_link</child>
|
||||
<pose relative_to="base_link">.12 .03 .242 0 0 0</pose>
|
||||
</joint>
|
||||
</model>
|
||||
</sdf>
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 23 KiB |
@@ -2,7 +2,7 @@
|
||||
<model>
|
||||
<name>x500</name>
|
||||
<version>1.0</version>
|
||||
<sdf version="1.6">model.sdf</sdf>
|
||||
<sdf version="1.9">model.sdf</sdf>
|
||||
<author>
|
||||
<name>Benjamin Perseghetti</name>
|
||||
<email>bperseghetti@rudislabs.com</email>
|
||||
|
||||
@@ -1,520 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<sdf version='1.6'>
|
||||
<sdf version='1.9'>
|
||||
<model name='x500'>
|
||||
<pose>0 0 .24 0 0 0</pose>
|
||||
<self_collide>false</self_collide>
|
||||
<static>false</static>
|
||||
<link name="base_link">
|
||||
<inertial>
|
||||
<mass>2.0</mass>
|
||||
<inertia>
|
||||
<ixx>0.02166666666666667</ixx>
|
||||
<ixy>0</ixy>
|
||||
<ixz>0</ixz>
|
||||
<iyy>0.02166666666666667</iyy>
|
||||
<iyz>0</iyz>
|
||||
<izz>0.04000000000000001</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<gravity>true</gravity>
|
||||
<velocity_decay/>
|
||||
<visual name="base_link_visual">
|
||||
<pose>0 0 .025 0 0 3.141592654</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/NXP-HGD-CF.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="5010_motor_base_0">
|
||||
<pose>0.174 0.174 .032 0 0 -.45</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/5010Base.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="5010_motor_base_1">
|
||||
<pose>-0.174 0.174 .032 0 0 -.45</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/5010Base.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="5010_motor_base_2">
|
||||
<pose>0.174 -0.174 .032 0 0 -.45</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/5010Base.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="5010_motor_base_3">
|
||||
<pose>-0.174 -0.174 .032 0 0 -.45</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/5010Base.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<visual name="NXP_FMUK66_FRONT">
|
||||
<pose>0.047 .001 .043 1 0 1.57</pose>
|
||||
<cast_shadows>false</cast_shadows>
|
||||
<geometry>
|
||||
<plane>
|
||||
<normal>0 0 1</normal>
|
||||
<size>.013 .007</size>
|
||||
</plane>
|
||||
</geometry>
|
||||
<material>
|
||||
<diffuse>1.0 1.0 1.0</diffuse>
|
||||
<specular>1.0 1.0 1.0</specular>
|
||||
<pbr>
|
||||
<metal>
|
||||
<albedo_map>model://x500/materials/textures/nxp.png</albedo_map>
|
||||
</metal>
|
||||
</pbr>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="NXP_FMUK66_TOP">
|
||||
<pose>-0.023 0 .0515 0 0 -1.57</pose>
|
||||
<cast_shadows>false</cast_shadows>
|
||||
<geometry>
|
||||
<plane>
|
||||
<normal>0 0 1</normal>
|
||||
<size>.013 .007</size>
|
||||
</plane>
|
||||
</geometry>
|
||||
<material>
|
||||
<diffuse>1.0 1.0 1.0</diffuse>
|
||||
<specular>1.0 1.0 1.0</specular>
|
||||
<pbr>
|
||||
<metal>
|
||||
<albedo_map>model://x500/materials/textures/nxp.png</albedo_map>
|
||||
</metal>
|
||||
</pbr>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="RDDRONE_FMUK66_TOP">
|
||||
<pose>-.03 0 .0515 0 0 -1.57</pose>
|
||||
<cast_shadows>false</cast_shadows>
|
||||
<geometry>
|
||||
<plane>
|
||||
<normal>0 0 1</normal>
|
||||
<size>.032 .0034</size>
|
||||
</plane>
|
||||
</geometry>
|
||||
<material>
|
||||
<diffuse>1.0 1.0 1.0</diffuse>
|
||||
<specular>1.0 1.0 1.0</specular>
|
||||
<pbr>
|
||||
<metal>
|
||||
<albedo_map>model://x500/materials/textures/rd.png</albedo_map>
|
||||
</metal>
|
||||
</pbr>
|
||||
</material>
|
||||
</visual>
|
||||
<collision name="base_link_collision_0">
|
||||
<pose>0 0 .007 0 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.35355339059327373 0.35355339059327373 0.05</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<collision name="base_link_collision_1">
|
||||
<pose>0 -0.098 -.123 -0.35 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.015 0.015 0.21</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<collision name="base_link_collision_2">
|
||||
<pose>0 0.098 -.123 0.35 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.015 0.015 0.21</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<collision name="base_link_collision_3">
|
||||
<pose>0 -0.132 -.2195 0 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.25 0.015 0.015</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<collision name="base_link_collision_4">
|
||||
<pose>0 0.132 -.2195 0 0 0</pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.25 0.015 0.015</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
<sensor name="imu_sensor" type="imu">
|
||||
<always_on>1</always_on>
|
||||
<update_rate>250</update_rate>
|
||||
</sensor>
|
||||
</link>
|
||||
<link name="rotor_0">
|
||||
<gravity>true</gravity>
|
||||
<self_collide>false</self_collide>
|
||||
<velocity_decay/>
|
||||
<pose>0.174 -0.174 0.06 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.016076923076923075</mass>
|
||||
<inertia>
|
||||
<ixx>3.8464910483993325e-07</ixx>
|
||||
<iyy>2.6115851691700804e-05</iyy>
|
||||
<izz>2.649858234714004e-05</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="rotor_0_visual">
|
||||
<pose>-0.022 -0.14638461538461536 -0.016 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>0.8461538461538461 0.8461538461538461 0.8461538461538461</scale>
|
||||
<uri>model://x500/meshes/1345_prop_ccw.stl</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<material>
|
||||
<script>
|
||||
<name>Gazebo/DarkGrey</name>
|
||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||
</script>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="rotor_0_visual_motor_bell">
|
||||
<pose>0 0 -.032 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/5010Bell.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision name="rotor_0_collision">
|
||||
<pose>0 0 0 0 0 0 </pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.2792307692307692 0.016923076923076923 0.0008461538461538462</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="rotor_0_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>rotor_0</child>
|
||||
<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="rotor_1">
|
||||
<gravity>true</gravity>
|
||||
<self_collide>false</self_collide>
|
||||
<velocity_decay/>
|
||||
<pose>-0.174 0.174 0.06 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.016076923076923075</mass>
|
||||
<inertia>
|
||||
<ixx>3.8464910483993325e-07</ixx>
|
||||
<iyy>2.6115851691700804e-05</iyy>
|
||||
<izz>2.649858234714004e-05</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="rotor_1_visual">
|
||||
<pose>-0.022 -0.14638461538461536 -0.016 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>0.8461538461538461 0.8461538461538461 0.8461538461538461</scale>
|
||||
<uri>model://x500/meshes/1345_prop_ccw.stl</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<material>
|
||||
<script>
|
||||
<name>Gazebo/DarkGrey</name>
|
||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||
</script>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="rotor_1_visual_motor_top">
|
||||
<pose>0 0 -.032 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/5010Bell.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision name="rotor_1_collision">
|
||||
<pose>0 0 0 0 0 0 </pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.2792307692307692 0.016923076923076923 0.0008461538461538462</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="rotor_1_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>rotor_1</child>
|
||||
<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="rotor_2">
|
||||
<gravity>true</gravity>
|
||||
<self_collide>false</self_collide>
|
||||
<velocity_decay/>
|
||||
<pose>0.174 0.174 0.06 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.016076923076923075</mass>
|
||||
<inertia>
|
||||
<ixx>3.8464910483993325e-07</ixx>
|
||||
<iyy>2.6115851691700804e-05</iyy>
|
||||
<izz>2.649858234714004e-05</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="rotor_2_visual">
|
||||
<pose>-0.022 -0.14638461538461536 -0.016 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>0.8461538461538461 0.8461538461538461 0.8461538461538461</scale>
|
||||
<uri>model://x500/meshes/1345_prop_cw.stl</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<material>
|
||||
<script>
|
||||
<name>Gazebo/DarkGrey</name>
|
||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||
</script>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="rotor_2_visual_motor_top">
|
||||
<pose>0 0 -.032 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/5010Bell.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision name="rotor_2_collision">
|
||||
<pose>0 0 0 0 0 0 </pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.2792307692307692 0.016923076923076923 0.0008461538461538462</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="rotor_2_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>rotor_2</child>
|
||||
<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="rotor_3">
|
||||
<gravity>true</gravity>
|
||||
<self_collide>false</self_collide>
|
||||
<velocity_decay/>
|
||||
<pose>-0.174 -0.174 0.06 0 0 0</pose>
|
||||
<inertial>
|
||||
<mass>0.016076923076923075</mass>
|
||||
<inertia>
|
||||
<ixx>3.8464910483993325e-07</ixx>
|
||||
<iyy>2.6115851691700804e-05</iyy>
|
||||
<izz>2.649858234714004e-05</izz>
|
||||
</inertia>
|
||||
</inertial>
|
||||
<visual name="rotor_3_visual">
|
||||
<pose>-0.022 -0.14638461538461536 -0.016 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>0.8461538461538461 0.8461538461538461 0.8461538461538461</scale>
|
||||
<uri>model://x500/meshes/1345_prop_cw.stl</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
<material>
|
||||
<script>
|
||||
<name>Gazebo/DarkGrey</name>
|
||||
<uri>file://media/materials/scripts/gazebo.material</uri>
|
||||
</script>
|
||||
</material>
|
||||
</visual>
|
||||
<visual name="rotor_3_visual_motor_top">
|
||||
<pose>0 0 -.032 0 0 0</pose>
|
||||
<geometry>
|
||||
<mesh>
|
||||
<scale>1 1 1</scale>
|
||||
<uri>model://x500/meshes/5010Bell.dae</uri>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision name="rotor_3_collision">
|
||||
<pose>0 0 0 0 0 0 </pose>
|
||||
<geometry>
|
||||
<box>
|
||||
<size>0.2792307692307692 0.016923076923076923 0.0008461538461538462</size>
|
||||
</box>
|
||||
</geometry>
|
||||
<surface>
|
||||
<contact>
|
||||
<ode>
|
||||
<min_depth>0.001</min_depth>
|
||||
<max_vel>0</max_vel>
|
||||
</ode>
|
||||
</contact>
|
||||
<friction>
|
||||
<ode/>
|
||||
</friction>
|
||||
</surface>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="rotor_3_joint" type="revolute">
|
||||
<parent>base_link</parent>
|
||||
<child>rotor_3</child>
|
||||
<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="libignition-gazebo-imu-system.so" name="ignition::gazebo::systems::Imu" />
|
||||
<include merge='true'>
|
||||
<uri>model://x500-Base</uri>
|
||||
</include>
|
||||
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||
<robotNamespace>x500</robotNamespace>
|
||||
<robotNamespace>model/x500</robotNamespace>
|
||||
<jointName>rotor_0_joint</jointName>
|
||||
<linkName>rotor_0</linkName>
|
||||
<turningDirection>ccw</turningDirection>
|
||||
@@ -531,7 +22,7 @@
|
||||
<motorType>velocity</motorType>
|
||||
</plugin>
|
||||
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||
<robotNamespace>x500</robotNamespace>
|
||||
<robotNamespace>model/x500</robotNamespace>
|
||||
<jointName>rotor_1_joint</jointName>
|
||||
<linkName>rotor_1</linkName>
|
||||
<turningDirection>ccw</turningDirection>
|
||||
@@ -548,7 +39,7 @@
|
||||
<motorType>velocity</motorType>
|
||||
</plugin>
|
||||
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||
<robotNamespace>x500</robotNamespace>
|
||||
<robotNamespace>model/x500</robotNamespace>
|
||||
<jointName>rotor_2_joint</jointName>
|
||||
<linkName>rotor_2</linkName>
|
||||
<turningDirection>cw</turningDirection>
|
||||
@@ -565,7 +56,7 @@
|
||||
<motorType>velocity</motorType>
|
||||
</plugin>
|
||||
<plugin filename="ignition-gazebo-multicopter-motor-model-system" name="ignition::gazebo::systems::MulticopterMotorModel">
|
||||
<robotNamespace>x500</robotNamespace>
|
||||
<robotNamespace>model/x500</robotNamespace>
|
||||
<jointName>rotor_3_joint</jointName>
|
||||
<linkName>rotor_3</linkName>
|
||||
<turningDirection>cw</turningDirection>
|
||||
@@ -582,4 +73,4 @@
|
||||
<motorType>velocity</motorType>
|
||||
</plugin>
|
||||
</model>
|
||||
</sdf>
|
||||
</sdf>
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<plugin name='ignition::gazebo::systems::UserCommands' filename='ignition-gazebo-user-commands-system'/>
|
||||
<plugin name='ignition::gazebo::systems::SceneBroadcaster' filename='ignition-gazebo-scene-broadcaster-system'/>
|
||||
<plugin name='ignition::gazebo::systems::Contact' filename='ignition-gazebo-contact-system'/>
|
||||
<plugin name='ignition::gazebo::systems::Imu' filename='ignition-gazebo-imu-system'/>
|
||||
<plugin name='ignition::gazebo::systems::Sensors' filename='ignition-gazebo-sensors-system'>
|
||||
<render_engine>ogre2</render_engine>
|
||||
</plugin>
|
||||
|
||||
@@ -51,3 +51,5 @@ CONFIG_SYSTEMCMDS_TUNE_CONTROL=y
|
||||
CONFIG_SYSTEMCMDS_UORB=y
|
||||
CONFIG_SYSTEMCMDS_VER=y
|
||||
CONFIG_SYSTEMCMDS_WORK_QUEUE=y
|
||||
CONFIG_MODULES_FW_POS_CONTROL_L1=y
|
||||
CONFIG_MODULES_FW_ATT_CONTROL=y
|
||||
|
||||
@@ -4,13 +4,17 @@ CONFIG_BOARD_ROMFSROOT="cannode"
|
||||
CONFIG_BOARD_CONSTRAINED_MEMORY=y
|
||||
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS1"
|
||||
CONFIG_DRIVERS_BOOTLOADERS=y
|
||||
CONFIG_DRIVERS_DISTANCE_SENSOR_TFMINI=y
|
||||
CONFIG_COMMON_DISTANCE_SENSOR=y
|
||||
CONFIG_DRIVERS_GPS=y
|
||||
CONFIG_DRIVERS_LIGHTS_RGBLED=y
|
||||
CONFIG_DRIVERS_LIGHTS_RGBLED_NCP5623C=y
|
||||
CONFIG_DRIVERS_LIGHTS_RGBLED_PWM=y
|
||||
CONFIG_COMMON_MAGNETOMETER=y
|
||||
CONFIG_DRIVERS_PWM_OUT=y
|
||||
CONFIG_BOARD_UAVCAN_INTERFACES=1
|
||||
CONFIG_DRIVERS_UAVCANNODE=y
|
||||
CONFIG_MODULES_CONTROL_ALLOCATOR=y
|
||||
CONFIG_MODULES_SENSORS=y
|
||||
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
|
||||
CONFIG_SYSTEMCMDS_I2CDETECT=y
|
||||
CONFIG_SYSTEMCMDS_LED_CONTROL=y
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# board sensors init
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Lidar-Lite on I2C
|
||||
if param compare -s SENS_EN_LL40LS 2
|
||||
then
|
||||
ll40ls start -X
|
||||
fi
|
||||
|
||||
# mappydot lidar sensor
|
||||
if param compare -s SENS_EN_MPDT 1
|
||||
then
|
||||
mappydot start -X
|
||||
fi
|
||||
|
||||
# mb12xx sonar sensor
|
||||
if param greater -s SENS_EN_MB12XX 0
|
||||
then
|
||||
mb12xx start -X
|
||||
fi
|
||||
|
||||
# Lightware i2c lidar sensor
|
||||
if param greater -s SENS_EN_SF1XX 0
|
||||
then
|
||||
lightware_laser_i2c start -X
|
||||
fi
|
||||
|
||||
# vl53l1x i2c distance sensor
|
||||
if param compare -s SENS_EN_VL53L1X 1
|
||||
then
|
||||
vl53l1x start -X
|
||||
fi
|
||||
|
||||
# compasses
|
||||
hmc5883 -T -X -q start
|
||||
ist8308 -X -q start
|
||||
ist8310 -X -q start
|
||||
lis2mdl -X -q start
|
||||
lis3mdl -X -q start
|
||||
qmc5883l -X -q start
|
||||
rm3100 -X -q start
|
||||
@@ -43,17 +43,13 @@
|
||||
* Included Files
|
||||
****************************************************************************************************/
|
||||
|
||||
#include <px4_platform/board_ctrl.h>
|
||||
#include <px4_platform_common/px4_config.h>
|
||||
#include <nuttx/compiler.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <stm32_gpio.h>
|
||||
|
||||
#if !defined(CONFIG_BUILD_FLAT)
|
||||
#include <sys/boardctl.h>
|
||||
#include <px4_platform/board_ctrl.h>
|
||||
#endif
|
||||
|
||||
/****************************************************************************************************
|
||||
* Definitions
|
||||
****************************************************************************************************/
|
||||
@@ -229,20 +225,8 @@
|
||||
#define BOARD_INDICATE_EXTERNAL_LOCKOUT_STATE(enabled) px4_arch_configgpio((enabled) ? GPIO_nARMED : GPIO_nARMED_INIT)
|
||||
#define BOARD_GET_EXTERNAL_LOCKOUT_STATE() px4_arch_gpioread(GPIO_nARMED)
|
||||
#else
|
||||
static inline void board_indicate_external_lockout_state(bool enable)
|
||||
{
|
||||
platformioclockoutstate_t state = {enable};
|
||||
boardctl(PLATFORMIOCINDICATELOCKOUT, (uintptr_t)&state);
|
||||
}
|
||||
|
||||
static inline bool board_get_external_lockout_state(void)
|
||||
{
|
||||
platformioclockoutstate_t state = {false};
|
||||
boardctl(PLATFORMIOCGETLOCKOUT, (uintptr_t)&state);
|
||||
return state.enabled;
|
||||
}
|
||||
#define BOARD_INDICATE_EXTERNAL_LOCKOUT_STATE(enabled) board_indicate_external_lockout_state(enabled)
|
||||
#define BOARD_GET_EXTERNAL_LOCKOUT_STATE() board_get_external_lockout_state()
|
||||
#define BOARD_INDICATE_EXTERNAL_LOCKOUT_STATE(enabled) boardctrl_indicate_external_lockout_state(enabled)
|
||||
#define BOARD_GET_EXTERNAL_LOCKOUT_STATE() boardctrl_get_external_lockout_state()
|
||||
#endif
|
||||
|
||||
/* PWM
|
||||
|
||||
@@ -60,7 +60,7 @@ extern const int *_boot_signature;
|
||||
/* RD certificate signature follows the certificate */
|
||||
|
||||
#define RDCTSIG_ADDR RDCT_END
|
||||
#define RDCTSIG_END ((const void *)((const uint8_t*)RDCT_ADDR+SIGNATURE_SIZE))
|
||||
#define RDCTSIG_END ((const void *)((const uint8_t*)RDCTSIG_ADDR+SIGNATURE_SIZE))
|
||||
|
||||
/* The table of contents */
|
||||
|
||||
|
||||
@@ -76,6 +76,7 @@ CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=y
|
||||
CONFIG_MODULES_MC_POS_CONTROL=y
|
||||
CONFIG_MODULES_MC_RATE_CONTROL=y
|
||||
CONFIG_MODULES_NAVIGATOR=y
|
||||
CONFIG_MODULES_PAYLOAD_DELIVERER=y
|
||||
CONFIG_MODULES_RC_UPDATE=y
|
||||
CONFIG_MODULES_ROVER_POS_CONTROL=y
|
||||
CONFIG_MODULES_SENSORS=y
|
||||
|
||||
@@ -49,11 +49,11 @@ then
|
||||
fi
|
||||
fi
|
||||
|
||||
if ver hwtypecmp V5X000000 V5X000001 V5X000002 V5X001000
|
||||
if ver hwtypecmp V5X000000 V5X000001 V5X000002 V5X001000 V5X004000 V5X004001 V5X004002
|
||||
then
|
||||
#FMUv5Xbase board orientation
|
||||
|
||||
if ver hwtypecmp V5X000000 V5X000001
|
||||
if ver hwtypecmp V5X000000 V5X000001 V5X004000 V5X004001
|
||||
then
|
||||
# Internal SPI BMI088
|
||||
bmi088 -A -R 4 -s start
|
||||
@@ -113,4 +113,4 @@ then
|
||||
fi
|
||||
|
||||
fi
|
||||
unset HAVE_PM2
|
||||
unset HAVE_PM2
|
||||
|
||||
@@ -185,12 +185,15 @@
|
||||
#define GPIO_HW_REV_SENSE /* PF5 */ ADC3_GPIO(15)
|
||||
#define GPIO_HW_VER_SENSE /* PF4 */ ADC3_GPIO(14)
|
||||
#define HW_INFO_INIT_PREFIX "V5X"
|
||||
#define BOARD_NUM_SPI_CFG_HW_VERSIONS 6
|
||||
#define BOARD_NUM_SPI_CFG_HW_VERSIONS 7
|
||||
// Base FMUM
|
||||
#define V5X00 HW_VER_REV(0x0,0x0) // FMUV5X, Rev 0
|
||||
#define V5X10 HW_VER_REV(0x1,0x0) // NO PX4IO, Rev 0
|
||||
#define V5X01 HW_VER_REV(0x0,0x1) // FMUV5X I2C2 BMP388, Rev 1
|
||||
#define V5X02 HW_VER_REV(0x0,0x2) // FMUV5X, Rev 2
|
||||
#define V5X40 HW_VER_REV(0x4,0x0) // FMUV5X, HB CM4 base Rev 0
|
||||
#define V5X41 HW_VER_REV(0x4,0x1) // FMUV5X I2C2 BMP388, HB CM4 base Rev 1
|
||||
#define V5X42 HW_VER_REV(0x4,0x2) // FMUV5X, HB CM4 base Rev 2
|
||||
#define V5X50 HW_VER_REV(0x5,0x0) // FMUV5X, HB Mini Rev 0
|
||||
#define V5X51 HW_VER_REV(0x5,0x1) // FMUV5X I2C2 BMP388, HB Mini Rev 1
|
||||
#define V5X52 HW_VER_REV(0x5,0x2) // FMUV5X, HB Mini Rev 2
|
||||
|
||||
@@ -94,6 +94,27 @@ static const px4_hw_mft_item_t hw_mft_list_v0500[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static const px4_hw_mft_item_t hw_mft_list_v0540[] = {
|
||||
{
|
||||
// PX4_MFT_PX4IO
|
||||
.present = 1,
|
||||
.mandatory = 1,
|
||||
.connection = px4_hw_con_onboard,
|
||||
},
|
||||
{
|
||||
// PX4_MFT_USB
|
||||
.present = 1,
|
||||
.mandatory = 1,
|
||||
.connection = px4_hw_con_onboard,
|
||||
},
|
||||
{
|
||||
// PX4_MFT_CAN2
|
||||
.present = 1,
|
||||
.mandatory = 1,
|
||||
.connection = px4_hw_con_onboard,
|
||||
},
|
||||
};
|
||||
|
||||
static const px4_hw_mft_item_t hw_mft_list_v0550[] = {
|
||||
{
|
||||
// PX4_MFT_PX4IO
|
||||
@@ -163,7 +184,10 @@ static px4_hw_mft_list_entry_t mft_lists[] = {
|
||||
{V5X01, hw_mft_list_v0500, arraySize(hw_mft_list_v0500)}, // FMUV5X, Rev 1
|
||||
{V5X02, hw_mft_list_v0500, arraySize(hw_mft_list_v0500)}, // FMUV5X, Rev 2
|
||||
{V5X10, hw_mft_list_v0510, arraySize(hw_mft_list_v0510)}, // NO PX4IO, Rev 0
|
||||
{V5X50, hw_mft_list_v0550, arraySize(hw_mft_list_v0550)}, // FMUV5X, HB Mini Rev 0
|
||||
//{V5X40, hw_mft_list_v0540, arraySize(hw_mft_list_v0540)}, // FMUV5X, HB CM4 base Rev 0, never shipped
|
||||
{V5X41, hw_mft_list_v0540, arraySize(hw_mft_list_v0540)}, // FMUV5X, HB CM4 base Rev 1
|
||||
{V5X42, hw_mft_list_v0540, arraySize(hw_mft_list_v0540)}, // FMUV5X, HB CM4 base Rev 2
|
||||
//{V5X50, hw_mft_list_v0550, arraySize(hw_mft_list_v0550)}, // FMUV5X, HB Mini Rev 0, never shipped
|
||||
{V5X51, hw_mft_list_v0550, arraySize(hw_mft_list_v0550)}, // FMUV5X, HB Mini Rev 1
|
||||
{V5X52, hw_mft_list_v0550, arraySize(hw_mft_list_v0550)}, // FMUV5X, HB Mini Rev 2
|
||||
{V5X90, hw_mft_list_v0509, arraySize(hw_mft_list_v0509)}, // NO USB, Rev 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2019 PX4 Development Team. All rights reserved.
|
||||
* Copyright (C) 2019-2022 PX4 Development Team. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@@ -106,7 +106,8 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION
|
||||
initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
||||
}),
|
||||
}),
|
||||
initSPIHWVersion(V5X50, {
|
||||
|
||||
initSPIHWVersion(V5X41, {
|
||||
initSPIBus(SPI::Bus::SPI1, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
}, {GPIO::PortI, GPIO::Pin11}),
|
||||
@@ -130,6 +131,54 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION
|
||||
}),
|
||||
}),
|
||||
|
||||
initSPIHWVersion(V5X42, {
|
||||
initSPIBus(SPI::Bus::SPI1, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
}, {GPIO::PortI, GPIO::Pin11}),
|
||||
initSPIBus(SPI::Bus::SPI2, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM42688P, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortH, GPIO::Pin12}),
|
||||
}, {GPIO::PortD, GPIO::Pin15}),
|
||||
initSPIBus(SPI::Bus::SPI3, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM20649, SPI::CS{GPIO::PortI, GPIO::Pin4}, SPI::DRDY{GPIO::PortI, GPIO::Pin7}),
|
||||
}, {GPIO::PortE, GPIO::Pin7}),
|
||||
// initSPIBus(SPI::Bus::SPI4, {
|
||||
// // no devices
|
||||
// TODO: if enabled, remove GPIO_VDD_3V3_SENSORS4_EN from board_config.h
|
||||
// }, {GPIO::PortG, GPIO::Pin8}),
|
||||
initSPIBus(SPI::Bus::SPI5, {
|
||||
initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortG, GPIO::Pin7})
|
||||
}),
|
||||
initSPIBusExternal(SPI::Bus::SPI6, {
|
||||
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}, SPI::DRDY{GPIO::PortD, GPIO::Pin11}),
|
||||
initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
||||
}),
|
||||
}),
|
||||
|
||||
// never shipped
|
||||
//initSPIHWVersion(V5X50, {
|
||||
// initSPIBus(SPI::Bus::SPI1, {
|
||||
// initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
// }, {GPIO::PortI, GPIO::Pin11}),
|
||||
// initSPIBus(SPI::Bus::SPI2, {
|
||||
// initSPIDevice(DRV_IMU_DEVTYPE_ICM42688P, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortH, GPIO::Pin12}),
|
||||
// }, {GPIO::PortD, GPIO::Pin15}),
|
||||
// initSPIBus(SPI::Bus::SPI3, {
|
||||
// initSPIDevice(DRV_GYR_DEVTYPE_BMI088, SPI::CS{GPIO::PortI, GPIO::Pin8}, SPI::DRDY{GPIO::PortI, GPIO::Pin7}),
|
||||
// initSPIDevice(DRV_ACC_DEVTYPE_BMI088, SPI::CS{GPIO::PortI, GPIO::Pin4}),
|
||||
// }, {GPIO::PortE, GPIO::Pin7}),
|
||||
// // initSPIBus(SPI::Bus::SPI4, {
|
||||
// // // no devices
|
||||
// // TODO: if enabled, remove GPIO_VDD_3V3_SENSORS4_EN from board_config.h
|
||||
// // }, {GPIO::PortG, GPIO::Pin8}),
|
||||
// initSPIBus(SPI::Bus::SPI5, {
|
||||
// initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortG, GPIO::Pin7})
|
||||
// }),
|
||||
// initSPIBusExternal(SPI::Bus::SPI6, {
|
||||
// initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}, SPI::DRDY{GPIO::PortD, GPIO::Pin11}),
|
||||
// initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
||||
// }),
|
||||
//}),
|
||||
|
||||
initSPIHWVersion(V5X51, {
|
||||
initSPIBus(SPI::Bus::SPI1, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
|
||||
@@ -47,7 +47,7 @@ then
|
||||
fi
|
||||
fi
|
||||
|
||||
if ver hwtypecmp V6X000004 V6X001004 V6X005004
|
||||
if ver hwtypecmp V6X000004 V6X001004 V6X004004 V6X005004
|
||||
then
|
||||
# Internal SPI bus ICM20649
|
||||
icm20649 -s -R 6 start
|
||||
@@ -60,7 +60,7 @@ fi
|
||||
# Internal SPI bus ICM42688p
|
||||
icm42688p -R 6 -s start
|
||||
|
||||
if ver hwtypecmp V6X000003 V6X001003 V6X000004 V6X001004 V6X005003 V6X005004
|
||||
if ver hwtypecmp V6X000003 V6X001003 V6X003003 V6X000004 V6X001004 V6X004003 V6X004004 V6X005003 V6X005004
|
||||
then
|
||||
# Internal SPI bus ICM-42670-P (hard-mounted)
|
||||
icm42670p -R 10 -s start
|
||||
@@ -88,4 +88,4 @@ fi
|
||||
# Baro on I2C3
|
||||
ms5611 -X start
|
||||
|
||||
unset HAVE_PM2
|
||||
unset HAVE_PM2
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
#define GPIO_HW_VER_SENSE /* PH3 */ GPIO_ADC3_INP14
|
||||
#define HW_INFO_INIT_PREFIX "V6X"
|
||||
|
||||
#define BOARD_NUM_SPI_CFG_HW_VERSIONS 6 // Rev 0 and Rev 3,4 Sensor sets
|
||||
#define BOARD_NUM_SPI_CFG_HW_VERSIONS 7 // Rev 0 and Rev 3,4 Sensor sets
|
||||
// Base/FMUM
|
||||
#define V6X00 HW_VER_REV(0x0,0x0) // FMUV6X, Rev 0
|
||||
#define V6X01 HW_VER_REV(0x0,0x1) // FMUV6X, BMI388 I2C2 Rev 1
|
||||
@@ -222,8 +222,12 @@
|
||||
#define V6X10 HW_VER_REV(0x1,0x0) // NO PX4IO, Rev 0
|
||||
#define V6X13 HW_VER_REV(0x1,0x3) // NO PX4IO, Sensor Set Rev 3
|
||||
#define V6X14 HW_VER_REV(0x1,0x4) // NO PX4IO, Sensor Set Rev 4
|
||||
#define V6X50 HW_VER_REV(0x5,0x0) // FMUV6X, HB Mini Rev 0
|
||||
#define V6X51 HW_VER_REV(0x5,0x1) // FMUV6X, BMI388 I2C2 HB Mini Rev 1
|
||||
//#define V6X40 HW_VER_REV(0x4,0x0) // FMUV6X, HB CM4 base Rev 0 // never shipped
|
||||
//#define V6X41 HW_VER_REV(0x4,0x1) // FMUV6X, BMI388 I2C2 HB CM4 base Rev 1 // never shipped
|
||||
#define V6X43 HW_VER_REV(0x4,0x3) // FMUV6X, Sensor Set HB CM4 base Rev 3
|
||||
#define V6X44 HW_VER_REV(0x4,0x4) // FMUV6X, Sensor Set HB CM4 base Rev 4
|
||||
//#define V6X50 HW_VER_REV(0x5,0x0) // FMUV6X, HB Mini Rev 0 // never shipped
|
||||
//#define V6X51 HW_VER_REV(0x5,0x1) // FMUV6X, BMI388 I2C2 HB Mini Rev 1 // never shipped
|
||||
#define V6X53 HW_VER_REV(0x5,0x3) // FMUV6X, Sensor Set HB Mini Rev 3
|
||||
#define V6X54 HW_VER_REV(0x5,0x4) // FMUV6X, Sensor Set HB Mini Rev 4
|
||||
|
||||
|
||||
@@ -115,6 +115,27 @@ static const px4_hw_mft_item_t hw_mft_list_v0610[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static const px4_hw_mft_item_t hw_mft_list_v0640[] = {
|
||||
{
|
||||
// PX4_MFT_PX4IO
|
||||
.present = 1,
|
||||
.mandatory = 1,
|
||||
.connection = px4_hw_con_onboard,
|
||||
},
|
||||
{
|
||||
// PX4_MFT_USB
|
||||
.present = 1,
|
||||
.mandatory = 1,
|
||||
.connection = px4_hw_con_onboard,
|
||||
},
|
||||
{
|
||||
// PX4_MFT_CAN2
|
||||
.present = 1,
|
||||
.mandatory = 1,
|
||||
.connection = px4_hw_con_onboard,
|
||||
},
|
||||
};
|
||||
|
||||
static const px4_hw_mft_item_t hw_mft_list_v0650[] = {
|
||||
{
|
||||
// PX4_MFT_PX4IO
|
||||
@@ -142,8 +163,12 @@ static px4_hw_mft_list_entry_t mft_lists[] = {
|
||||
{V6X00, hw_mft_list_v0600, arraySize(hw_mft_list_v0600)},
|
||||
{V6X01, hw_mft_list_v0600, arraySize(hw_mft_list_v0600)}, // BMP388 moved to I2C2
|
||||
{V6X03, hw_mft_list_v0600, arraySize(hw_mft_list_v0600)}, // BMP388 moved to I2C2, Sensor Set 3
|
||||
{V6X50, hw_mft_list_v0650, arraySize(hw_mft_list_v0650)}, // HB Mini
|
||||
{V6X51, hw_mft_list_v0650, arraySize(hw_mft_list_v0650)}, // BMP388 moved to I2C2 HB Mini
|
||||
//{V6X40, hw_mft_list_v0640, arraySize(hw_mft_list_v0640)}, // HB CM4 base // never shipped
|
||||
//{V6X41, hw_mft_list_v0640, arraySize(hw_mft_list_v0640)}, // BMP388 moved to I2C2 HB CM4 base // never shipped
|
||||
{V6X43, hw_mft_list_v0640, arraySize(hw_mft_list_v0640)}, // BMP388 moved to I2C2, HB CM4 base Sensor Set 3
|
||||
{V6X44, hw_mft_list_v0640, arraySize(hw_mft_list_v0640)}, // BMP388 moved to I2C2, HB CM4 base Sensor Set 4
|
||||
//{V6X50, hw_mft_list_v0650, arraySize(hw_mft_list_v0650)}, // HB Mini // never shipped
|
||||
//{V6X51, hw_mft_list_v0650, arraySize(hw_mft_list_v0650)}, // BMP388 moved to I2C2 HB Mini // never shipped
|
||||
{V6X53, hw_mft_list_v0650, arraySize(hw_mft_list_v0650)}, // BMP388 moved to I2C2, HB Mini Sensor Set 3
|
||||
{V6X54, hw_mft_list_v0650, arraySize(hw_mft_list_v0650)}, // BMP388 moved to I2C2, HB Mini Sensor Set 4
|
||||
{V6X10, hw_mft_list_v0610, arraySize(hw_mft_list_v0610)}, // No PX4IO
|
||||
|
||||
@@ -84,9 +84,9 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION
|
||||
}),
|
||||
}),
|
||||
|
||||
initSPIHWVersion(V6X50, {
|
||||
initSPIHWVersion(V6X43, {
|
||||
initSPIBus(SPI::Bus::SPI1, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM20649, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM42670P, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
}, {GPIO::PortI, GPIO::Pin11}),
|
||||
initSPIBus(SPI::Bus::SPI2, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM42688P, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortA, GPIO::Pin10}),
|
||||
@@ -107,6 +107,54 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION
|
||||
initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
||||
}),
|
||||
}),
|
||||
|
||||
initSPIHWVersion(V6X44, {
|
||||
initSPIBus(SPI::Bus::SPI1, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM42670P, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
}, {GPIO::PortI, GPIO::Pin11}),
|
||||
initSPIBus(SPI::Bus::SPI2, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM42688P, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortA, GPIO::Pin10}),
|
||||
}, {GPIO::PortF, GPIO::Pin4}),
|
||||
initSPIBus(SPI::Bus::SPI3, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM20649, SPI::CS{GPIO::PortI, GPIO::Pin4}, SPI::DRDY{GPIO::PortI, GPIO::Pin7}),
|
||||
}, {GPIO::PortE, GPIO::Pin7}),
|
||||
// initSPIBus(SPI::Bus::SPI4, {
|
||||
// // no devices
|
||||
// TODO: if enabled, remove GPIO_VDD_3V3_SENSORS4_EN from board_config.h
|
||||
// }, {GPIO::PortG, GPIO::Pin8}),
|
||||
initSPIBus(SPI::Bus::SPI5, {
|
||||
initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortG, GPIO::Pin7})
|
||||
}),
|
||||
initSPIBusExternal(SPI::Bus::SPI6, {
|
||||
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}, SPI::DRDY{GPIO::PortD, GPIO::Pin11}),
|
||||
initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
||||
}),
|
||||
}),
|
||||
|
||||
// never shipped
|
||||
//initSPIHWVersion(V6X50, {
|
||||
// initSPIBus(SPI::Bus::SPI1, {
|
||||
// initSPIDevice(DRV_IMU_DEVTYPE_ICM20649, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
// }, {GPIO::PortI, GPIO::Pin11}),
|
||||
// initSPIBus(SPI::Bus::SPI2, {
|
||||
// initSPIDevice(DRV_IMU_DEVTYPE_ICM42688P, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortA, GPIO::Pin10}),
|
||||
// }, {GPIO::PortF, GPIO::Pin4}),
|
||||
// initSPIBus(SPI::Bus::SPI3, {
|
||||
// initSPIDevice(DRV_GYR_DEVTYPE_BMI088, SPI::CS{GPIO::PortI, GPIO::Pin8}, SPI::DRDY{GPIO::PortI, GPIO::Pin7}),
|
||||
// initSPIDevice(DRV_ACC_DEVTYPE_BMI088, SPI::CS{GPIO::PortI, GPIO::Pin4}, SPI::DRDY{GPIO::PortI, GPIO::Pin6}),
|
||||
// }, {GPIO::PortE, GPIO::Pin7}),
|
||||
// // initSPIBus(SPI::Bus::SPI4, {
|
||||
// // // no devices
|
||||
// // TODO: if enabled, remove GPIO_VDD_3V3_SENSORS4_EN from board_config.h
|
||||
// // }, {GPIO::PortG, GPIO::Pin8}),
|
||||
// initSPIBus(SPI::Bus::SPI5, {
|
||||
// initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortG, GPIO::Pin7})
|
||||
// }),
|
||||
// initSPIBusExternal(SPI::Bus::SPI6, {
|
||||
// initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}, SPI::DRDY{GPIO::PortD, GPIO::Pin11}),
|
||||
// initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
||||
// }),
|
||||
//}),
|
||||
initSPIHWVersion(V6X04, {
|
||||
initSPIBus(SPI::Bus::SPI1, {
|
||||
initSPIDevice(DRV_IMU_DEVTYPE_ICM42670P, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||
|
||||
@@ -34,6 +34,7 @@ CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=y
|
||||
CONFIG_MODULES_MC_POS_CONTROL=y
|
||||
CONFIG_MODULES_MC_RATE_CONTROL=y
|
||||
CONFIG_MODULES_NAVIGATOR=y
|
||||
CONFIG_MODULES_PAYLOAD_DELIVERER=y
|
||||
CONFIG_MODULES_RC_UPDATE=y
|
||||
CONFIG_MODULES_REPLAY=y
|
||||
CONFIG_MODULES_ROVER_POS_CONTROL=y
|
||||
|
||||
@@ -96,6 +96,7 @@ set(msg_files
|
||||
gps_dump.msg
|
||||
gps_inject_data.msg
|
||||
health_report.msg
|
||||
gripper.msg
|
||||
heater_status.msg
|
||||
home_position.msg
|
||||
hover_thrust_estimate.msg
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
## Used to command an actuation in the gripper, which is mapped to a specific output in the mixer module
|
||||
|
||||
uint64 timestamp
|
||||
|
||||
int8 command # Commanded state for the gripper
|
||||
int8 COMMAND_GRAB = 0
|
||||
int8 COMMAND_RELEASE = 1
|
||||
@@ -29,4 +29,6 @@ uint8 transition_switch # VTOL transition switch: _HOVER, FORWARD_FLIGH
|
||||
uint8 photo_switch # Photo trigger switch
|
||||
uint8 video_switch # Photo trigger switch
|
||||
|
||||
uint8 engage_main_motor_switch # Engage the main motor (for helicopters)
|
||||
|
||||
uint32 switch_changes # number of switch changes
|
||||
|
||||
@@ -27,13 +27,14 @@ uint8 FUNCTION_FLTBTN_SLOT_3 = 23
|
||||
uint8 FUNCTION_FLTBTN_SLOT_4 = 24
|
||||
uint8 FUNCTION_FLTBTN_SLOT_5 = 25
|
||||
uint8 FUNCTION_FLTBTN_SLOT_6 = 26
|
||||
uint8 FUNCTION_ENGAGE_MAIN_MOTOR = 27
|
||||
|
||||
uint8 FUNCTION_FLTBTN_SLOT_COUNT = 6
|
||||
|
||||
uint64 timestamp_last_valid # Timestamp of last valid RC signal
|
||||
float32[18] channels # Scaled to -1..1 (throttle: 0..1)
|
||||
uint8 channel_count # Number of valid channels
|
||||
int8[27] function # Functions mapping
|
||||
int8[28] function # Functions mapping
|
||||
uint8 rssi # Receive signal strength index
|
||||
bool signal_lost # Control signal lost, should be checked together with topic timeout
|
||||
uint32 frame_drop_count # Number of dropped frames
|
||||
|
||||
@@ -57,6 +57,7 @@ uint16 VEHICLE_CMD_DO_FENCE_ENABLE=207 # Mission command to enable the geofenc
|
||||
uint16 VEHICLE_CMD_DO_PARACHUTE=208 # Mission command to trigger a parachute |action (0=disable, 1=enable, 2=release, for some systems see PARACHUTE_ACTION enum, not in general message set.)| Empty| Empty| Empty| Empty| Empty| Empty|
|
||||
uint16 VEHICLE_CMD_DO_MOTOR_TEST=209 # motor test command |Instance (1, ...)| throttle type| throttle| timeout [s]| Motor count | Test order| Empty|
|
||||
uint16 VEHICLE_CMD_DO_INVERTED_FLIGHT=210 # Change to/from inverted flight |inverted (0=normal, 1=inverted)| Empty| Empty| Empty| Empty| Empty| Empty|
|
||||
uint16 VEHICLE_CMD_DO_GRIPPER = 211 # Command to operate a gripper
|
||||
uint16 VEHICLE_CMD_DO_SET_CAM_TRIGG_INTERVAL=214 # Mission command to set TRIG_INTERVAL for this flight |Camera trigger distance (meters)| Shutter integration time (ms)| Empty| Empty| Empty| Empty| Empty|
|
||||
uint16 VEHICLE_CMD_DO_MOUNT_CONTROL_QUAT=220 # Mission command to control a camera or antenna mount, using a quaternion as reference. |q1 - quaternion param #1, w (1 in null-rotation)| q2 - quaternion param #2, x (0 in null-rotation)| q3 - quaternion param #3, y (0 in null-rotation)| q4 - quaternion param #4, z (0 in null-rotation)| Empty| Empty| Empty|
|
||||
uint16 VEHICLE_CMD_DO_GUIDED_MASTER=221 # set id of master controller |System ID| Component ID| Empty| Empty| Empty| Empty| Empty|
|
||||
@@ -96,7 +97,7 @@ uint16 VEHICLE_CMD_ARM_AUTHORIZATION_REQUEST = 3001 # Request arm authorization
|
||||
uint16 VEHICLE_CMD_PAYLOAD_PREPARE_DEPLOY = 30001 # Prepare a payload deployment in the flight plan
|
||||
uint16 VEHICLE_CMD_PAYLOAD_CONTROL_DEPLOY = 30002 # Control a pre-programmed payload deployment
|
||||
uint16 VEHICLE_CMD_FIXED_MAG_CAL_YAW = 42006 # Magnetometer calibration based on provided known yaw. This allows for fast calibration using WMM field tables in the vehicle, given only the known yaw of the vehicle. If Latitude and longitude are both zero then use the current vehicle location.
|
||||
|
||||
uint16 VEHICLE_CMD_DO_WINCH = 42600 # Command to operate winch.
|
||||
|
||||
# PX4 vehicle commands (beyond 16 bit mavlink commands)
|
||||
uint32 VEHICLE_CMD_PX4_INTERNAL_START = 65537 # start of PX4 internal only vehicle commands (> UINT16_MAX)
|
||||
@@ -160,6 +161,10 @@ uint8 SPEED_TYPE_DESCEND_SPEED = 3
|
||||
int8 ARMING_ACTION_DISARM = 0
|
||||
int8 ARMING_ACTION_ARM = 1
|
||||
|
||||
# param2 in VEHICLE_CMD_DO_GRIPPER
|
||||
uint8 GRIPPER_ACTION_RELEASE = 0
|
||||
uint8 GRIPPER_ACTION_GRAB = 1
|
||||
|
||||
uint8 ORB_QUEUE_LENGTH = 8
|
||||
|
||||
float32 param1 # Parameter 1, as defined by MAVLink uint16 VEHICLE_CMD enum.
|
||||
|
||||
@@ -40,6 +40,7 @@ if(NOT "${PX4_BOARD}" MATCHES "io-v2" AND NOT "${PX4_BOARD_LABEL}" MATCHES "boot
|
||||
endif()
|
||||
|
||||
add_library(px4_platform
|
||||
board_common.c
|
||||
board_identity.c
|
||||
events.cpp
|
||||
external_reset_lockout.cpp
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2022 Technology Innovation Institute. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name PX4 nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <px4_platform_common/micro_hal.h>
|
||||
|
||||
#include "board_config.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
#if defined(GPIO_OTGFS_VBUS) && \
|
||||
(defined(CONFIG_BUILD_FLAT) || !defined(__PX4_NUTTX))
|
||||
|
||||
/* Default implementation for POSIX and flat NUTTX if the VBUS pin exists */
|
||||
int board_read_VBUS_state(void)
|
||||
{
|
||||
return (px4_arch_gpioread(GPIO_OTGFS_VBUS) ? 0 : 1);
|
||||
}
|
||||
#endif
|
||||
@@ -509,18 +509,7 @@ static inline bool board_rc_invert_input(const char *device, bool invert) { retu
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#if defined(__PX4_NUTTX) && !defined(CONFIG_BUILD_FLAT)
|
||||
inline static int board_read_VBUS_state(void)
|
||||
{
|
||||
platformiocvbusstate_t state = {false};
|
||||
boardctl(PLATFORMIOCVBUSSTATE, (uintptr_t)&state);
|
||||
return state.ret;
|
||||
}
|
||||
#elif defined(GPIO_OTGFS_VBUS)
|
||||
# define board_read_VBUS_state() (px4_arch_gpioread(GPIO_OTGFS_VBUS) ? 0 : 1)
|
||||
#else
|
||||
int board_read_VBUS_state(void);
|
||||
#endif
|
||||
|
||||
/************************************************************************************
|
||||
* Name: board_on_reset
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (c) 2020 PX4 Development Team. All rights reserved.
|
||||
* Copyright (c) 2020-2022 PX4 Development Team. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@@ -64,8 +64,8 @@ struct px4_spi_bus_devices_t {
|
||||
|
||||
struct px4_spi_bus_t {
|
||||
px4_spi_bus_device_t devices[SPI_BUS_MAX_DEVICES];
|
||||
int bus{-1}; ///< physical bus number (1, ...) (-1 means this is unused)
|
||||
uint32_t power_enable_gpio{0}; ///< GPIO (if non-zero) to control the power of the attached devices on this bus (0 means power is off)
|
||||
int8_t bus{-1}; ///< physical bus number (1, ...) (-1 means this is unused)
|
||||
bool is_external; ///< static external configuration. Use px4_spi_bus_external() to check if a bus is really external
|
||||
bool requires_locking; ///< whether the bus should be locked during transfers (true if NuttX drivers access the bus)
|
||||
};
|
||||
|
||||