--
You received this message because you are subscribed to the Google Groups "ros-sig-embedded" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-embedd...@googlegroups.com.
To post to this group, send email to ros-sig-...@googlegroups.com.
Visit this group at http://groups.google.com/group/ros-sig-embedded.
For more options, visit https://groups.google.com/d/optout.
Hi Martino,can you comment on how do you normally design your systems? Do you have real-time stuff running on uC like STM32 and high-level stuff (e.g. decision making, CV, etc.) on a separate e.g. Linux computer or do you pack everything on an STM32 like uC?
We've done some testing over the spring with the former setup where we'd do visual servoing with the control part on a uC with RTOS and target tracking on a Linux computer with stock kernel. The problems were mainly due to the dynamics of these 2 different system. Processes on Linux system for instance can not guarantee deterministic execution times and the delays then got introduced on the communication channel which then in turn affected the real time control loop on the uC.
And it was really difficult to debug both systems at the same time.
How is community's feel on this topics?
D.
On Friday, July 10, 2015 at 12:10:33 PM UTC+2, Martino Migliavacca wrote:Hi,you can publish messages at any rate, there are no constraints. We usually have publishers running in different threads, and the thread loop determines the publish rate.uROSnode is a ROS communication library, inter-thread communication is handled by the underlaying OS. We currently support ChibiOS/RT (the RTOS we use on our boards) and Posix.Moreover, we developed a middleware targeted at microcontrollers which handles all the inter-thread and board-to-board communication (over CAN bus, with real-time capabilities), so all of that is not handled by uROSnode, which is used to interface the real-time CAN bus network to ROS systems.We have a set of hardware modules (motor controllers, sensor interfaces, IMU, communication interfaces, etc etc) which we use to control our robots (low-level control), while high-level control is implemented in ROS by using uROSnode.I've briefly looked into DDS and I believe it will be really hard to port to microcontrollers, but I did not investigate deeply. The only "embedded" implementations I found had requirements not compatibile with RAM and Flash of STM32-like microcontrollers.You can read about the system (it is called R2P - Rapid Robot Prototyping) in these two publications:Best regards,Martino
I've briefly looked into DDS and I believe it will be really hard to port to microcontrollers, but I did not investigate deeply. The only "embedded" implementations I found had requirements not compatibile with RAM and Flash of STM32-like microcontrollers.
--