Как стать автором
Обновить

Комментарии 17

Возникает серия вопросов:
* Почему не использовать кусок либы из реализации rosserial под ардуино, переписав ее на си.
* Почему нельзя написать ноду которая парсит любые сообщения с стм32, I2C, SPI, хоть кан. Инит либы rosserial в уне занимает половину памяти (на сколько я помню), что делает эту либу не очень полезной.
* Почему-бы скриншоты не обрезать.
* Зачем танцы с бубном и консолью, почти в любой IDE есть кнопка прошить.

》Зачем танцы с бубном и консолью, почти в любой IDE есть кнопка прошить.
Может по тому что ЛЮБАЯ IDE пишет не больше 64кб, а для большего, увы, надо покупать лицензию за 5К евро?

Atollic TrueSTUDIO: atollic.com/truestudio — 100% free, работает и под Windows и Linux, ограничений нет, и работает с STM32CubeMX.

www.youtube.com/watch?v=q9Ssi9ry1eg
www.youtube.com/watch?v=6RqUkFIeN6w
www.youtube.com/watch?v=JnmjmP2Xchg

Atollic is now part of STMicroelectronics: atollic.com
Переписывать все на Си нецелесообразно, использовать Arduino в качестве посредника налаживает дополнительные задержки по времени.
github.com/yoneken/rosserial_stm32 не имеет никаких подробностей по настройке периферии, проект полностью урезан, к тому же еще и на костылях(main.c, main.cpp)
Кхм, очень похоже на фотографию в полный рост на коне в окопе. Если система слишком сложна и непонятно как работает — ко какой смысл её использовать?
Как ROS управляет движками — можно вдоволь насмотреться на ютюбе. Некоторым даже нравится смотреть на конвульсии железа.
1) Прочитал статью, но так и не понял… Каким образом проект в C++ мешает отладке???
2)
Так как библиотеки ROS написаны на C++, переводим наш проект в проект С++, и изменяем формат файлов main.c, stm32f1xx_hal_msp.c, stm32f1xx_it.c в .cpp


Вы пробовали создавать комбинированный проект C/C++?
В данный момент не существует информации об использовании робототехнической операционной системы ROS в связке с микроконтроллером STM32. Интернет переполнен только вопросами.

А чем это не подошло?
А если у вас nucleo и есть доступ к mbed то есть это
Этот не имеет никаких подробностей по настройке периферии, проект полностью урезан, к тому же еще и на костылях(main.c, main.cpp). В том то и дело, что mbed, не со всеми контроллерами работает.
А если убрать из этого поста стопятьсот скриншотов куба и воркшопа, и оставить только про подключение и использование библиотеки, то он станет раз в десять короче и раз в пять полезнее.

Серьёзно, это на кого рассчитано? На человека, который STM32 видит впервые в жизни?
И правильно он сделал, без этих скриншотов не разберешься что жать и куда перетаскивать в cubmx и systemworkbench.

Профи это не нужно, это только для нубов надо все разжёвывать.

Вы не поверите, но я, например, ни разу в жизни не пользовался ни CubeMX, ни SystemWorkbench — и не планирую.

А те люди, которые пользовались, очевидно, должны быть уже в курсе, куда там нажимать.

Отсюда и вопрос — статья-то на кого рассчитана? На людей, которые, открыв её, впервые в жизни CubeMX запустят?

Автор, пора перелезть с убого воркбенча с его глюками и багами на новую среду от ST-ников.

Работал с Rosserial на F407, F429, F767, в Atollic True Studio:

Так как библиотеки ROS написаны на C++, переводим наш проект в проект С++, и изменяем формат файлов main.c, stm32f1xx_hal_msp.c, stm32f1xx_it.c в .cpp

Не нужно, достаточно только изменить main.c на main.cpp
В Atollic True Studio есть возможность «конвертировать C проект в С++»

забегая вперед, если проект будет на С++, отладка может не работать

неправда, работает без проблем.

Мой проект под STM32F767 с Rosserial и FreeRTOS и LL библиотекой (не люблю HAL), пока сироват и работает без UART прериваний и DMA:
github.com/ros-ukraine/leobot/tree/F%23111_STM32F767_Firmware/leobot_firmware/STM32F767_Firmware

В данный момент не существует информации об использовании робототехнической операционной системы ROS в связке с микроконтроллером STM32. Интернет переполнен только вопросами.

полно, например Adding Support for New Hardware:
wiki.ros.org/rosserial_client/Tutorials/Adding%20Support%20for%20New%20Hardware
wiki.ros.org/rosserial_client/Tutorials/Using%20rosserial%20with%20AVR%20and%20UART

Не знаю почему, но если после nh.spinOnce(); поставить задержку (даже osDelay(1)) Rosserial работать не будет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории