aboutsummaryrefslogtreecommitdiff
path: root/src/modules/systemlib/mixer/mixer_multirotor.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-05-05 11:35:56 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-05-05 11:35:56 +0200
commit13110e0a1f4df06f1ba175dd4acb7901a47f9b43 (patch)
tree060ab2309c2c5bcc82c2396ecff9e3d5e18a8fb8 /src/modules/systemlib/mixer/mixer_multirotor.cpp
parent8c6abe717db1f50c5d4b89f18e27f89608a9a1b8 (diff)
parent1dbbdcfa48f8acbf4bed5c160ab3acd0cf293127 (diff)
downloadpx4-firmware-13110e0a1f4df06f1ba175dd4acb7901a47f9b43.tar.gz
px4-firmware-13110e0a1f4df06f1ba175dd4acb7901a47f9b43.tar.bz2
px4-firmware-13110e0a1f4df06f1ba175dd4acb7901a47f9b43.zip
ROMFS wide quad mixer addition and cleanup
Diffstat (limited to 'src/modules/systemlib/mixer/mixer_multirotor.cpp')
-rw-r--r--src/modules/systemlib/mixer/mixer_multirotor.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/modules/systemlib/mixer/mixer_multirotor.cpp b/src/modules/systemlib/mixer/mixer_multirotor.cpp
index d79811c0f..8ded0b05c 100644
--- a/src/modules/systemlib/mixer/mixer_multirotor.cpp
+++ b/src/modules/systemlib/mixer/mixer_multirotor.cpp
@@ -88,6 +88,12 @@ const MultirotorMixer::Rotor _config_quad_v[] = {
{ 0.927184, 0.374607, -1.00 },
{ -0.694658, -0.719340, -1.00 },
};
+const MultirotorMixer::Rotor _config_quad_wide[] = {
+ { -0.927184, 0.374607, 1.00 },
+ { 0.777146, -0.629320, 1.00 },
+ { 0.927184, 0.374607, -1.00 },
+ { -0.777146, -0.629320, -1.00 },
+};
const MultirotorMixer::Rotor _config_hex_x[] = {
{ -1.000000, 0.000000, -1.00 },
{ 1.000000, 0.000000, 1.00 },
@@ -128,6 +134,7 @@ const MultirotorMixer::Rotor *_config_index[MultirotorMixer::Geometry::MAX_GEOME
&_config_quad_x[0],
&_config_quad_plus[0],
&_config_quad_v[0],
+ &_config_quad_wide[0],
&_config_hex_x[0],
&_config_hex_plus[0],
&_config_octa_x[0],
@@ -137,6 +144,7 @@ const unsigned _config_rotor_count[MultirotorMixer::Geometry::MAX_GEOMETRY] = {
4, /* quad_x */
4, /* quad_plus */
4, /* quad_v */
+ 4, /* quad_wide */
6, /* hex_x */
6, /* hex_plus */
8, /* octa_x */
@@ -195,6 +203,9 @@ MultirotorMixer::from_text(Mixer::ControlCallback control_cb, uintptr_t cb_handl
} else if (!strcmp(geomname, "4v")) {
geometry = MultirotorMixer::QUAD_V;
+ } else if (!strcmp(geomname, "4w")) {
+ geometry = MultirotorMixer::QUAD_WIDE;
+
} else if (!strcmp(geomname, "6+")) {
geometry = MultirotorMixer::HEX_PLUS;