TipsAndTricks/Creating Recipes for ROS modules
From Yocto Project
Jump to navigationJump to search
Introduction
Robot Operating System (ROS) isn't an OS but a set of modules for robotics applications that interact via a pub/sub interface. Thanks to meta-ros you can add a wide range of ROS modules to your OS build. But how do you add your own ROS module? This article covers creating a recipe for a ROS module. For this article we'll use the vectornav module as an example. We'll also assume you already have meta-ros in your bblayers.conf.
Starting with "devtool add"
Standard practice for a creating a recipe is use devtool add. The github project doesn't have any releases, so let's use the git repo.
$ devtool add https://github.com/dawonn/vectornav
This completes OK, let's takr quick look at the recipe.
$ devtool edit-recpe vectornav
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)
# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://vnccpplib/LICENSE.txt;md5=a3e2f266f2adb30b4ae17db437fa9727"
SRC_URI = "git://github.com/dawonn/vectornav;protocol=https"
# Modify these as desired
PV = "1.0+git${SRCPV}"
SRCREV = "497173f3ddbe21216d77d3b2021a5ef48a17ec4a"
S = "${WORKDIR}/git"
# NOTE: unable to map the following CMake package dependencies: catkin
inherit cmake
# Specify any options you want to pass to cmake using EXTRA_OECMAKE:
EXTRA_OECMAKE = ""
It seems to have correctly detected a cmake project. Let's try and built it
$ devtool build vectornav | CMake Error at CMakeLists.txt:7 (find_package): | By not providing "Findcatkin.cmake" in CMAKE_MODULE_PATH this project has | asked CMake to find a package configuration file provided by "catkin", but | CMake did not find one.