roboforum.ru

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

CAN и ROS2

CAN и ROS2

Сообщение kavit » 29 апр 2016, 03:47

Добрый день.

Рассматривается вариант робота распределенной архитектуры с блоками:
  • центральный вычислительный блок (Cortex-A8/9/15, Linux, ROS2)
  • блок управления приводом А1 (STM32F4, ROS2, FreeRTOS)
  • ....
  • блок управления приводом АN (STM32F4, ROS2, FreeRTOS)

Информационную шину планируется реализовать на CAN (или CAN FD).

Вопрос 1: Кто либо использовал CAN в ROS1/ROS2?
Вопрос 2: У кого есть опыт использования CAN FD? Так ли он лучше CAN 2.0A/B? Какие могут быть "подводные камни"? То что я вижу, это увеличенный payload с 8 до 64 байт (!) и макс. пропускная способность с 1M до >1M

Детали:
Информационную шину физически можно реализовать используя CAN, Ethernet, RS-485 (другие интерфейсы пока не рассматриваются)
CAN хорош почти всем, по сравнению с Ethernet и RS-485.
Достоинства:
  • гарантированность доставки
  • арбитраж сообщений
  • "Жесткий" Realtime
  • всего 4 линии (CAN_H, CAN_L, VBUS, GND) на всех устройствах
Недостатки:
  • маленькая полезная нагрузка (8 байт)
  • низкая пропускная способность (Мах: 1Мbps ~ 100-120 мкс на 8 полезных байт)

Если вернуться к теме ROS2. В анонсах ROS2 заявляется поддержка транспорта поверх Ethernet, UART, RS485. CAN-а там не увидел.
Как вариант, нужно "положить" UDP/IP поверх CAN, вместо Ethernet. Поэтому и вопрос, может кто-либо уже реализовал подобное или начинал делать, но наткнулся на "грабли" из-за которых решение оказалось нецелесообразным.

Для ROS1 CAN тоже не очень удачно ложится, т.к. там используется TCPROS (поверх TCP), а квитирование TCP избыточно с учетом гарантированности доставки CAN.

Т.о. есть отличный физический интерфейс CAN, но, насколько я вижу, он почему-то не очень пользуется популярностью в робототехнике или я пока еще "не в теме".
kavit
 
Сообщения: 5
Зарегистрирован: 27 апр 2016, 01:34

Re: CAN и ROS2

Сообщение linvinus » 29 апр 2016, 17:43

небольшое уточнение ROS это который The Robot Operating System (ROS)?
если так, то
боюсь по поводу can вам лучше на форум по электронике обратиться, там can чаще используется.


ROS2 заявляется поддержка транспорта поверх Ethernet, UART, RS485. CAN-а там не увидел.

опять таки если это тот рос о котором я подумал, то он работает через сервисы вам нужно будет самим организовать такой сервис который преобразовывает сообщения ROS в сообщения can и обратно.

в ROS2 новый "движок" сообщений, и он пока ещё на стадии дикой разработки и судя по всему медленнее чем ROS1.
Я бы вам рекомендовал пока начать работать с ROS а через годик другой портировать на ROS2, если будет смысл.
Пока вся документация, все пакеты и драйверы написаны под ROS.

(Cortex-A8/9/15, Linux, ROS2)

а как вы планируете связать linux и can ? usb?
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: CAN и ROS2

Сообщение kavit » 29 апр 2016, 21:21

и он пока ещё на стадии дикой разработки

тоже терзают смутные сомнения. Наверное, стоит дать ему утрястись.

а как вы планируете связать linux и can ? usb?

Я не верно описал. Пока так, STMFx (UART) + Linux (UART). Но рассматриваю варианты чипов гибридной архитектуры (Cortex-A + Cortex-M). Например: VFxxx от NXP или Intel Edison + CAN-UART как конвертер физического канала. Хотя сейчас играюсь с Intel Edison - тормоз он. Ожидал большего.
kavit
 
Сообщения: 5
Зарегистрирован: 27 апр 2016, 01:34

Re: CAN и ROS2

Сообщение linvinus » 29 апр 2016, 22:30

кроме uart есть ещё голый USB HS, i2c 1Mhz,spi 25Mhz (эти три протокола часто доступны на высокопроизводительных ARM платах)
can конечно хорош в своём деле, но точно ли он вам нужен?

Но рассматриваю варианты чипов гибридной архитектуры (Cortex-A + Cortex-M). Например: VFxxx от NXP или Intel Edison + CAN-UART как конвертер физического канала.

может если вы опишите конкретную задачу понятнее будет? не ваше решение а именно задучу что в конечном итоге должно быть. если конечно это не секрет.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: CAN и ROS2

Сообщение kavit » 30 апр 2016, 00:02

Началось все с шутки. "Ты ж программист, сделай динозавра (двухногого!), чтобы возить ребенка".
У меня есть большой опыт в embedded, а вот в "динозавростроении" нулевой :)
Сначала отмахивался, понимая, что область для меня новая и трудозатратная.
Потом ради интереса стал приглядываться, что народ делает в области робототехники. Смотрится интересно. Можно сказать, что я на этапе обзора предметной области.

Т.о. входные данные (привожу ТЗ со слов):
+ динозавр двуногий наподобие тирекса с седлом
+ достаточно большой чтобы возить ребенка от x до y лет
+ должен ходить и бегать (!)
Из плюшек:
+ дым, рычание

По хорошему взять бы реализацию Atlas (https://www.youtube.com/watch?v=rVlhMGQgDkY), немножно наклонить, убрать руки, добавить седло и хвост и ... вуаля, решение готово.
kavit
 
Сообщения: 5
Зарегистрирован: 27 апр 2016, 01:34

Re: CAN и ROS2

Сообщение lorry » 30 апр 2016, 05:35

kavit писал(а):Т.о. входные данные (привожу ТЗ со слов):
+ динозавр двуногий наподобие тирекса с седлом
+ достаточно большой чтобы возить ребенка от x до y лет
+ должен ходить и бегать (!)
Из плюшек:
+ дым, рычание
По хорошему взять бы реализацию Atlas (https://www.youtube.com/watch?v=rVlhMGQgDkY), немножно наклонить, убрать руки, добавить седло и хвост и ... вуаля, решение готово.

Да не так то и вуаля!
Это вы серьезно замахнулись, не забудьте что Atlas делался в DARPA, а это контора с хорошим финансированием и крутыми спецами во всех областях. Для того чтобы создать робота, а тем более такого про которого говорите вы, мало быть программистом, нужны "прямые ручки" чтобы пилить, паять, клепать и прочие работы выполнять с железками, нужны умения и навыки работы с электроникой, нужны знания в разных областях от электрики до гидравлики, нужна масса времени свободного от основной деятельности, нужно помещение где все это будет собираться, где будет стоять оборудование для слесарных и сборочных работ, где вы без боязни потревожить отдых близких или соседей сможете спокойно сверлить, точить, стучать и пр., а самое главное нужна куча денег на всё, на эксперименты, на приобретение деталей и комплектующих, на оплату работы наемным людям, без которых вам в вашем проекте не обойтись.
Я вас не отговариваю, я предупреждаю с чем столкнуться придется. Может сначала трезво оценить силы?
Аватара пользователя
lorry
 
Сообщения: 448
Зарегистрирован: 04 фев 2014, 13:53
Откуда: Комсомольск-на-Амуре
прог. языки: машинные коды
ФИО: Иван Иваныч

Re: CAN и ROS2

Сообщение linvinus » 30 апр 2016, 11:09

достаточно большой чтобы возить ребенка от x до y лет

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

если интересует реализация математической модели то есть готовые конструкторы на базе которых можно сделать модель http://support.robotis.com/en/product/b ... e_apps.htm

если реально нужно детей катать то либо голая механика, так чтобы робот никак упасть не мог,
http://www.engadget.com/2008/10/16/kota ... ands-on/#/

либо по старинке, макет динозавра на колёсиках + лапами махать и челюстью хлопать

Добавлено спустя 3 минуты 45 секунд:
и да, пока думать про can смысла нет, сначала определитесь с конструкцией и сервоприводами, сервами можно и по uart в полудуплексе управалять см. пример протокола dinamixel, openservo, или вот из свежего https://hackaday.com/2016/04/22/intelliservo/
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: CAN и ROS2

Сообщение pdk » 09 май 2016, 19:37

Т.о. есть отличный физический интерфейс CAN, но, насколько я вижу, он почему-то не очень пользуется популярностью в робототехнике или я пока еще "не в теме".

Очень даже пользуется. Для 20-40 исполнительных устройств с обратной связью скорости хватает. Есть в мелких контроллерах что позволяет хоть каждый датчик в CAN включать.
pdk
 
Сообщения: 99
Зарегистрирован: 20 янв 2010, 16:48
Откуда: Королев
Skype: pdkdrp
ФИО: Антон


Вернуться в ROS - Robot Operating System

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

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