From e60c1a842c856e1a19fcdc1b169dfdbc813e9ce2 Mon Sep 17 00:00:00 2001
From: Thomas Gubler <thomasgubler@gmail.com>
Date: Thu, 15 Jan 2015 12:37:24 +0100
Subject: [PATCH] ros mixer: add iris

---
 launch/iris.launch                            |  1 +
 src/platforms/ros/nodes/mc_mixer/mc_mixer.cpp | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/launch/iris.launch b/launch/iris.launch
index 81a137173a..44a0ae0341 100644
--- a/launch/iris.launch
+++ b/launch/iris.launch
@@ -14,6 +14,7 @@
 	<param name="MC_YAWRATE_P" type="double" value="0.5" />
 	<param name="MC_MAN_R_MAX" type="double" value="10.0" />
 	<param name="MC_MAN_P_MAX" type="double" value="10.0" />
+	<param name="mixer" type="string" value="i" />
 </group>
 
 </launch>
diff --git a/src/platforms/ros/nodes/mc_mixer/mc_mixer.cpp b/src/platforms/ros/nodes/mc_mixer/mc_mixer.cpp
index 9954692bc1..54f5fa78b6 100644
--- a/src/platforms/ros/nodes/mc_mixer/mc_mixer.cpp
+++ b/src/platforms/ros/nodes/mc_mixer/mc_mixer.cpp
@@ -108,12 +108,19 @@ const MultirotorMixer::Rotor _config_quad_wide[] = {
 	{  0.927184,  0.374607, -1.000000 },
 	{ -0.777146, -0.629320, -1.000000 },
 };
+const MultirotorMixer::Rotor _config_quad_iris[] = {
+	{ -0.876559,  0.481295,  1.000000 },
+	{  0.826590, -0.562805,  1.000000 },
+	{  0.876559,  0.481295, -1.000000 },
+	{ -0.826590, -0.562805, -1.000000 },
+};
 
-const MultirotorMixer::Rotor *_config_index[4] = {
+const MultirotorMixer::Rotor *_config_index[5] = {
 	&_config_x[0],
 	&_config_quad_plus[0],
 	&_config_quad_plus_euroc[0],
-	&_config_quad_wide[0]
+	&_config_quad_wide[0],
+	&_config_quad_iris[0]
 };
 
 MultirotorMixer::MultirotorMixer():
@@ -216,13 +223,19 @@ void MultirotorMixer::actuatorControlsCallback(const PX4_TOPIC_T(actuator_contro
 	_n.getParamCached("mixer", mixer_name);
 	if (mixer_name == "x") {
 		_rotors = _config_index[0];
+		ROS_WARN("using x");
 	} else if (mixer_name == "+") {
 		_rotors = _config_index[1];
 	} else if (mixer_name == "e") {
 		_rotors = _config_index[2];
 	} else if (mixer_name == "w") {
 		_rotors = _config_index[3];
+		ROS_WARN("using w");
+	} else if (mixer_name == "i") {
+		_rotors = _config_index[4];
+		ROS_WARN("using i");
 	}
+	ROS_WARN("mixer_name %s", mixer_name.c_str());
 
 	// mix
 	mix();
-- 
GitLab