roboforum.ru

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

Python на STM32

ARM7, ARM9, ARM11 etc.

Re: Python на STM32

Сообщение =DeaD= » 08 ноя 2011, 21:31

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

Re: Python на STM32

Сообщение dccharacter » 08 ноя 2011, 21:32

Так, вот ты, Дед, не ругайся, а то я модераторов позову.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Python на STM32

Сообщение =DeaD= » 08 ноя 2011, 21:46

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

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

Re: Python на STM32

Сообщение Grem » 08 ноя 2011, 21:52

В "существенных задачах" ROS как никогда к стати :)
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

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%! Переход на высокоуровневый язык с введением уровней абстракции -- это лишь полумера. В идеале для серьёзных случаев эти слои долдны быть гораздо более изолированы.
Люди, скажем, не думают о дыхании. Они просто дышат автоматически, хотя могут влиять на скорость дызания (взаимодействие между уровнями). На скорость сердцебиения влиять сложнее. Более автономный механизм, так как боле еответственный. Изоляция уровней нужна чтобы, скажем, из-за глюка в распознавании речи на упала система жизнеобеспечения.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение Grem » 08 ноя 2011, 22:07

Ну вот, наконец то выяснилось что вы ходите. Вам больше по душе писать для арм так?
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 22:36

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

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

Так что с любого уровня абстракции можно выйти на ещё более космический уровень=). Люблю фантазировать на такие темы, и с удовольствием бы програмировал реального робота, если бы не прищлось отвлекаться на всякие прерывания, экономию памяти, ШИМы и прочую ерунду. Есть масса гораздо более сложных интересных и полезных вещей.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение =DeaD= » 08 ноя 2011, 22:44

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

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

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

Re: Python на STM32

Сообщение Grem » 08 ноя 2011, 22:55

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

Добавлено спустя 44 секунды:
А если нет, то я готов свою дискавери отправить, лишь бы увидеть всё, что он описал :D
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Python на STM32

Сообщение =DeaD= » 08 ноя 2011, 22:58

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

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

Re: Python на STM32

Сообщение Grem » 08 ноя 2011, 23:00

А кого мы догонять собрались?
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Python на STM32

Сообщение =DeaD= » 08 ноя 2011, 23:03

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

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

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 23:06

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

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

Согласен.
Но есть ли целесообразность заводить питон на stm32 будет зависить от трудоёмкости этого меролприятия и от тех самых бенчмарков. Если не всё так плохо, как кажется, то почему бы и нет?
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение =DeaD= » 08 ноя 2011, 23:10

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

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

Re: Python на STM32

Сообщение Grem » 08 ноя 2011, 23:13

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

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

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

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

Эд любит васик, а его под stm'ы не видать :)
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Пред.След.

Вернуться в ARM

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13