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.

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 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.