VxWorks ROS2 port is tested on the UP Squared board and QEMU. It should also work on Raspberry Pi 3, however, I didn’t test it yet. It utilizes the latest VxWorks SR0610 release and those of you who have VxWorks license could follow the build instructions and try it out. We also plan to provide for everyone a freely downloadable VxWorks SDK which will allow people building ROS2 applications on top of VxWorks.
I’m currently porting ROS2 dashing release and plan to publish my changes on GitHub in July.
Looking forward to your feedback!
Kind Regards,
Andrei.
TL;DR
Here are more technical details. There are two repositories available on github
• https://github.com/Wind-River/vxworks7-ros2-build contains build scripts to create a bootable VxWorks ROS2 image which can be flashed to the USB stick.
• https://github.com/Wind-River/vxworks7-layer-for-ros2 contains patches to be applied on ROS2 source packages. Most of the changes are related to the C++ library we have and to the obvious fact that VxWorks is not Linux and some header files or functions are missing. I hope to submit all necessary patches to the ROS2 main development tree and drop this repository completely someday.
VxWorks ROS2 build works the same way as any other cross build. First, you need to setup a VxWorks development environment and then run colcon. Currently I built ROS2 with BUILD_TESTING=OFF
Here is an example of how to run timer_lambda from the VxWorks command line. All ROS2 binaries are built as user processes - they called Real Timer Processes (RTPs) in VxWorks.
Which compilers (gcc, clang, proprietary…) and libraries (libc,
libc++ ) do you support? Which versions?
What kind of development environment, tools, application level debuggers (e.g. gdb) do you provide?
We would then have lots of VxWorks specific questions (e.g. how do you do process and memory management) but let us know if we should post them here or in a separate thread or privately.
and e.g. https://github.com/ApexAI/performance_test in VxWorks directly? @razr - Never try to run colcon in VxWorks, but yes, it should be possible. But I think all performance tests are written in C++?
Which compilers (gcc, clang, proprietary…) and libraries (libc,
libc++ ) do you support? Which versions? @razr - clang 7 cross toolchain, libc is proprietary, and we have Dinkum C++11/14
What kind of development environment, tools, application level debuggers (e.g. gdb) do you provide? @razr - we provide an Eclipse-based IDE called Workbench - https://www.windriver.com/products/development-tools/#workbench and everything which allow building deploying and debugging on the embedded target.
Please shoot all your questions here. I would be glad to answer them.
Does your port makes ROS2 deterministic ? If so on which VxWorks features are you relying for beeing ensure that it’s deterministic ? Because as far as I know, POSIX layer is not deterministic on VxWorks.