Dear Sirs,
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?
Thanks in advance for your time and efforts.
Cheers,
Bojan.