VxWorks® 7 ROS2 Build Scripts
The VxWorks 7 ROS2 Build Scripts provide build scripts to automate building ROS2 with a VxWorks SDK.
The Robot Operating System 2 is a set of software libraries and tools that aid in building robot applications. ROS2 is a re-architecture of the framework to include support for new use cases.
These new use cases include:
- Teams of multiple robots
- Small embedded platforms
- Real-time systems
- Non-ideal networks
- Production environment
- Design patterns for building and structuring systems
The default configuration build configuration will build a minimal set of ROS2 packages necessary for running the example applications.
NOTE: ROS2 is not part of any VxWorks® product. If you need help, use the resources available or contact your Wind River sales representative to arrange for consulting services.
The source code for this project is provided under the Apache 2.0 license license. Text for the ROS2 dependencies and other applicable license notices can be found in the LICENSE file in the project top level directory. Different files may be under different licenses. Each source file should include a license notice that designates the licensing terms for the respective file.
NOTE: Your use of the VxWorks SDK is subject to the non-commercial use license agreement that accompanies the software (the "License"). To review the License, please read the file NCLA.txt which can be viewed from a browser here: Non-Commercial License Agreement.
By downloading, installing or using the software, you acknowledge that you have read, understand, and are agreeing to the terms of the License. Subject to the License, you can proceed to download the VxWorks SDK.
Download a VxWorks Software Development Kit from Wind River Labs
The build system will need to download source code from github.com and bitbucket.org. A working Internet connection with access to both sites is required.
For the standard build you must also have:
- Supported Linux host for both ROS2 and VxWorks 7
- ROS 2.0 Target Platforms
- VxWorks 7 SR0640
- For ROS2 Dashing Diademata, Ubuntu Bionic (18.04) 64-bit LTS is the Tier 1 host
- Install the development tools and ROS tools from “Building ROS 2 on Linux”
- Install the “Required Linux Host OS Packages” for VxWorks 7
- Mercurial (hg) package for Eigen (optional)
├── Docker ├── Makefile ├── pkg │ ├── asio │ ├── colcon │ ├── python │ ├── ros2 │ ├── sdk │ ├── tinyxml2 │ ├── turtlebot3 │ └── unixextra
It uses Makefile to invoke ros2 and turtlebot3 colcon build, and also build some dependencies. A Docker (Ubuntu 18.04) based build is used to avoid a necessity for installing build dependencies. Build Artifacs
├── build - pkg build artifacts ├── downloads - download arctifacts ├── export ├── deploy - a ready-to-deploy filesystem with ROS2 libraries and binaries └── root - a development artifacts with ROS2 libraries and headers
ROS2 VxWorks patches
ROS2 patches for VxWorks are located in the separate repository https://github.com/Wind-River/vxworks7-layer-for-ros2
It is cloned during the build to the patches dir
├── pkg │ ├── ros2 │ │ ├── patches
Build VxWorks 7 and ROS2
Clone this repository using the master branch
git clone https://github.com/Wind-River/vxworks7-ros2-build.git cd vxworks7-ros2-build
Build Docker image
cd Docker/vxbuild docker build -t vxbuild:1.0 . cd Docker/vxros2build docker build -t vxros2build:1.0 .
Download the VxWorks SDK for IA - UP Squared from https://labs.windriver.com/downloads/wrsdk.html
Extract the VxWorks SDK tarball
tar –jxvf wrsdk-vxworks7-up2-1.7.tar.bz2
Run Docker image
cd vxworks7-ros2-build docker run -ti -v <path-to-the-wrsdk>:/wrsdk -v $PWD:/work vxros2build:1.0
Inside Docker container: Source the development environment
wruser@d19165730517:/work source /wrsdk/toolkit/wind_sdk_env.linux
Inside Docker container: Run make to build ROS2 using the SDK
Build artifacts are in the export directory
wruser@d19165730517:/work ls export/deploy/ bin lib
Rebuild from scratch
wruser@d19165730517:/work make distclean wruser@d19165730517:/work make
Run ROS2 C/C++ examples
sudo apt-get install uml-utilities sudo tunctl -u $USER -t tap0 sudo ifconfig tap0 192.168.200.254 up cd vxworks7-ros2-build qemu-system-x86_64 -m 512M -kernel $WIND_SDK_HOME/bsps/itl_generic_2_0_2_1/boot/vxWorks -net nic -net tap,ifname=tap0,script=no,downscript=no -display none -serial stdio -monitor none -append "bootline:fs(0,0)host:vxWorks h=192.168.200.254 e=192.168.200.1 u=target pw=boot o=gei0" -usb -device usb-ehci,id=ehci -device usb-storage,drive=fat32 -drive file=fat:ro:./export/deploy,id=fat32,format=raw,if=none
Run QEMU with a prebuilt VxWorks kernel and the export directory mounted as a USB device
Run ROS2 example
-> cmd [vxWorks *]# set env LD_LIBRARY_PATH="/bd0a/lib" [vxWorks *]# cd /bd0a/bin/ [vxWorks *]# rtp exec -u 0x20000 timer_lambda Launching process 'timer_lambda' ... Process 'timer_lambda' (process Id = 0xffff80000046f070) launched. [INFO] [minimal_timer]: Hello, world! [INFO] [minimal_timer]: Hello, world! [INFO] [minimal_timer]: Hello, world! [INFO] [minimal_timer]: Hello, world!
Run ROS2 Python examples
[vxWorks *]# rtp exec -u 0x20000 python3 ros2 Launching process 'python' ... Process 'python' (process Id = 0xffff80000046f070) launched.
Build a simple CMake based OSS project
wget https://labs.windriver.com/downloads/wrsdk-vxworks7-up2-1.7.tar.bz2 tar –jxvf wrsdk-vxworks7-up2-1.7.tar.bz2 source ./wrsdk-vxworks7-up2/toolkit/wind_sdk_env.linux git clone https://github.com/Wind-River/vxworks7-ros2-build.git cd vxworks7-ros2-build export TOP_BUILDDIR=$PWD export WIND_USR_MK=$TOP_BUILDDIR/mk/usr export PACKAGE_DIR=$TOP_BUILDDIR/pkg DEFAULT_BUILD=unixextra make git clone https://github.com/leethomason/tinyxml2.git cd tinyxml2; mkdir vxworks-build; cd vxworks-build cmake .. -DCMAKE_TOOLCHAIN_FILE=$TOP_BUILDDIR/buildspecs/cmake/rtp.cmake make VERBOSE=1
All product names, logos, and brands are property of their respective owners. All company, product and service names used in this software are for identification purposes only. Wind River and VxWorks are registered trademarks of Wind River Systems, Inc. UNIX is a registered trademark of The Open Group.
Disclaimer of Warranty / No Support: Wind River does not provide support and maintenance services for this software, under Wind River’s standard Software Support and Maintenance Agreement or otherwise. Unless required by applicable law, Wind River provides the software (and each contributor provides its contribution) on an “AS IS” BASIS, WITHOUT WARRANTIES OF ANY KIND, either express or implied, including, without limitation, any warranties of TITLE, NONINFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the software and assume any risks associated with your exercise of permissions under the license.