Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Балансирующий робот
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
Страницы: 1, 2
Dars
Делаю балансирующего робота(типа игрушка,для души, вроде этого должно получится http://www.geology.smu.edu/~dpa-www/robo/nbot/), встал вопрос о том как его удерживать на двух колесах. Посмотрел в интеренете, обычно делают с помощью гироскопа(большая погрешность со временем,быстрая скорость) + акселлерометр(маленькая скорость,маленькая погрешность).Типа гироскопом меряют угол отклонения,а потом его акселлерометром калибруют. Посмотрел у AD,adxl202eb(2000 руб) + adxrs300eb(3000 руб).Цены совсем не радуют((( может кто подскажет как еще можно подешевле решить проблему? хатит ли одного акселлерометра для стабилизации положения??
Stanislav
Акселерометры явно "не те", и явно "не там" искали. Посмотрите двух- трехосевые приборы от ST Microelectronics, думаю, они получше во всех смыслах.
Да и с ценой на гироскопы что-то у Вас не так. В Москве их реально за 45-50 уёв купить...
Ваши же замечания по поводу стабилизации объекта с помощью гироскопов и акселерометров вызывают улыбку. Когда начнёте разбираться с этим плотно, поймёте, в чём дело...
Только не подумайте, что задача очень уж сложна. Вовсе нет...

ЗЫ. Прошу прощения, я не заметил, что "eb". На них цена действительно побольше. Только вот нафиг они нужны? Открою секрет: на ADXRS150EB мною найдены ошибки - все кондёры там перепутаны, причём "eb" были из разных серий. Плата теоретически работает, но со значительным несоответствием параметров: в частности, частотная полоса пропускания её меньше 10 Гц против 40 Гц заявленных.
Dars
Цитата(Stanislav @ Mar 19 2006, 00:05) *
Ваши же замечания по поводу стабилизации объекта с помощью гироскопов и акселерометров вызывают улыбку. Когда начнёте разбираться с этим плотно, поймёте, в чём дело...
Только не подумайте, что задача очень уж сложна. Вовсе нет...



А можно по подробней?что для этого достаточно?и где про это все можно почитать?

Цитата
Прошу прощения, я не заметил, что "eb". На них цена действительно побольше. Только вот нафиг они нужны?


Там бга корпус,мне его нечем и некуда паять)
Stanislav
Цитата(Dars @ Mar 19 2006, 09:42) *
А можно по подробней?что для этого достаточно?и где про это все можно почитать?
Для измерения отклонения платформы от вертикали теоретически достаточно только трёхосевого акселерометра. Если объект имеет вращательные степени свободы, акселерометры следует располагать как можно ближе к центру вращения, для уменьшения влияния центростремительных ускорений. А вот для полной компенсации этих ускорений гироскопы-то и нужны. Для измерения же углов ADXRS не годятся - слишком велики шумы, при интегрировании набегает ошибка в градусы за каждые несколько секунд времени.
Но это всё "на пальцах", приводить всю теорию рамки форума (да и время) не позволяют. Становитесь "своим", в родных закромах есть немало литературы по интересующему Вас вопросу.
Цитата(Dars @ Mar 19 2006, 09:42) *
Там бга корпус,мне его нечем и некуда паять)
Посмотрите в разделе форума "Пайка, монтаж, отладка". Там можно найти исчерпывающую инфу по данному вопросу. Если всё-таки приобретёте "eb", могу подсказать, как её довести до ума.
Alhen
Цитата
Но это всё "на пальцах", приводить всю теорию рамки форума (да и время) не позволяют. Становитесь "своим", в родных закромах есть немало литературы по интересующему Вас вопросу.


А конкретно какие книги освещают данную проблему? С учетом того что существует море книг по ТАУ и ТАР, но где есть примеры работы в связке акселерометров с датчиками угловой скорости?
NickNich
[QUOTE]
А конкретно какие книги освещают данную проблему? С учетом того что существует море книг по ТАУ и ТАР, но где есть примеры работы в связке акселерометров с датчиками угловой скорости?
[\QUOTE]

Книг по этой теме тоже море. Но другое. Есть даже пересечение этих морей, в области гиростабилизации. Т.к. у вас нет поворотной гироплатформы, то связка ДУС и акселерометров (ещё их называют ДЛУ) делается вычислительно. Т.е. система получается бесплатформенная.

Из отечественных, того, что сразу на ум приходит

Бранец, Шмыглевский Теория бесплатформенных инерциальных навигационный систем.
Введение в теорию инерциальных навигационных систем. (Только название, автора не помню)
Стабилизация ЛА бесплатформенной инерциальной навигационной системой.(Только название, автора не помню)

В гугле разнокалиберных статей по этой теме - море ещё более немеряное. Если искать по ключевым словам strapdown INS, strapdown IMU, GPS-INS integration. GPS вам конечно не нужно, но в таких статьях как правило выводятся алгоритмы совместного обсчёта показаний ДУС и ДЛУ.
Alexeyy
Не подскажет ли кто марки таких акаеллерометров, которые выдержали бы 40 тысяч часов работы и были из самого дешевого типа? Хотелось бы использовать такой акселлерометр в качестве датчика вибрации. Потыкался в интернете по ключевому слову «акселлерометр» - вроде ничего особенно нет.
Да, еще нужно, чтобы акселлерометр имел встроенный усилитель сигнала, преобразующуй его в цифровой формат.
NickNich
Цитата(Alexeyy @ Jan 12 2007, 07:58) *
Потыкался в интернете по ключевому слову «акселлерометр» - вроде ничего особенно нет.

И не будет. Попробуйте потыкаться по слову "акселерометр".
Serj78
Цитата(Stanislav @ Mar 24 2006, 20:14) *
А вот для полной компенсации этих ускорений гироскопы-то и нужны. Для измерения же углов ADXRS не годятся - слишком велики шумы, при интегрировании набегает ошибка в градусы за каждые несколько секунд времени.
Но это всё "на пальцах", приводить всю теорию рамки форума (да и время) не позволяют. Становитесь "своим", в родных закромах есть немало литературы по интересующему Вас вопросу.


Станислав, ну зачем же столь категорично? smile.gif на промежутках в 10-20с ADXRS150 очень даже годятся - просто корректировать вовремя надо smile.gif
В одной плоскости (коей является балансирующий робот) без великих математических ухищрений и полосе 10гц можно получить уход 6-8 градусов в минуту, это вполне приемлемо, если есть акселерометр - по нему идет коррекция... у меня где-то была статья про этого робота...

У нас при старте с катапульты первые 5с вообще никакой коррекции нету wink.gif - стартовые ускорения 4g- за пределами ацп - даже при боковом ветре визуально никуда свалить не успевает smile.gif
alexQ
Я думаю Вам поможет этот кусок кода для калмановской обработки данных с гироскопа и акселерометра. в принципе это скомпенированная ось... ессно одна.
код переложен для ADUC7020 с армовым ядром.
это я для баловства писал. но вроде трэкинг работает нормально.

p.s. Когда робота сделаете, я бы детям купил за не очень дорого!!!


#include "ioADuC7020.h"
#include "LibUrt702x.h"
#include "LibDac702x.h"
#include <stdlib.h>
#include <math.h>

static const float dt = 4178.0 / 41780000.0;
static float P[2][2] = {
{ 1, 0 },
{ 0, 1 },
};
float angle;
float q_bias;
float rate;
static const float R_angle = 0.3;
static const float Q_angle = 0.001;
static const float Q_gyro = 0.003;
void state_update(
const float q_m
)
{
const float q = q_m - q_bias;

const float Pdot[2 * 2] = {
Q_angle - P[0][1] - P[1][0], /* 0,0 */
- P[1][1], /* 0,1 */
- P[1][1], /* 1,0 */
Q_gyro /* 1,1 */
};
rate = q;
angle += q * dt;
P[0][0] += Pdot[0] * dt;
P[0][1] += Pdot[1] * dt;
P[1][0] += Pdot[2] * dt;
P[1][1] += Pdot[3] * dt;
}
void kalman_update(
const float ax_m,
const float az_m
)
{
const float angle_m = atan2( -az_m, ax_m );
const float angle_err = angle_m - angle;
const float C_0 = 1;
const float PCt_0 = C_0 * P[0][0];
const float PCt_1 = C_0 * P[1][0];
const float E =R_angle+ C_0 * PCt_0;
const float K_0 = PCt_0 / E;
const float K_1 = PCt_1 / E;
const float t_0 = PCt_0;
const float t_1 = C_0 * P[0][1];
P[0][0] -= K_0 * t_0;
P[0][1] -= K_0 * t_1;
P[1][0] -= K_1 * t_0;
P[1][1] -= K_1 * t_1;
angle += K_0 * angle_err;
q_bias += K_1 * angle_err;
}
int send_string_uart(int file, char *ptr, int len)
{
int j;
for (j = 0; j < len; j++) putchar(*ptr++);
return len;
}

void send_decimal_uart(short Bute)
{
unsigned short temp;
if (Bute<0)
{
Bute=abs(Bute);
putchar('-');
temp=Bute%1000;
putchar(temp/100+0x30);
temp=temp%100;
putchar(temp/10+0x30);
putchar(temp%10+0x30);
}
else
{
putchar(Bute/1000+0x30);
temp=Bute%1000;
putchar(temp/100+0x30);
temp=temp%100;
putchar(temp/10+0x30);
putchar(temp%10+0x30);
}
}

void delay(int length)
{
while (length >=0)
length-- ;
}
void ADCpoweron(int time)
{
ADCCON = 0x20;
while (time >=0)
time--;
}
void ADCinit(void)
{
ADCpoweron(2000);
ADCCP = 0x10;
REFCON = 0x01;
ADCCON = 0xE4;
}
unsigned short ADCconversion (int samples)
{
unsigned short result=0;
unsigned int i;
for (i=0; i<samples; i++)
{
while (!ADCSTA){};
result = result+(ADCDAT >> 16);
}
result=result/samples;
return result;
}
int rnd( int max )
{
return (rand() % max) + 1;
}
__irq __arm void irq_handler()
{
if ((IRQSTA & GP_TIMER_BIT) == 0x8)
{
T1CLRI = 0;
GP4DAT ^= 0x00040000;
}
if ((IRQSTA & RTOS_TIMER_BIT) == 0x4)
{
T0CLRI = 0;
state_update(ADCconversion(1));
}
}
void InitFreq(void) {
POWKEY1 = 0x01;
POWCON = 0x00;
POWKEY2 = 0xF4;
}
int main(void)
{
float a = 0;
short b;
int j=0;
InitFreq();
ADCinit();
UrtCfg(0, 4352, 7);
GP0CON = 0x00;
GP4DAT = 0x04000000;
T0LD = 4178;
T0CON = 0xC0;
IRQEN = RTOS_TIMER_BIT;
T1LD = 0x20000;
T1CON = 0xC4;
IRQEN = GP_TIMER_BIT;
while (1)
{
kalman_update(0.034,0.11);
send_decimal_uart(angle); putchar(' ');
send_decimal_uart(q_bias); putchar(' ');
send_decimal_uart(rate); putchar (' ');
b=ADCconversion(1);
a = 0x525 - b;
a /= 1.3;
b = floor(a);
}
}



Кстати комбинация adxl202eb + adxrs300eb самая лучшая из всех
на сегодняшний день по критерию цена/качество.

а можно вообще без гироскопа обойтись и все сделать на акселерометрах.
есть такой вариант ИНС на 6-и акселерометрах. только математика там не высшая
а академическая уже нужна....

посмотрите в гугле Gyro-Free INS. очень интересное решение.
Stanislav
Цитата(Serj78 @ Jan 12 2007, 11:43) *
Цитата(Stanislav @ Mar 24 2006, 20:14) *

А вот для полной компенсации этих ускорений гироскопы-то и нужны. Для измерения же углов ADXRS не годятся - слишком велики шумы, при интегрировании набегает ошибка в градусы за каждые несколько секунд времени.
Но это всё "на пальцах", приводить всю теорию рамки форума (да и время) не позволяют. Становитесь "своим", в родных закромах есть немало литературы по интересующему Вас вопросу.


Станислав, ну зачем же столь категорично? smile.gif на промежутках в 10-20с ADXRS150 очень даже годятся - просто корректировать вовремя надо smile.gif
Это каким же макаром "корректировать", да ещё "вовремя"?

Цитата(Serj78 @ Jan 12 2007, 11:43) *
...В одной плоскости (коей является балансирующий робот) без великих математических ухищрений и полосе 10гц можно получить уход 6-8 градусов в минуту, это вполне приемлемо, если есть акселерометр - по нему идет коррекция... у меня где-то была статья про этого робота...
При чём здесь полоса и почему в одной плоскости? blink.gif Боюсь, Вы недостаточно хорошо изучили предмет. Робот имеет три оси вращения (креном, правда, можно пренебречь).
Мы говорим об ошибке угла, после интергирования угловой скорости, обусловленной НЧ-шумом гироскопа и дрейфом его "нуля". Ежли Вы сообщите способ, как с помощью ADXRS150 получить уход 6-8 градусов в минуту без термостата, я готов поставить целую кеглю хорошего пива. smile.gif

ЗЫ. А вот Калман - это правильное решение. smile.gif
alexQ
Станислав,

Вы немножко не поняли, т.к. Dars не совсем правильно Вам объяснил.

Балансирующий робот - это платформа на двух колесах (одна ось).
по двум остальным осям он стоит на плоскости.

другое дело робот-ШАР, который катиться, там нужно "пасти" 3 оси.

И еще, я Вас как у гуру хотел спросить, Вы не сталкивались с безгироскопной схемой инерциалки?
во всей литературе, которую смотрел очень туманно как-то об этом говорится...
NickNich
Цитата(alexQ @ Feb 2 2007, 13:39) *
а можно вообще без гироскопа обойтись и все сделать на акселерометрах.
есть такой вариант ИНС на 6-и акселерометрах. только математика там не высшая
а академическая уже нужна....

посмотрите в гугле Gyro-Free INS. очень интересное решение.

Математика в обоих случаях (с наличием гироскопов или без него) одинаковая. Если Вы считаете иначе, это означает что вы педопоняли принцип работы обычной ИНС. Для облегчения понимания рекомендую скачать книжку. Там есть раздел, посвященный безгироскопическим ИНС.
Stanislav
Цитата(alexQ @ Feb 2 2007, 17:24) *
Станислав,

Вы немножко не поняли, т.к. Dars не совсем правильно Вам объяснил.

Балансирующий робот - это платформа на двух колесах (одна ось).
по двум остальным осям он стоит на плоскости.
А я подумал, что он должен уметь также и поворачивать, и двигаться по наклонной плоскости, а-ля Segway. cranky.gif

Цитата(alexQ @ Feb 2 2007, 17:24) *
...И еще, я Вас как у гуру хотел спросить, Вы не сталкивались с безгироскопной схемой инерциалки?
во всей литературе, которую смотрел очень туманно как-то об этом говорится...
Практически не делал, и не сталкивался.
В принципе, если есть ограничения (например, движение по горизонтальной плоскости), углы наклона платформы к вертикали можно получить, имея только трёхгранник акселерометров. Правда, акселерометры должны быть расположены в центре вращения объекта, для уменьшения ошибок. Математика там очень проста, и сводится к "отделению" линейных ускорений от ускорения силы тяжести.
Правда, точность такого метода, как мне кажется, будет не слишком высокой.
NickNich
Цитата(Stanislav @ Feb 2 2007, 17:59) *
В принципе, если есть ограничения (например, движение по горизонтальной плоскости), углы наклона платформы к вертикали можно получить, имея только трёхгранник акселерометров.

Для получения углов наклона в движении показания акселерометров придется сильно фильтровать, чтобы исключить из их показаний возмущения, связанные с ускоренным движением робота. Эти возмущения, большей частью, будут высокочастотными из-за работы системы стабилизации платформы робота относительно горизонта. Во время поворотов будут появляться кратковременные возмущения, по длительности сравнимые (т.е. по частотному спектру) с изменением наклона платформы робота во время маневра.

Если задаться целью просто определить ориентацию платформы во время движения, то наверное такой метод может работать, но не знаю с какой точностью. Если же акселерометры являются датчиками наклона, включенными в замкнутый контур стабилизации платформы относительно горизонта, то этот способ скорее всего неприемлем. Т.к. сильная НЧ-фильтрация сигналов с датчиков существенно ослабит обратную связь в области быстрых измерений наклона и эти возмущения останутся нескомпенсированными. Запаздывание, вносимое НЧ-фильтром высокого порядка с малой частотой среза тоже скажется на работе контура пространственной стабилизации робота, ухудшив его запас устойчивости и (возможно) увеличив колебательность.

Цитата(Stanislav @ Feb 2 2007, 17:59) *
Правда, акселерометры должны быть расположены в центре вращения объекта, для уменьшения ошибок. Математика там очень проста, и сводится к "отделению" линейных ускорений от ускорения силы тяжести.

Если определять ориентацию через интегрирование угловой скорости, то для получения этой скорости в системе построенной только на акселерометрах их надо располагать как можно дальше друг от друга(насколько позволяет конструкция системы), и желательно по разные стороны от центра масс стабилизируемой платформы.

Цитата(Stanislav @ Feb 2 2007, 17:59) *
Правда, точность такого метода, как мне кажется, будет не слишком высокой.

Точность такой системы будет хуже, чем у обычной БИНС. Основаная причина - для получения углов показания гироскопов надо проинтегрировать один раз внутри системы нелинейных дифф. уравнений. Источники ошибок сдесь - шумы трех гироскопов и перекос осей чувствительности трех датчиков.

Если система построена только на акселерометрах, то эти показания надо нелинейно проинтегрировать ДВА раза. Один раз - внутри системы уравнений для получения отсчетов угловой скорости. Второй раз полученную угловую скорость надо проинтегрировать в углы. Источники ошибок - шумы шести датчиков, перекос осей чувствительности шести датчиков, ошибки определения взаимных расстояний между шестью датчиками.
Serj78
[/quote]

Станислав, ну зачем же столь категорично? smile.gif на промежутках в 10-20с ADXRS150 очень даже годятся - просто корректировать вовремя надо smile.gif [/quote]Это каким же макаром "корректировать", да ещё "вовремя"?

[quote name='Serj78' post='196094' date='Jan 12 2007, 11:43']...В одной плоскости (коей является балансирующий робот) без великих математических ухищрений и полосе 10гц можно получить уход 6-8 градусов в минуту, это вполне приемлемо, если есть акселерометр - по нему идет коррекция... у меня где-то была статья про этого робота...[/quote]При чём здесь полоса и почему в одной плоскости? blink.gif Боюсь, Вы недостаточно хорошо изучили предмет. Робот имеет три оси вращения (креном, правда, можно пренебречь).
Мы говорим об ошибке угла, после интергирования угловой скорости, обусловленной НЧ-шумом гироскопа и дрейфом его "нуля". Ежли Вы сообщите способ, как с помощью ADXRS150 получить уход 6-8 градусов в минуту без термостата, я готов поставить целую кеглю хорошего пива. smile.gif

ЗЫ. А вот Калман - это правильное решение. smile.gif
[/quote]




До полноценного калмана у меня руки так и не дошли... smile.gif

про уходы и как сделано смотрите мои посты в теме про датчики ула поворота- я там практически все написал...
один из постов-
"
Мы используем, AXRS150, скорости поворота при закручивании гаек явно меньше 150 градусов/с smile.gif

"на столе" точность измеряемого угла ~ 1 градус, а если в динамике (у нас- в полете) падает вдвое примерно. Уход в статике (на поворотном столе, скорости до 60 гр/с, ускорения до 30 гр/с^2) составляет 1-2 градуса в минуту, в динамике 3-7. Термокомпенсация индивидуальная по пяти точкам.

Для полетов этого вполне хватает, а вот для гаек- вряд ли smile.gif.

термостатирование вовсе не обязательно (мне так кажется), это мюрату надо было греть, а то вообще голяк. smile.gif кстати, уход нуля у некоторых экземпляров adxrs150 не превышает 2 градуса/с в диапазоне от - 15 до +60 , но блин, как правило, по закону подлости, этим гироскопом никогда не оказывается курсовой - термокомпенсация настраивается и тестируется на поворотном столе , когда все уже собрано smile.gif .

а про коррекцию - это я про акселерометры говорил, корректировать можно и без калмана, smile.gif

некоторые люди приводят цифры что в динамике у них 2-3 градуса уходы, ну... может и можно чего добиться, такой уход нас вполне устраивает smile.gif

А 6-8 градусов в минуту в полете- это пролететь над дорогой против ветра по прямой 700м со скоростью 40-50 км/ч на высоте 50м ( gps коррекция выключена!) и не потерять эту дорогу из поля зрения 40- градусного объектива плановой камеры...
Stanislav
Цитата(NickNich @ Feb 3 2007, 22:23) *
Цитата(Stanislav @ Feb 2 2007, 17:59) *

В принципе, если есть ограничения (например, движение по горизонтальной плоскости), углы наклона платформы к вертикали можно получить, имея только трёхгранник акселерометров.

Для получения углов наклона в движении показания акселерометров придется сильно фильтровать, чтобы исключить из их показаний возмущения, связанные с ускоренным движением робота. Эти возмущения, большей частью, будут высокочастотными из-за работы системы стабилизации платформы робота относительно горизонта. Во время поворотов будут появляться кратковременные возмущения, по длительности сравнимые (т.е. по частотному спектру) с изменением наклона платформы робота во время маневра.

Если задаться целью просто определить ориентацию платформы во время движения, то наверное такой метод может работать, но не знаю с какой точностью. Если же акселерометры являются датчиками наклона, включенными в замкнутый контур стабилизации платформы относительно горизонта, то этот способ скорее всего неприемлем. Т.к. сильная НЧ-фильтрация сигналов с датчиков существенно ослабит обратную связь в области быстрых измерений наклона и эти возмущения останутся нескомпенсированными. Запаздывание, вносимое НЧ-фильтром высокого порядка с малой частотой среза тоже скажется на работе контура пространственной стабилизации робота, ухудшив его запас устойчивости и (возможно) увеличив колебательность.
................................................................................
...............
Простите, но Вы не поняли.
Я утверждаю, что углы наклона можно получить по одномоментному измерению, безо всякой фильтрации, если есть соотв. ограничения.
Видимо, придётся пояснить. Попытаюсь сделать это с помощью рисунка, для двумерного случая (кстати, для былансирующего робота вполне можно обойтись только двумя акселерометрами).
Итак, есть система измерения, связанная с объектом: OXY, на которую действуют ускорение силы тяжести g, и линейное ускорение a. Вертикальную составляюшую линейных ускорений положим тождественно равной 0. Измеренный датчиками вектор обозначим как b (см. рис.).
Нажмите для просмотра прикрепленного файла
Находим длину вектора b:
|b| = sqrt(x^2+y^2), где x и y - проекции вектора b на оси OX OY соответственно.
Находим длину вектора a:
|a| = sqrt( |b|^2-|g|^2)=sqrt(x^2+y^2-|g|^2), где |g| - модуль ускорения свободного падения, равный 9,8 м/(с*с).
Далее, чтобы не писать формУлы, поясню графически: пересечение двух окружностей радиусов |a| и |g| даст две точки возможного положения конца вектора g: B и C. Одно из этих векторов должен быть отброшен (изображён красным), а второй взят в качестве измеренного. По нему легко находится угол α.
Как видите, задача могла быть решена и во времена Пифагора. smile.gif
Как отбросить "лишнюю" точку - подумайте сами. В этом нет ничего сложного.
Вопросы?
Stanislav
Цитата(Serj78 @ Feb 4 2007, 20:57) *
Мы используем, AXRS150, скорости поворота при закручивании гаек явно меньше 150 градусов/с smile.gif

"на столе" точность измеряемого угла ~ 1 градус, а если в динамике (у нас- в полете) падает вдвое примерно. Уход в статике (на поворотном столе, скорости до 60 гр/с, ускорения до 30 гр/с^2) составляет 1-2 градуса в минуту, в динамике 3-7. Термокомпенсация индивидуальная по пяти точкам.

Для полетов этого вполне хватает, а вот для гаек- вряд ли smile.gif.

термостатирование вовсе не обязательно (мне так кажется), это мюрату надо было греть, а то вообще голяк. smile.gif кстати, уход нуля у некоторых экземпляров adxrs150 не превышает 2 градуса/с в диапазоне от - 15 до +60 , но блин, как правило, по закону подлости, этим гироскопом никогда не оказывается курсовой - термокомпенсация настраивается и тестируется на поворотном столе , когда все уже собрано smile.gif .
Понятно. Но калибровка гироскопов в этом случае связана с большими сложностями: нужен двухкоординатный поворотный стол, да ещё с термокамерой, в которую нужно помещать ИНС. Такое оборудование, например, в Москве есть только в 2-3 конторах, и доступ к нему сильно ограничен. В России сейчас поворотные столы не делают, а зарубежные стОят >100К долларов.

Цитата(Serj78 @ Feb 4 2007, 20:57) *
...некоторые люди приводят цифры что в динамике у них 2-3 градуса уходы, ну... может и можно чего добиться, такой уход нас вполне устраивает smile.gif

А 6-8 градусов в минуту в полете- это пролететь над дорогой против ветра по прямой 700м со скоростью 40-50 км/ч на высоте 50м ( gps коррекция выключена!) и не потерять эту дорогу из поля зрения 40- градусного объектива плановой камеры...
Честно говоря, Ваш результат впечатляет, я считал, что должно получится хуже (во всяком случае, мне такой точности добиться не удавалось, видимо, из-за отсутствия нормального калибровочного оборудования).
Кстати, ADXRS150 снимают с производства в этом году... sad.gif
NickNich
Цитата(Stanislav @ Feb 4 2007, 22:25) *
Простите, но Вы не поняли.

Теперь понял. Подобный способ вычисления наклона мне в голову не приходил. Спасибо за идею.
alexQ
Действительно интересная идея. спасибо.

но если я правильно понял такой способ будет неприемлим при движении по наклонной траектории?
Herz
Цитата(alexQ @ Feb 5 2007, 11:27) *
Действительно интересная идея. спасибо.

но если я правильно понял такой способ будет неприемлим при движении по наклонной траектории?

Кроме того, если "линейное" ускорение, т.е. ускорение по горизонтали, отсутствует, то угол наклона не может быть вычислен?
Stanislav
Цитата(NickNich @ Feb 5 2007, 00:46) *
Подобный способ вычисления наклона мне в голову не приходил...
Не Вам одному...
Однажды предложил его человеку, который всю жизнь занимался ИНС. По-моему, он мне так до конца и не поверил, всё подвох искал... biggrin.gif

Цитата(alexQ @ Feb 5 2007, 12:27) *
но если я правильно понял такой способ будет неприемлим при движении по наклонной траектории?
Ищите ограничения! Может так статься, что способ впролне подойдёт и для движения по наклонной плоскости.
Если нет - используйте доп. инфу, напр., о скорости вращения колёс.

PS. Оси акселерометров, кстати, лучше направить под 45град. к горизонту По-моему, ошибка для малых углов отклонения от вертикали тогда будет меньше.
NickNich
Цитата(Herz @ Feb 5 2007, 15:23) *
Кроме того, если "линейное" ускорение, т.е. ускорение по горизонтали, отсутствует, то угол наклона не может быть вычислен?

Цель всех этих манипуляций - выделить из показаний акселерометров компоненты вектора g. Если "линейное" ускорение равно нулю, то разность |a| = sqrt( |b|^2-|g|^2) тоже равна нулю и компоненты вектора g определяются однозначно. Т.е. угол можно считать прямо из показаний акселерометров без запуска процедуры отбрасывания лишнего решения.
Serj78
Цитата(Stanislav @ Feb 4 2007, 22:38) *
Честно говоря, Ваш результат впечатляет, я считал, что должно получится хуже (во всяком случае, мне такой точности добиться не удавалось, видимо, из-за отсутствия нормального калибровочного оборудования).
Кстати, ADXRS150 снимают с производства в этом году... sad.gif


блин, это фигово smile.gif ну да элтех не даст нам погибнуть - запасы наверное еще год лет будут, мож чего и подберется на замену... smile.gif

по поводу стола - он у нас одно координатный, механика старинная smile.gif, калибруем каждую ось по очереди. Да, имеется разброс чувствительности , но не большой. Нули уходят иногда намного сильнее. термокамеры как таковой нету- просто сначала блок автопилота охлаждаем до -20 потом он самостоятельно медленно нагревается, и при этом крутится на столе , с остановкми. smile.gif температура измеряется самим гироскопом...

думаю вообще отказаться от 3- кратной процедуры калибровки чувствительности от температуры, оставить только коррекцию нулей (на компе написана прога которая записывает массив данных с 6 датчиков, потом самостоятельно выбирает 5 точек и 7 коэффициентов поправок smile.gif , а то блин по 2 часа на на всю калибровку/настройку уходит...
по поводу предложенного метода- по акселерометрам- в точку! я его у rotomotion подсмотрел smile.gif

Станислав, а если не секрет- где вы работаете (в какой фирме) , что делаете?
NickNich
Цитата(Serj78 @ Feb 6 2007, 09:29) *
по поводу стола - он у нас одно координатный, механика старинная smile.gif, калибруем каждую ось по очереди. Да, имеется разброс чувствительности , но не большой.

Как-то Вы уже проговорились по поводу конструкции стола. Продолжу пытать Вас дсльше.

Каким образом Вы закрепляете калибруемый модуль на вращающейся поверхности? У таких модулей, как правило, одна опорная поверхность, которая выдерживается с хорошей механической точностью. На нее модуль поставить можно. А вот на остальные - как правило не получается, т.к. мешают всевозможные крепления, торчащие гайки и т.д. Как Вы обходите эти трудности?
Serj78
Это приспособление весьма тривиально и сделано ну очень просто всего за полчасаsmile.gif, точность установки - примерно 0.2 градуса, погрешность перпендикулярности плат ИНС примерно такая же,

закрепляем мы плату автопилота просто в пластиковой рамке по внешнему контуру, опорной поверхностью служит весь периметр платы шириной 0.8мм, ( весь автопилот размерами 40х35мм) , рамка крепится к г- образному уголку уголку склееному из 2-х кусков пластика толщиной миллиметров 6, все это просто кладется нужной стороной на поворотный стол, на стол просто приклеены ограничители чтоб стояло примерно в центре smile.gif-

На этом же столе лежит небольшой аккумулятор для питания всего этого дела и модуль ктр (командно- телеметрической радиолинии) все остальные внешние устройства для калибровки ИНС не нужны smile.gif

А вы, NickNich, что разрабатываете/производите, если не секрет?
Stanislav
Цитата(Serj78 @ Feb 6 2007, 09:29) *
Цитата
Кстати, ADXRS150 снимают с производства в этом году...
блин, это фигово smile.gif ну да элтех не даст нам погибнуть - запасы наверное еще год лет будут, мож чего и подберется на замену...
Думаю, переживать не стОит. Пару лет они ещё в продаже, наверное, будут.
AD, между прочим, предлагает им замену "не отходя от кассы". Марку прибора могу сообщить только завтра, но в природе его ещё нет.

Цитата(Serj78 @ Feb 6 2007, 09:29) *
...по поводу стола - он у нас одно координатный, механика старинная smile.gif , калибруем каждую ось по очереди. Да, имеется разброс чувствительности , но не большой. Нули уходят иногда намного сильнее. термокамеры как таковой нету- просто сначала блок автопилота охлаждаем до -20 потом он самостоятельно медленно нагревается, и при этом крутится на столе , с остановкми. smile.gif температура измеряется самим гироскопом...
Та-ак, интересно.
То есть, Вы утверждаете, что при таком способе калибровки ADXRS (без снятия матрицы чувствительностей по 3-м осям, и без точной калибровки по температуре), Вы можете получить при вращении платформы в произвольных плоскостях в течение минуты, скажем, со скоростью 1 (или 2, или 0,5) рад/с точность финального значения угла в 5-6 град? Простите, но более чем не очень верится.
Может, Вы говорите об уходе платформы от "нулевого" положения в 5-6 град за минуту? На это ещё можно согласиться....

Цитата(Serj78 @ Feb 6 2007, 09:29) *
...думаю вообще отказаться от 3- кратной процедуры калибровки чувствительности от температуры, оставить только коррекцию нулей (на компе написана прога которая записывает массив данных с 6 датчиков, потом самостоятельно выбирает 5 точек и 7 коэффициентов поправок smile.gif , а то блин по 2 часа на на всю калибровку/настройку уходит...
А как Вы интегрировать угловые скорости собираетесь, если чувствительность гироскопов не откалибрована?
NickNich
Цитата(Serj78 @ Feb 6 2007, 22:32) *
Это приспособление весьма тривиально и сделано ну очень просто всего за полчасаsmile.gif, точность установки - примерно 0.2 градуса, погрешность перпендикулярности плат ИНС примерно такая же,

Погрешность установки плат 0.2 градуса - это очень серьезная цифра, означающая отклонение платы от посадочной поверхности не более 35*sin(0,2) = 0,12мм. Круто...

Погрешности сборки микрогироскопа в датащите не написано, но для АналогДивайс акселерометра погрешность установки оси чувсвтительности при сборке - около 1 градуса. Еще есть угловая погрешность монтажа микросхемы на плате - там все совсем грустно...

Вот на чем Ваши коллеги из ЛЭТИ калибруются. Стол одноосный, но с дополнительным поворотным фиксатором.
Serj78
погрешность сборки плат 0.2 градуса- это потому что дюралевое цельнофпезерованное приспособление (уголок с пазами) в котором они фиксируются при сборке сделано с такой точностью smile.gif на самом деле погрешность установки бга корпусов на мой взгляд действительно, градус или больше sad.gif. но я ко всем этим установкам отношусь не очень щепетильно- реально в динамике уходы все равно велики, погрешности тоже в несколько раз больше установки углов...

Поэтому когда текнол утверждает что у них 0.3 градуса точность измерения углов- ну, что ж очень здорово, а почему тогда маршрут такой кривой? wink.gif мерять точно еще означает точно рулить smile.gif (да и самолет на котором наполовину все держится на скотче и винт задом наперед стоит- и это на выставке! вызывает некоторые сомнения ;-) )

в ЛЭТИ подход исследовательский, молодцы, особенно про исследование распространения радиоволн мне понравилось... погрешность аксерометров мы не измеряли, доверились даташитам ... только точку 45 градусов один раз померяли- в полградуса (дискретность ацп) попали и ладно. А вот гироскопы после неудачных опытов с мюратой исследовали придирчиво smile.gif
Mirabella
Цитата(NickNich @ Mar 30 2006, 08:00) *
[
Книг по этой теме тоже море. Но другое. Есть даже пересечение этих морей, в области гиростабилизации. Т.к. у вас нет поворотной гироплатформы, то связка ДУС и акселерометров (ещё их называют ДЛУ) делается вычислительно. Т.е. система получается бесплатформенная.



Прошу прощения за дилетантский вопрос:

А можно ли стабилизировать платформу (поддерживаемую несколькими несущими винтами)
без гиростабилизации, только на основе информации от многоканального высотомера (4...6 каналов с точностью в ед. см)?
NickNich
Цитата(Mirabella @ Feb 12 2007, 21:48) *
Прошу прощения за дилетантский вопрос:

А можно ли стабилизировать платформу (поддерживаемую несколькими несущими винтами)
без гиростабилизации, только на основе информации от многоканального высотомера (4...6 каналов с точностью в ед. см)?


Можно, если высотомер не барометрический - ветер подует и платформа закачается smile.gif
И нужны определенные ограничения, т.к. в случае чистого высотомера курсовая информация не доступна и платформа может стабилизироваться только относительно плоскости нулевой высоты (т.е. стабилизируются крен и тангаж).

Сейчас это модное и бурно развивающееся направление - определение пространсвтенной ориентации (а отсюда - один шаг до пространственной стабилизации) на основе мноканального (многоантенного) приемника GPS. 3-4 канала и точности - единицы сантиметров. Т.е. все почти как у Вас, но уже работает и серийно выпускается...
Mirabella
Цитата(NickNich @ Feb 13 2007, 12:10) *
Цитата(Mirabella @ Feb 12 2007, 21:48) *

Прошу прощения за дилетантский вопрос:

А можно ли стабилизировать платформу (поддерживаемую несколькими несущими винтами)
без гиростабилизации, только на основе информации от многоканального высотомера (4...6 каналов с точностью в ед. см)?


Можно, если высотомер не барометрический - ветер подует и платформа закачается smile.gif
И нужны определенные ограничения, т.к. в случае чистого высотомера курсовая информация не доступна и платформа может стабилизироваться только относительно плоскости нулевой высоты (т.е. стабилизируются крен и тангаж).

Сейчас это модное и бурно развивающееся направление - определение пространсвтенной ориентации (а отсюда - один шаг до пространственной стабилизации) на основе мноканального (многоантенного) приемника GPS. 3-4 канала и точности - единицы сантиметров. Т.е. все почти как у Вас, но уже работает и серийно выпускается...


Вот как раз "пространственная ориентация" совсем не нужна. "Процесс" осуществляется в пределах прямой видимости.
Высотомер,естественно, радиолокационный. Курсовая информация доступна - для этого есть радиодальномер, так-же многоканальный.
Вопрос пока чисто теоретический: можно ли принципиально обойтись без гироскопов, понимаемых в виде вращающегося ротора с соответствующими "прибамбасами"?
Еще раз: интересует только исключительно стабилизация.....
Можете подсказать литературу по этому поводу?
NickNich
Цитата(Mirabella @ Feb 13 2007, 13:02) *
Вот как раз "пространственная ориентация" совсем не нужна. "Процесс" осуществляется в пределах прямой видимости.

Как раз "пространственная ориентация" просто необходима. В замкнутой системе регулирования (система стабилизации - как раз такая) должен быть датчик регулируемой величины. Процесс стабилизации (любой) состоит из двух этапов - измерения отклонения стабилизируемого параметра от заданной величины (т.е. определение пространсвтенной ориентации) и устранение этого отклонения (т.е. механический разворот платформы для уменьшения ошибки). Поэтому в каком-то виде пространсвтенную ориентацию определять придется. Для системы с несколькими высотомерами, размещенными в различных точках платформы (не пишу про ширину диаграммы направленнойсти антенн и прочие частности smile.gif) эта задача решается чисто геометрически. Дальше - разность между измеренным и заданным значением и на привод стабилизатора.

Цитата(Mirabella @ Feb 13 2007, 13:02) *
Вопрос пока чисто теоретический: можно ли принципиально обойтись без гироскопов, понимаемых в виде вращающегося ротора с соответствующими "прибамбасами"?

Принципиально обойти можно. Можно использовать чисто дальномерные методы, вроде предложенных Вами. Можно использовать датчики наклона, вроде уже обсуждавшихся в этой ветке.

Цитата(Mirabella @ Feb 13 2007, 13:02) *
Можете подсказать литературу по этому поводу?

На вскидку по этому поводу полноценной литературы подсказать не могу. Могу отослать только к отдельным главам в книгах и единичным статьям.
Dars
Здраствуйте. Подошел вплотную к созданию печатной платы, потму возник ряд вопросов. Буду благодарен любой помощи.

1) Не могу понять как правильно подключать adxrs300(http://www.analog.com/UploadedFiles/Data_Sheets/ADXRS300.pdf). В документации на странице 5 нарисован вид снизу, на каждой стороне корпуса два ряда шариков, 3 шарика расположены ближе к центру потом идет ряд из 5 шариков. Вот тут пример разводки гироскопа http://www.dprg.org/projects/2003-01a/gyro-pcb2-big.jpg . На рисунке отчетливо видно что "внутренние" 3 шарика соединены с внешними. НО! В документации об этом ни слова. там в примерах используеться только внешний ряд шариков(те что по 5 штук с каждой стороны),а внутренние как бы не функциональные. Соответственно возникает вопрос,стоит ли соединять эти три шарика с каждой стороны с внешним рядом так как показано на картинке или вообще ни к чему их не подключать?(например соединять на плате 6D с 7D, 6A c 7B, 6C c 7C) Объяснил как смог. жду ответа)

2)Мне необходимо будет

а)снимать данные с гироскопа с помощью внешнего АЦП,например по SPI.
б) декодировать ШИМ сигнал с акселлерометра adxl202,чтобы узнать угол отклонения.
в) отправлять по SPI данные второму микроконтроллеру который управляет двигателями чтобы тот подавал на них необходимый мне шим и получать от него же данные с энкодеров.
г)выводить на ЖК какую нибудь информацию.
д)общаться с компьютером по ком порту ИЛИ по CAN шине с другими устройствами.
е)считать математику для стабилизации положения( получая данные с датчиков высчитывать что подавать на двигатель и слать это второму микроконтроллеру,который управляет двигателями.

Хватит ли мне производительности AT90CAN128 для решения всех этих задач? Двигателями с энкодерами будет управлять второй контроллер который по SPI будет говорить AT90CAN128 показания с энкодеров и подавать нужный ШИМ.

3)Меня интересует помехозащищенность. На плате помимо двух микроконтроллеров будут стоять два драйвера, двух двигателей http://www.letz.ru/production/motoreductor/ собранные на ir2104. Не будут ли помехи мешать работе датчиков? Можно ли собрать и двигатели и датчики на одной плате? или стоит драйвер двигателей с энкодерами собрать на другой и подключить к плате с датчиками по CAN?

4)Необходимо будет где то впаять bga32. Нашел вот это http://www.fasteko.ru/manufacturing/montage/smt/bga/ . Я так понимаю к ним можно прийти с платой и микросхемой и они мне за 27$ ее впаяют???? Кто знает скажите, а то никогда не пользовался такими услугами.
Пока все.Очень интересуют ответы на эти вопросы,буду оч благодарен за помощь студенту a14.gif
Dars
ок.если никто отвечать не собираеться, то хоть напишите как паять гиросокоп. как на схеме http://www.dprg.org/projects/2003-01a/gyro-pcb2-big.jpg внутренний ряд соединять с внешним или внутренний ряд НЕ соединять с внешним так как он вроде как его дублирует????Жалко будет денег если не правильно сделаю..
Serj78
ну внимательно почитайте даташит! ножки на внутреннем ряду и внешнем дублированы( прозвоните тестером, если не верите smile.gif ) соединять или нет- как хочется. я соединял smile.gif
Dars
Цитата(Serj78 @ Apr 11 2007, 20:34) *
ну внимательно почитайте даташит! ножки на внутреннем ряду и внешнем дублированы( прозвоните тестером, если не верите smile.gif ) соединять или нет- как хочется. я соединял smile.gif


А ацп какой использовали для обработки?
Zazou
Очень долго пытаюсь разобраться, но не могу понять зачем в SEGWAY используются три гироскопа для измерений "pitch", "roll" и "yaw". Он же падает всегда в одной плоскоти, и измерять углы он тоже по идее должен в одной плоскости- плоскости падения??Объясните пжлста кому не сложно.
А то я всегда думал чтобы сделать балансирующего робота, а-ля Segway, который смог бы ездить(ну и поворачиваться) по реальной земле с ее горками и наклонами, а не только по паркету, достаточно измерений углов в одной плоскости, а почитав про сегвэй получается, что нужно три оси измерять... wacko.gif
Different
Интересный проект: http://www.parallax.com/html_pages/resourc...ps/app_bway.asp

Еще очень интересный проект, но уже на 8-ядерном процессоре Propeller P8X32A: http://www.parallax.com/dl/docs/article/RO...alancingBot.pdf

Обсуждение на форуме робота PEKBot и исходники для P8X32A: http://forums.parallax.com/forums/default....=1&m=174962
alexQ
DARS,
какой DSP будете использовать для матричных вычислений, в смысле калмана с хорошей скоростью реализовывать?

АЦП, декодирование шимов и рулеж моторов это мне понятно, а считать чем будете?
Dars
Цитата(alexQ @ Oct 31 2007, 13:02) *
DARS,
какой DSP будете использовать для матричных вычислений, в смысле калмана с хорошей скоростью реализовывать?

АЦП, декодирование шимов и рулеж моторов это мне понятно, а считать чем будете?


Уже есть платка с TMS320F2806.+ датчики. 100MHz Должно хватить.
adxl202 +adxrs300 не понравились совсем. Сейчас в пути adis16201+adis16255
Dars
Описался. TMS320F2812 - 150Mhz. Будет считать три оси.Три гироскопа + три акселлерометра.
pokos
Цитата(Zazou @ Aug 24 2007, 10:41) *
Объясните пжлста кому не сложно.

Дык он окромя прямолинейного движения по ровной поверхности ещё и поворачивать должен, и по колдобинам уметь.
InvisibleFed
Заинтересовался вопросом. Извиняюсь за оффтоп, никто не подскажет где можно приобрести LIS344AL? Нужно в штучках - себе в удовольствие. Как он для подобных задач (балансирующий робот)?
xapc
Задумываюсь над постройкой такой штуки. Пока кратко изложил свои мысли здесь Инерциальная система получилась 3-х осевой гироскоп и 3-х осевой акселрометр. Самое сложное это обработка показаний датчиков .
KP1446XK1
Кому-нибудь удалось доделать?
Вот интересная реализация http://www.youtube.com/watch?v=dIdVl3c7HL8
KP1446XK1
В продолжение данной темы http://electronix.ru/forum/index.php?showtopic=87118
Ее почему-то посчитали беспредметной и недостойной разработчиков, а жаль.
Пришлось делать самому, хотя такие "профессионалы" уж сильно зажрались и правда не достойны данной темы... за одну только прошивку просили 60к - смешно!
Такое ощущение, что они действительно разрабатывают только космические корабли для забора лунного грунта. И на такие смешные проекты у них нет времени.

А по делу - вот что получилось
http://www.youtube.com/watch?v=hNJiYKdNguY

За основу была взята Arduino Uno + Motor Shield 2A от DFRobot
Модуль IMU с аналоговыми датчиками - 2х осевой гироскоп IDG500 и 3х осевой акселерометр ADXL335
Заказывал модуль из Америки со sparkfun'а - доставка FedEx'ом шла 4 дня до Московской области. Стоимость доставки не маленькая - 1200 руб., но зато быстро.
Моторы 9V, 150-200 об\мин под нагрузкой, до 300 об\мин без нагрузки.
Аккумуляторная батарея - 8.4V 1500mAh
Рама - оргстекло + штанга с резьбой М5 метровая... была распилена на 4 части.
Оргстекло вырезалось и сверлилось на фрезерном станке.
Microwatt
Ну, и? что дальше?
KP1446XK1
А дальше то, что если кому-то понадобится помощь в этом направлении, то с радостью помогу и подскажу, а не буду из себя строить не пойми что и рассуждать про то, как космические корабли бороздят просторы вселенной...
Microwatt
Угу. космические корабли строить- так, забава.
Кстати, судьбу первого конструктора сегвея (вот такого робота) знаете? Учтите при разработке.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.