roboforum.ru

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

Python на STM32

Re: Python на STM32

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

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

Будет скоро 10 одинаковых тележек для AVM-навигации и ROS, надо найти 10 человек готовых уделять 10 часов в неделю :) Кстати, я не понял, а нафига реальные тележки? Разве ROS не крут тем, что в нём есть симулятор и можно первичный отбор такой десятки проводить без железа? Или я что-то упускаю? Нельзя разве всем 10 взять одинаковую модель и гонять?

Добавлено спустя 35 секунд:
Да простит нас EdGull и svp, завтра почищу тему :)

Re: Python на STM32

svp » 08 ноя 2011, 23:27

Да. Тележки напервом этапе нужны только для подстёгивания энтузиазма=) на самом деле там и до железок писать и писать.

Я тут по диагонали про РОС полистал...
На самом деле не обязательно делать телегу автономной. Нужна просто легкая дешевая повторяемая платформа, которая имеет связь с компом (последовательный порт сойдёт). Где этот комп стоит -- дело третье. Ось работает на компе, рулит тележкой по радиолинку (wifi, блютус, зигби) и снимает телеметрию.
Дело в том, что сама РОС большой частью написана на питоне.
Если поднять питон ещё и нативно на простеньком контроллере телеги, то несложную функциональность можно переносить и на неё прямо тем же кодом, каким она работает из под РОС.
Понятно изложил? И волки сыты и овцы съели.

Re: Python на STM32

EdGull » 08 ноя 2011, 23:29

1. я еще не отправил, т.к. тупо болею, но завтра уже вроде как собираюсь выходить на работу, так что на днях отправлю.
2. тележки это уже совсем не интересно, зря я по вашему наращивал больше года производственную базу? Мало того, на полном серьезе разрабатываю план покупки автоматического расстановщика smd.
3. у меня уже пару месяцев трудится samsung navibot
4. так что совсем не долго осталось до производства роботов-пылесосов...

Re: Python на STM32

svp » 08 ноя 2011, 23:31

Короче надо, наверно, РОС в отдельную ветку обсуждать. В этой надо обсуждать возможность и целесообразность питона на СТМ-е.
И целесообразность эта выяснится после бенчмарков и внмательного выкуривания дрокументации по этому чертовому проекту питон-на-чипе.
Есть админы неленивые, чтобы выпилить РОС и все абстрактные рассуждения из этой темы в отдельную?
А-то попадается интересная вроде темка, а там 100500 страниц не по теме.

Re: Python на STM32

Grem » 08 ноя 2011, 23:38

=DeaD= писал(а):Нельзя разве всем 10 взять одинаковую модель и гонять?

Что значит "гонять"? Я конечно не так глубоко RViz'ом симулировал, но эмулировать датчики - та еще задача :pardon:
4. так что совсем не долго осталось до производства роботов-пылесосов...

Если ценник не слишком будет, то можно будет замутить на них TurtleBot. Это получше тележек.
Изображение

Добавлено спустя 32 секунды:
Есть админы неленивые, чтобы выпилить РОС и все абстрактные рассуждения из этой темы в отдельную?

Не, не слышал. :D

Re: Python на STM32

Strijar » 09 ноя 2011, 09:54

Давно пробовал изучать python - пробовал его даже на PalmOS ;) Сейчас много пишу на Lua и по опыту знаю - это самый быстрый скриптовый язык. Решил сравнить

Python-2.6 - 7.7 сек
Код: Выделить всёРазвернуть
a, b = 0, 1
ar = range(2)
i = 0
while i < 300000:
  a, b = b, a+b
  i = i + 1
  ar[0], ar[1] = a, b


Lua-5.1 - 0.26 сек!
Код: Выделить всёРазвернуть
a, b = 0, 1
ar = {}

for i = 0, 300000 do
  a, b = b, a+b
  ar[0], ar[1] = a, b
end


Для меня python пока не приемлем! ;)

Re: Python на STM32

Vooon » 09 ноя 2011, 10:59

Забавно. Язык != реализация. CPython не быстр, но и смотреть на математику в скриптовых языках...

А вот на си тратится 0.005 с!
Код: Выделить всёРазвернуть
int main(void)
{
   int a, b, t, i;
   int ar[2];

   for (i = 0; i < 300000; i++) {
      t = a;
      a = b;
      b = t + b;
      ar[0] = a;
      ar[1] = b;
   }

   return 0;
}


Так что маргинальный луа мне не подходит! :)

Добавлено спустя 5 минут 38 секунд:
Вообще я думал над луа или питоном в контроллерах, пришел к выводу что они там не нужны.
Позже была идея сделать интерпретатор LLVM IR кода, но посчитал слишком затратным. Да и на STM32F1 (особенно на тормозах Value Line) оно не будет быстро. На F4 думаю картина будет лучше.

На мой взгляд наиболее удобно сделано у ардуины.

Re: Python на STM32

=DeaD= » 09 ноя 2011, 11:25

Grem писал(а):Если ценник не слишком будет, то можно будет замутить на них TurtleBot. Это получше тележек.

Кстати, чем получше? Возможностью поставить ноут, который более производительный? Или возможностью выполнять практическую полезную работу?

Re: Python на STM32

Strijar » 09 ноя 2011, 11:54

Vooon писал(а):Забавно. Язык != реализация. CPython не быстр, но и смотреть на математику в скриптовых языках...


Где же тут математика - работа с данными, в данном случае массив. А сравнения с Си не корректно - он не скриптовый. Тогда уж сравнивать с PicoC - так я сравнивал. Тоже проигрывает Lua и сильно ;) Я к тому - что если нужен скриптовый язык - то пока достойных альтернатив Lua я не вижу. Очень близкок в этому Dao, но он медленней, хотя всего в 1.5 раза ;)

Добавлено спустя 7 минут 14 секунд:
Vooon писал(а):Вообще я думал над луа или питоном в контроллерах, пришел к выводу что они там не нужны.


Они нужны или не нужны не в микроконтроллерах - а в задачах которые они решают ;) Например разве плохо сделать учебного робота программа на котором меняется прямо на месте? Без компиляции и проч "мучений с программатором". Например есть игровые манипуляторы с встроенной поддержкой Lua - где на одно нажатие кнопки или сочетание кнопок программируется последовательность нажатий или движений мышкой. И делается все просто и изящно! А уж про оконный менеджер Ion функционал которого определяется Lua скриптами - так я вообще молчу ;)

Re: Python на STM32

svp » 09 ноя 2011, 12:10

Strijar, для перечисленных здесь вами задач питон подходит лучше. Производительность особая не нужна, а изучать полноценный язык полезнее. Луа, при всём моём уважении, всё-таки вспомогательный инструмент. Она редко выступает основным языком написания приложений.

Re: Python на STM32

Виталий » 09 ноя 2011, 13:23

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

Re: Python на STM32

svp » 09 ноя 2011, 13:34

Виталий писал(а):выделение из языка Python подмножества которое разбирается за LL(1), и написание компилятора этого подмножества в трехадресный код.

Что-то это вообще велосипед какой-то. Ни тебе совместимости с библиотеками, ни тебе всех прелестей интроспекции, замыканий и прочих штук. Какой смысл было питон вообще брать? А если питон, то почему JIT не прикрутили? Уж ява-машину и не на таких игрушках запускали. Я ж говорил, на чип-картах явамашина крутится.
А ещё, не проще ли компилировать байткод в машинный?

Re: Python на STM32

Виталий » 09 ноя 2011, 13:52

Что-то это вообще велосипед какой-то.

Типа того.

Ни тебе совместимости с библиотеками

Совместимости нет и у PyMite и почти наверняка не будет ни у какой другой реализации не использующей операционную систему.

ни тебе всех прелестей интроспекции

Это не зависит от языка, скорее от среды исполнения. На мой взгляд интроспекция нужна в очень ограниченном виде.

замыканий и прочих штук.

Замыкания только именованными функциями.

Какой смысл было питон вообще брать?

Из за грамматики.

Re: Python на STM32

Strijar » 09 ноя 2011, 14:04

svp писал(а):Она редко выступает основным языком написания приложений.


Это зависит от многих факторов. Я на работе пишу проекты 95% которых на Lua - 5% это обертки для обращения к драйверам. И все это работает на 200Mhz ARM и не плохо работает. В данном случае python бы не справился вообще - ни как основной, ни как вспомогательный.

Re: Python на STM32

svp » 09 ноя 2011, 14:17

Strijar писал(а):Это зависит от многих факторов. Я на работе пишу проекты 95% которых на Lua - 5% это обертки для обращения к драйверам. И все это работает на 200Mhz ARM и не плохо работает. В данном случае python бы не справился вообще - ни как основной, ни как вспомогательный.

Я не о том. Ваша задача довольно редка сама по себе. Я понимаю, бывает всякое, но подавляющее большинство задач -- это десктопные приложения, веб-сервисы и всякие консольные скрипты. "Я например" -- это не показатель, и он никак не связан с понятием "большинство".
Если делается некий учебный стенд, как вы говорили, для новичков, и не ставится цель изучения именно Луа, то использование Питона, IMHO, более оправдано ввиду более широкой применимости во всех сферах. Там, где требуется высокое быстродействие, как правило нужен ещё и опыт в программировании, а также знание в других более узких областях, как ваша. Обёртки для драйверов -- это весьма специфично и непросто. Не составит труда такому программисту разобраться с Луа за полч аса вдумчивого чтения мануалов. Зачем стенды?


cron
Rambler\'s Top100 Mail.ru counter