I have a hard time to cross-compile and to properly include
the custom ROS2 foxy package into the Yocto image. I properly
added meta-ros layer and ROS2 foxy distro to our Yocto build
by following instructions from here (Sanity Tests pass successfully).
I wanted to use a devtool
and build a simple
custom ROS2 package containing publisher and subscriber nodes.
The source code of the package is on the git - link.
I used tips and tricks from here to create ROS2 recipes with
the devtool
. My custom bitbake recipe for the
simple ROS2 package looks like this (my-first-yocto-pkg_git.bb
file):
DESCRIPTION = "Example of minimal publisher/subscriber using rclcpp."
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=3a75fd635766e2f76c3d90ee6495f310"
SRC_URI = "git://github.com/bojankoce/ros2pkg;protocol=https"
# Modify these as desired
PV = "0.1.0"
SRCREV = "1312445de2e6861d9561c0f89f4827b94c2ff6b1"
DEPENDS = "rclcpp std-msgs"
S = "${WORKDIR}/git"
# NOTE: unable to map the following CMake package dependencies: rclcpp ament_lint_auto std_msgs ros_ament_cmake
inherit ros_ament_cmake
However, when I tried to build the package with the devtool
build my-first-yocto-pkg
command, I get the following
error:
CMake Error at CMakeLists.txt:19 (find_package):
By not providing "Findament_cmake.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"ament_cmake", but CMake did not find one.
Could not find a package configuration file provided by "ament_cmake" with
any of the following names:
ament_cmakeConfig.cmake
ament_cmake-config.cmake
Add the installation prefix of "ament_cmake" to CMAKE_PREFIX_PATH or set
"ament_cmake_DIR" to a directory containing one of the above files. If
"ament_cmake" provides a separate development package or SDK, be sure it
has been installed.
The issue is around ament_cmake
. I included the
inherit ros_ament_cmake
line into the recipe but
this does not help. Do you have any idea about what I am
missing here? Is there any better way to cross-compile and
include a custom ROS2 foxy package into the Yocto image?