Как стоит человек?

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: Как стоит человек?

Сообщение =DeaD= » 20 июл 2010, 16:41

Погоди, повесили авоську - это нифига не простой объект :)

Добавлено спустя 59 секунд:
ты еще сегвей резинками к поверхности и условно включающимися реактивными двигателями снабди тогда, чтобы напрочь убить задачу :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Как стоит человек?

Сообщение Michael_K » 20 июл 2010, 16:43

Да... авоську с пивом я могу снять или склон наклонить - сигвей не должен упасть :)

Добавлено спустя 25 секунд:
Окей. Поставили ящик с кирпичами
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Как стоит человек?

Сообщение avr123.nm.ru » 20 июл 2010, 16:48

Michael_K писал(а):Сигвей, для начала :)
6 DOF IMU почти.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Как стоит человек?

Сообщение =DeaD= » 20 июл 2010, 16:51

Давай не так - давай "жестко прикрутили к сегвею в неожиданные места неожиданные грузы или потом сняли их" - пойдёт?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Как стоит человек?

Сообщение Michael_K » 20 июл 2010, 16:55

Ага... ящик сам по сигвею не ползает :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Как стоит человек?

Сообщение Сергей » 20 июл 2010, 16:57

Michael_K писал(а):Сергей, на первой странице этой темы вы привели свою мат-модель.

1. Ваша модель (или "построение модели", если вам так больше нравится)
помогли вам узнать, какие датчики необходимы для ее стабилизации?


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

Michael_K писал(а):2. Вы пишете: "В качестве параметров выступали масса звеньев, длины, углы допустимые".
Что бы осталось от вашей модели, если бы эти данные были неизвестны?


Странный вопрос. Но в вашем случае - в качестве параметров системы выступают параметры, например, двигателей. Зная его параметры, можно определить, с определенной точностью, какой груз он тянет.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Как стоит человек?

Сообщение boez » 20 июл 2010, 17:12

Dead, ну как я понял автора - минимальной моделью сичтается одномерный балансир. То есть штуковина на двух колесах, находящихся на одной оси (умеет ездить вперед-назад, поворачивать не умеет). Ось приводится в движение единственным мотором. ЦТ системы выше этой оси.

Ну а требования - вот:
Michael_K писал(а):Еще раз - ставим задачу сделать балансера, который сможет балансировать
1. Заведомо не зная собственных масс, моментов, размеров, углов.
(то есть, например, сможет взять в руку кирпич, который изменит положение ЦТ, массу, моменты инерции)
2. На наклонной плоскости.
3. Учитывая неизвестные погрешности и нелинейность датчиков и актуаторов.


ИМХО, завышенные требования. Я бы ограничил их так:

1. Известны пределы изменения механических параметров (положения ЦТ, момента инерции, вроде для одномерного хватит этого) и максимальные скорости их изменения. Точные значения параметров неизвестны.
2. Максимальный наклон плоскости известен, реальный - неизвестен.
3. Погрешности датчиков и актуаторов ограничены известными величинами.

Тогда что-то можно сделать. По пункту 1 - этому удовлетворяет конструкция с известной геометрией и заданной максимальной грузоподъемностью. 2 - тут вообще-то есть один момент, не важный для гипотетического балансира, но важный для реального - если колеса немного неодинаковы, он повернет и колеса окажутся не на одной высоте, что может привести к опрокидыванию балансера вбок. Но это уже отдельные рабочие моменты, плюс при переходе к балансеру с двумя управляемыми колесами эта проблема уйдет.

По датчикам - система имеет 2 степени свободы (движение и наклон) - нужно, ИМХО, 2 датчика. В качестве датчика движения подойдет энкодер, в качестве датчика наклона - одноосный горизонтальный акселерометр. Но показания этих датчиков сильно перемешаны (аксель меряет сумму проекции силы тяжести и собственно ускорения системы по горизонтали, энкодер - разность углов поворота колес и наклона корпуса), чтобы вычленить реальные величины, нужно будет из акселя вычитать вторую производную энкодера, а из энкодера - показания акселя, с соотв. коэффициентами. Ну и вторая производная от сигнала энкодера - это не слишком красивая штука, а если тиков на оборот у него мало - то просто жопа :). А, еще это все без проскальзываний.

Гироскоп (ДУС) явно добавит системе точности, т.к. даст отдельную быструю оценку угла наклона без примеси ускорения(а от акселя тогда потребуется только медленная ее коррекция).

Ну а адаптация этого всего под меняющиеся условия - это отдельная песня, но касается она по идее только системы управления, датчики все равно будут те же.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Как стоит человек?

Сообщение =DeaD= » 20 июл 2010, 17:17

Так, давайте поймём:
1. Задача у нас - попасть в состояние покоя.
2. Неизвестно положение центра тяжести;
3. Неизвестен наклон поверхности;

ИМХО:
1. Состояние покоя - когда центр тяжести будет где-то над пятном касания;
2. В этом состоянии двигателям надо будет гасить микроколебания + поддерживать колёса от прокручивания из-за скатывания объекта вниз.

Добавлено спустя 1 минуту 38 секунд:
Да, я тоже так понял, вот и можно автору создать типовой Framework на базе какого-нибудь математического симулятора и устроить конкурс на лучший алгоритм стабилизирующий произвольную конструкцию :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Как стоит человек?

Сообщение boez » 20 июл 2010, 17:28

Ну только наверное не просто попасть в состояние покоя, а поддерживать заданную (свыше, оператором, с ПДУ, еще как-то) скорость Vref (состояние покоя - частный случай при Vref=0)
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Как стоит человек?

Сообщение =DeaD= » 20 июл 2010, 17:39

Попасть и удерживать объект управления в eps-окрестности состояния покоя :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Как стоит человек?

Сообщение Michael_K » 20 июл 2010, 17:46

boez писал(а):поддерживать заданную скорость...

Имхо, непринципиальное различие... если сможет стоять на горе, то и ездить как-нибудь научится :)
Ну и потом скорость задавать, позицию или еще что (ну скажем мощность на колесах)
- это отдельный вопрос - от конечной цели зависит...
скорость, по-моему, достаточно редко сама по себе полезна...
В данном случае это выходит за рамки задачи. Пока только условно "стоять"
(в кавычках ибо колесами крутить все же придется...)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Как стоит человек?

Сообщение Алексей » 20 июл 2010, 17:55

Michael_K писал(а):Имхо, непринципиальное различие... если сможет стоять на горе, то и ездить как-нибудь научится

Хм. С учетом того, что Вы имеете опыт построения балансеров, то весьма странное заявление. ИМХО, заставить его двигаться в заданном направлении, задача в разы более сложная, чем простое удержание равновесия.
Алексей
 
Сообщения: 152
Зарегистрирован: 12 дек 2009, 23:44
Откуда: Киев
ФИО: Алексей Диомидов

Re: Как стоит человек?

Сообщение Michael_K » 20 июл 2010, 18:00

Вовсе нет... ну по крайней мере, у меня это ПОСЛЕ "стояния" получалось очень просто.
В данном случае - не суть.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Как стоит человек?

Сообщение boez » 20 июл 2010, 18:06

Алексей писал(а):Хм. С учетом того, что Вы имеете опыт построения балансеров, то весьма странное заявление. ИМХО, заставить его двигаться в заданном направлении, задача в разы более сложная, чем простое удержание равновесия.

А это почему? ИМХО, поддерживать ненулевую скорость ничем не сложнее, чем нулевую.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Как стоит человек?

Сообщение Michael_K » 20 июл 2010, 18:15

угу... именно так - искусственно добавляешь постоянное возмущение и вуаля...
(примерно так - на самом деле зависит от реализации - там не всегда скорость в прямом виде участвует,
но в любом случае не очень сложно)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Пред.След.

Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 40