Rosanswers logo

Is it possible to run ROS, or some cut-down part of it, on ARM Cortex-M processors? There's some pretty nice chips out there, like the STM32F429ZIT6, a Cortex-M4F with up to 2MB Flash, 256k RAM and 100+ I/O lines. These sorts of uC's also include lots of ADC, DAC, timer/counter etc hardware that seems to be less common on the faster Cortex-A SoC's but that would be pretty handy on a lot of robots.

Originally posted by asperion on ROS Answers with karma: 23 on 2014-02-20

Post score: 2


1 Answer 1


Rosanswers logo

There are various in-progress projects to implement the ROS communication stack in a way that has no dependencies and could work with, for example, LWIP. The most complete at this point is probably rosc.

That said, my preferred solution is to use rosserial—you run a lightweight server node on your Linux/ROS machine, which proxies topics and services from the "real" ROS network over a serial or socket connection to the microcontroller. There are several examples of rosserial client libs; unfortunately none for a Cortex at this point, but it wouldn't take much to port the Arduino example to it.

Disclosure: I'm the author of the performance- and reliability-oriented C++ rosserial_server implementation.

Originally posted by mikepurvis with karma: 1153 on 2014-02-20

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by asperion on 2014-03-04:
Thanks, that's a pretty comprehensive answer.

Comment by Marcus Barnet on 2017-04-18:
Is there any news about the ROS support for ARM-based boards?

Comment by mikepurvis on 2017-04-24:
There are official armhf packages from OSRF for Ubuntu Xenial (ROS Kinetic). Is that what you mean?

cf. http://wiki.ros.org/kinetic/Installation/Ubuntu

Comment by Marcus Barnet on 2017-04-24:
Thank you for your answer! I mean if ROS has now full support and if it is possible to use all the ROS packages like robot_localization and move_base.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.