Я работаю с данными акселерометра, которые мне нужно «отобразить / преобразовать» в новый диапазон значений.
Итак, из следующих примеров данных акселерометра:
X: [0.363209]
Y: [0.723211]
Z: [-9.806650]
ByЗапустив мой скрипт на Python и отфильтровав максимальное и минимальное значения по всем 3 осям », я получил следующий диапазон значений:
LOWEST-X: -47.2172037037
HIGHEST-X: 45.4011574074
LOWEST-Y: -27.6039037037
HIGHEST-Y: 44.6747388889
LOWEST-Z: -49.03325
HIGHEST-Z: 43.3755673077
Я не уверен, что эти диапазоны являются исчерпывающими, так как я не смог найтидокументация.Поэтому я перебирал wiimote в течение получаса, пока цифры не перестали обновляться.
Мне нужно преобразовать данные акселерометра X в новое значение в диапазоне от -0,22 до0,22 и данные Y в значение в диапазоне от -2,84 до 2,84 .Я попытался сделать это с помощью следующего кода:
.
.
.
k = self.map(twist.linear.y, -27.6039037037, 44.6747388889, -0.22, 0.22)
print "Testing Y conversion: " + str(k)
def map(self, x, in_min, in_max, out_min, out_max):
return round(float((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min), 2)
Эта слегка измененная функция map скопирована из реализации Arduino той же функции.
Тем не менее, выходные данные сопоставления не отражают желаемый диапазон выходных значений от -0,22 до 0,22 при перемещении акселерометра. Ниже приведен пример выходных данных моегоscript:
Testing Twist-Y: -2.17925555556 mapping to: -0.07
Testing Twist-Y: 0.726418518519 mapping to: -0.05
Testing Twist-Y: 1.45283703704 mapping to: -0.04
Testing Twist-Y: 6.53776666667 mapping to: -0.01
Testing Twist-Y: 8.71702222222 mapping to: 0.0
Testing Twist-Y: 10.1698592593 mapping to: 0.01
Testing Twist-Y: 3.26888333333 mapping to: -0.03
Testing Twist-Y: -1.8160462963 mapping to: -0.06
Testing Twist-Y: -4.35851111111 mapping to: -0.08
Testing Twist-Y: -1.8160462963 mapping to: -0.06
Testing Twist-Y: 3.99530185185 mapping to: -0.03
Testing Twist-Y: 4.72172037037 mapping to: -0.02
Testing Twist-Y: 6.90097592593 mapping to: -0.01
Testing Twist-Y: 6.53776666667 mapping to: -0.01
Testing Twist-Y: 0.726418518519 mapping to: -0.05
Testing Twist-Y: 0.726418518519 mapping to: -0.05
Testing Twist-Y: -2.17925555556 mapping to: -0.07
Testing Twist-Y: 3.26888333333 mapping to: -0.03
Testing Twist-Y: 9.44344074074 mapping to: 0.01
Testing Twist-Y: 11.259487037 mapping to: 0.02
Testing Twist-Y: 15.6179981481 mapping to: 0.04
Testing Twist-Y: 6.53776666667 mapping to: -0.01
Testing Twist-Y: 1.8160462963 mapping to: -0.04
Testing Twist-Y: 3.26888333333 mapping to: -0.03
Testing Twist-Y: 7.9906037037 mapping to: -0.0
Testing Twist-Y: 7.9906037037 mapping to: -0.0
Testing Twist-Y: 6.90097592593 mapping to: -0.01
Testing Twist-Y: 0.726418518519 mapping to: -0.05
Testing Twist-Y: 3.99530185185 mapping to: -0.03
Testing Twist-Y: 1.08962777778 mapping to: -0.05
Testing Twist-Y: 0.726418518519 mapping to: -0.05
Testing Twist-Y: -3.26888333333 mapping to: -0.07
Testing Twist-Y: 5.08492962963 mapping to: -0.02
Testing Twist-Y: -2.17925555556 mapping to: -0.07
Testing Twist-Y: 10.5330685185 mapping to: 0.01
Testing Twist-Y: 2.90567407407 mapping to: -0.03
Testing Twist-Y: 6.53776666667 mapping to: -0.01
Testing Twist-Y: 6.90097592593 mapping to: -0.01
Testing Twist-Y: -1.8160462963 mapping to: -0.06
Testing Twist-Y: -6.53776666667 mapping to: -0.09
Testing Twist-Y: 1.8160462963 mapping to: -0.04
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 0.0 mapping to: -0.05
Testing Twist-Y: 1.45283703704 mapping to: -0.04
Testing Twist-Y: -5.08492962963 mapping to: -0.08
Testing Twist-Y: 0.363209259259 mapping to: -0.05
Testing Twist-Y: 3.63209259259 mapping to: -0.03
Testing Twist-Y: 1.8160462963 mapping to: -0.04
Testing Twist-Y: 5.44813888889 mapping to: -0.02
Testing Twist-Y: 10.8962777778 mapping to: 0.01
Testing Twist-Y: 5.08492962963 mapping to: -0.02
Testing Twist-Y: 5.08492962963 mapping to: -0.02
Testing Twist-Y: 3.26888333333 mapping to: -0.03
Testing Twist-Y: 1.45283703704 mapping to: -0.04
Testing Twist-Y: 3.26888333333 mapping to: -0.03
Testing Twist-Y: 9.80665 mapping to: 0.01
Testing Twist-Y: 9.08023148148 mapping to: 0.0
Testing Twist-Y: 10.1698592593 mapping to: 0.01
Testing Twist-Y: 12.7123240741 mapping to: 0.03
Testing Twist-Y: 3.63209259259 mapping to: -0.03
Testing Twist-Y: -1.8160462963 mapping to: -0.06
Testing Twist-Y: -3.26888333333 mapping to: -0.07
Testing Twist-Y: -1.08962777778 mapping to: -0.06
Testing Twist-Y: 0.726418518519 mapping to: -0.05
Testing Twist-Y: 2.17925555556 mapping to: -0.04
Testing Twist-Y: 2.17925555556 mapping to: -0.04
Testing Twist-Y: 2.17925555556 mapping to: -0.04
Testing Twist-Y: 3.26888333333 mapping to: -0.03
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 1.08962777778 mapping to: -0.05
Testing Twist-Y: 0.0 mapping to: -0.05
Testing Twist-Y: 2.90567407407 mapping to: -0.03
Testing Twist-Y: 6.90097592593 mapping to: -0.01
Testing Twist-Y: 7.9906037037 mapping to: -0.0
Testing Twist-Y: 5.81134814815 mapping to: -0.02
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 1.45283703704 mapping to: -0.04
Testing Twist-Y: -0.726418518519 mapping to: -0.06
Testing Twist-Y: 5.44813888889 mapping to: -0.02
Testing Twist-Y: 10.5330685185 mapping to: 0.01
Testing Twist-Y: 9.80665 mapping to: 0.01
Testing Twist-Y: 10.1698592593 mapping to: 0.01
Testing Twist-Y: 1.45283703704 mapping to: -0.04
Testing Twist-Y: 1.45283703704 mapping to: -0.04
Testing Twist-Y: 5.44813888889 mapping to: -0.02
Testing Twist-Y: 7.62739444444 mapping to: -0.01
Testing Twist-Y: 10.1698592593 mapping to: 0.01
Testing Twist-Y: 9.08023148148 mapping to: 0.0
Testing Twist-Y: 5.81134814815 mapping to: -0.02
Testing Twist-Y: 0.0 mapping to: -0.05
Testing Twist-Y: 2.17925555556 mapping to: -0.04
Testing Twist-Y: 13.4387425926 mapping to: 0.03
Testing Twist-Y: 10.5330685185 mapping to: 0.01
Testing Twist-Y: 13.0755333333 mapping to: 0.03
Testing Twist-Y: 4.72172037037 mapping to: -0.02
Testing Twist-Y: 10.5330685185 mapping to: 0.01
Testing Twist-Y: 12.7123240741 mapping to: 0.03
Testing Twist-Y: 7.62739444444 mapping to: -0.01
Testing Twist-Y: 9.44344074074 mapping to: 0.01
Testing Twist-Y: 9.44344074074 mapping to: 0.01
Testing Twist-Y: 1.45283703704 mapping to: -0.04
Testing Twist-Y: 3.99530185185 mapping to: -0.03
Testing Twist-Y: 2.54246481481 mapping to: -0.04
Testing Twist-Y: 9.80665 mapping to: 0.01
Testing Twist-Y: 6.53776666667 mapping to: -0.01
Testing Twist-Y: 6.17455740741 mapping to: -0.01
Testing Twist-Y: 5.44813888889 mapping to: -0.02
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 9.08023148148 mapping to: 0.0
Testing Twist-Y: -1.08962777778 mapping to: -0.06
Testing Twist-Y: -0.363209259259 mapping to: -0.05
Testing Twist-Y: -0.363209259259 mapping to: -0.05
Testing Twist-Y: 0.363209259259 mapping to: -0.05
Testing Twist-Y: 1.8160462963 mapping to: -0.04
Testing Twist-Y: 10.5330685185 mapping to: 0.01
Testing Twist-Y: 14.1651611111 mapping to: 0.03
Testing Twist-Y: 4.35851111111 mapping to: -0.03
Testing Twist-Y: 4.72172037037 mapping to: -0.02
Testing Twist-Y: 7.9906037037 mapping to: -0.0
Testing Twist-Y: 9.44344074074 mapping to: 0.01
Testing Twist-Y: 7.62739444444 mapping to: -0.01
Testing Twist-Y: 2.54246481481 mapping to: -0.04
Testing Twist-Y: 5.44813888889 mapping to: -0.02
Testing Twist-Y: 3.26888333333 mapping to: -0.03
Testing Twist-Y: 2.90567407407 mapping to: -0.03
Testing Twist-Y: 3.99530185185 mapping to: -0.03
Testing Twist-Y: 2.17925555556 mapping to: -0.04
Testing Twist-Y: 3.63209259259 mapping to: -0.03
Testing Twist-Y: 5.81134814815 mapping to: -0.02
Testing Twist-Y: 7.9906037037 mapping to: -0.0
Testing Twist-Y: 6.17455740741 mapping to: -0.01
Testing Twist-Y: 0.0 mapping to: -0.05
Testing Twist-Y: -3.63209259259 mapping to: -0.07
Testing Twist-Y: 4.35851111111 mapping to: -0.03
Testing Twist-Y: 10.5330685185 mapping to: 0.01
Testing Twist-Y: 13.8019518519 mapping to: 0.03
Testing Twist-Y: 9.80665 mapping to: 0.01
Testing Twist-Y: 4.35851111111 mapping to: -0.03
Testing Twist-Y: 3.26888333333 mapping to: -0.03
Testing Twist-Y: 3.63209259259 mapping to: -0.03
Testing Twist-Y: -1.08962777778 mapping to: -0.06
Testing Twist-Y: -2.17925555556 mapping to: -0.07
Testing Twist-Y: 7.62739444444 mapping to: -0.01
Testing Twist-Y: 3.99530185185 mapping to: -0.03
Testing Twist-Y: 3.99530185185 mapping to: -0.03
Testing Twist-Y: 10.5330685185 mapping to: 0.01
Testing Twist-Y: 3.99530185185 mapping to: -0.03
Testing Twist-Y: -5.08492962963 mapping to: -0.08
Testing Twist-Y: 0.363209259259 mapping to: -0.05
Testing Twist-Y: -1.8160462963 mapping to: -0.06
Testing Twist-Y: -1.8160462963 mapping to: -0.06
Testing Twist-Y: 1.8160462963 mapping to: -0.04
Testing Twist-Y: 23.2453925926 mapping to: 0.09
Testing Twist-Y: 17.0708351852 mapping to: 0.05
Testing Twist-Y: 14.1651611111 mapping to: 0.03
Testing Twist-Y: 6.90097592593 mapping to: -0.01
Testing Twist-Y: 4.72172037037 mapping to: -0.02
Testing Twist-Y: 5.08492962963 mapping to: -0.02
Testing Twist-Y: 8.35381296296 mapping to: -0.0
Testing Twist-Y: 12.7123240741 mapping to: 0.03
Testing Twist-Y: 10.1698592593 mapping to: 0.01
Testing Twist-Y: 10.8962777778 mapping to: 0.01
Testing Twist-Y: 4.72172037037 mapping to: -0.02
Testing Twist-Y: -2.90567407407 mapping to: -0.07
Testing Twist-Y: -2.54246481481 mapping to: -0.07
Testing Twist-Y: 10.5330685185 mapping to: 0.01
Testing Twist-Y: 7.26418518519 mapping to: -0.01
Testing Twist-Y: 8.71702222222 mapping to: 0.0
Testing Twist-Y: 5.44813888889 mapping to: -0.02
Testing Twist-Y: 1.45283703704 mapping to: -0.04
Testing Twist-Y: 5.44813888889 mapping to: -0.02
Testing Twist-Y: 5.44813888889 mapping to: -0.02
Testing Twist-Y: 7.9906037037 mapping to: -0.0
Testing Twist-Y: 5.81134814815 mapping to: -0.02
Testing Twist-Y: 4.35851111111 mapping to: -0.03
Testing Twist-Y: 4.72172037037 mapping to: -0.02
Testing Twist-Y: 8.71702222222 mapping to: 0.0
Testing Twist-Y: 7.9906037037 mapping to: -0.0
Я хотел бы настроить или исправить этот код, чтобы вывод лучше отражал желаемый диапазон.