roboforum.ru

Технический форум по робототехнике.

Python на STM32

Re: Python на STM32

=DeaD= » 08 ноя 2011, 21:31

инкапсуляция однако :)

Re: Python на STM32

dccharacter » 08 ноя 2011, 21:32

Так, вот ты, Дед, не ругайся, а то я модераторов позову.

Re: Python на STM32

=DeaD= » 08 ноя 2011, 21:46

Я тебя тогда вообще полиморфирую :ROFL:

Добавлено спустя 2 минуты 24 секунды:
А вообще ИМХО нафиг не надо эту объектность по большому счету на роботе, пока оно не дорастет до существенной сложности задач, типа девайсов уровня Android'а. А рядом с ними на низких контроллерах должны стоять задачи низкого уровня без всяких этих наворотов.

Re: Python на STM32

Grem » 08 ноя 2011, 21:52

В "существенных задачах" ROS как никогда к стати :)

Re: Python на STM32

svp » 08 ноя 2011, 22:01

dccharacter писал(а):от регистров быстро уходишь. А новый уровень абстракции ты в своем примере не вводишь. Я не вижу разницы между
value.increment()
и increment(value)

Разница в том, что тебе этот value надо потом куда-то поместить и перед этим откуда-то извлечь. Ты уж пиши полностью.
self.headMotor.angle.increment(-10)
Внутри происходит подписка на событие срабатывания таймера с интервалом self.headMotor.min_interval_time и создаётся обработчик этого события, который пуляет единичку в порт self.headMotor.channel.
Таким образом мы из текущего кода выкинули получение и упоминание всех этих дополнительных данных, и всех этих дополнительных телодвижений.

dccharacter писал(а):А вообще ИМХО нафиг не надо эту объектность по большому счету на роботе, пока оно не дорастет до существенной сложности задач, типа девайсов уровня Android'а. А рядом с ними на низких контроллерах должны стоять задачи низкого уровня без всяких этих наворотов.

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

Добавлено спустя 6 минут 33 секунды:
Grem писал(а):В "существенных задачах" ROS как никогда к стати :)

Согласен на 100%! Переход на высокоуровневый язык с введением уровней абстракции -- это лишь полумера. В идеале для серьёзных случаев эти слои долдны быть гораздо более изолированы.
Люди, скажем, не думают о дыхании. Они просто дышат автоматически, хотя могут влиять на скорость дызания (взаимодействие между уровнями). На скорость сердцебиения влиять сложнее. Более автономный механизм, так как боле еответственный. Изоляция уровней нужна чтобы, скажем, из-за глюка в распознавании речи на упала система жизнеобеспечения.

Re: Python на STM32

Grem » 08 ноя 2011, 22:07

Ну вот, наконец то выяснилось что вы ходите. Вам больше по душе писать для арм так?

Re: Python на STM32

svp » 08 ноя 2011, 22:36

Grem писал(а):Вам больше по душе писать для арм так?

Нну... я как правило загибаю более абстрактные абстракции=) Но, в общем, почему бы и нет? Хотя со временем я бы предпочел выделить у робота несколько мотивационных слоёв так, чтобы в свободное от выполнения четких команд время робот мог действовать в соответствии с нечеткой программой.
Например, основных моделей поведения не много: искать зарядку, заряжаться, пылесосить, ждать (прятаться, не мешаться, спать?), двигаться к месту выполнения работ. Выбор этих моделей определяется исходя из текущего состояния. Это в сущности можно представить как простой конечный автомат. Но если ввести понятие нечеткой логики, то все эти остояния, можно понимать как набор взвешенных "желаний", и степень (вес) каждого желания вычисляется по своей формуле. Чтобы не пришлось составлять и отлаживать сложные эмпирические формулы, можно просто задать графики:
  • желание заряжаться от уровня заряда батареи,
  • желание заряжаться от расстояния до зарадного устройства (я, когда отхожу от холодильника километров на 40, всегда испытываю повышение аппетита=),
  • желание убирать от времени суток,
  • желаение прятаться от времени суток,
  • желание прятаться от уровня или количества звуковых раздражителей (чтобы можно было прогнать пылесос из комнаты),
  • и т.д.
Конкретные веса желаний вычисляются сложением этих графиков. Естественно эти графики можно завязать на систему самообучения. Например, если робот с трудом успел доехать до ЗУ, надо умножить график на 9,1. Если заряда к моменту приезда на ЗУ осталось многовато, то на 0,9. Так робот сможет подстраиваться и адаптироваться. Ему не придётся менять прошивку, когда ёмкость аккумуляторов снизится вдвое.

Так что с любого уровня абстракции можно выйти на ещё более космический уровень=). Люблю фантазировать на такие темы, и с удовольствием бы програмировал реального робота, если бы не прищлось отвлекаться на всякие прерывания, экономию памяти, ШИМы и прочую ерунду. Есть масса гораздо более сложных интересных и полезных вещей.

Re: Python на STM32

=DeaD= » 08 ноя 2011, 22:44

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

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

PS: Под хорошие статьи, позволяющие быстро освоиться в ROS лично готов выделять гранты в виде контроллеров Open Robotics с готовой прошивкой ORFA (чтобы не отвлекаться на всякие прерывания, ШИМы и прочее :)), ну или если вообще хорошие - то можно и 4WD-платформу под неттоп будет дать, если она у нас получится, ну или как минимум скидку на неё :)

Re: Python на STM32

Grem » 08 ноя 2011, 22:55

Нет, Дед, в очередь :x . Если Эд отправил дискавери, то мы тут ждем реализацию всего сказанного тов. svp.

Добавлено спустя 44 секунды:
А если нет, то я готов свою дискавери отправить, лишь бы увидеть всё, что он описал :D

Re: Python на STM32

=DeaD= » 08 ноя 2011, 22:58

Ну сделает он это под дискавери и что? Куда дальше?
Будем продолжать плестись в хвосте цивилизации с самобеглыми тележками? :)

Чтобы быстро догнать - надо осваивать передовые инструменты и опираться на них, а не писать свою маленькую ROS, на которую сил все равно не хватит, даже если всем форумом только этим и заниматься. Даже мелкософт не справился с такой задачей, а мы то куда?

Re: Python на STM32

Grem » 08 ноя 2011, 23:00

А кого мы догонять собрались?

Re: Python на STM32

=DeaD= » 08 ноя 2011, 23:03

Основную массу заграничных ВУЗов для начала :)

Там по-моему чаще чем через одного уже на ROS сидят и за счет этого кучу уже готовых решений имеют. В том числе по навигации.

Re: Python на STM32

svp » 08 ноя 2011, 23:06

Ребята, честно говоря тот факт, что придётся ковыраться с реальной платой, меня никак не радует. Все эти фьюзы, и весь этот низкийруовень..=) Надо сперва почитать про этот питон-на-чипе, потом попытаться взгромозить его на реальную плату или эмулятор и провести бенчмарки. Если они не окажутся ужасными на stm32, тогда можно что-то уже городить. Но всё равно не получится сразу перейти напитон полностью. Загрузчик, файловую систему, ядро для работы с прерываниями и таймерами, функциональность для работы с уартом и ЦАП-ом надо писать на Си, а потом делать ко всему этому высокоуровневые питоновские обёртки. Работы туева хуча и питон тут не панацея. Это чтобы не было иллюзий.

Dead писал(а):надо осваивать передовые инструменты

Согласен.
Но есть ли целесообразность заводить питон на stm32 будет зависить от трудоёмкости этого меролприятия и от тех самых бенчмарков. Если не всё так плохо, как кажется, то почему бы и нет?

Re: Python на STM32

=DeaD= » 08 ноя 2011, 23:10

svp писал(а):Если не всё так плохо, как кажется, то почему бы и нет?

Если "почему бы и нет" считать достойной целью...
Вот у EdGull'а явно есть секретная цель, чем ему это надо :)

Re: Python на STM32

Grem » 08 ноя 2011, 23:13

=DeaD= писал(а):Основную массу заграничных ВУЗов для начала :)

Там по-моему чаще чем через одного уже на ROS сидят и за счет этого кучу уже готовых решений имеют. В том числе по навигации.

Я уже где-то предлагал лайт версию освоения. Найти более-менее кучку людей, которые готовы хотя-бы 10 часов в неделю уделять ROS. Приобрести всем ОДИНАКОВЫХ "тележек" и совместно осваивать, причем каждый отвечая за "свою" область. Но подход "раздать каждому, а там посмотрим" в корне не верен.
Как я лихо любую тему превращаю в срач про ROS :D

Вот у EdGull'а явно есть секретная цель, чем ему это надо

Эд любит васик, а его под stm'ы не видать :)


Rambler\'s Top100 Mail.ru counter