From 098325d668eb2096dcd810bd24b25c81e24500db Mon Sep 17 00:00:00 2001 From: Shankho Boron Ghosh Date: Fri, 13 Aug 2021 18:41:32 +0530 Subject: meta-agl-ros2: Support for ros2 minimal & ydlidar v1 : Added support for ros2 in AGL and ydlidar driver support by creation of recipes for ydlidar driver and sdk and packagegroup-agl-ros2-minimal & packagegroup-agl-ros2-ydlidar. Concurrently, created a feature template to allow for BBLAYERS and local conf dependencies. v2 : Removed ALLOW_EMPTY_${PN} = "1" and trailing whitespaces. Set AGL_META_PYTHON = "${METADIR}/external/meta-openembedded/meta-python" otherwise multiple layers might include meta-python and bitbake will choke if a folder is present twice. v3 : Removed trailing whitespaces. Removed AGL_META_PYTHON, just set it. v4 : Rebased v5 : Converted to new syntax: RDEPENDS:${PN}, do_install:append(), IMAGE_INSTALL:append v6 : Added ${METADIR}/meta-agl-devel/meta-agl-ros2 to bblayers configuration. v7 : Added meta-ros-backports-hardknott layer. v8 : Added packagegroup-agl-ros-native-qt5 to remove dependency to agl-demo. Signed-off-by: Shankho Boron Ghosh Change-Id: If169fde42e3f51571e2776adc574b7f8437a61fa --- meta-agl-ros2/conf/layer.conf | 2 +- .../packagegroup-agl-ros-native-qt5.bb | 27 ++++++++ .../packagegroups/packagegroup-agl-ros2-minimal.bb | 81 ++++++++++++++++++++++ .../packagegroups/packagegroup-agl-ros2-ydlidar.bb | 14 ++++ .../ydlidar-ros2-driver_1.0.1.bb | 62 +++++++++++++++++ .../ydlidar-ros2-sdk/ydlidar-ros2-sdk_1.4.7.bb | 24 +++++++ 6 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros-native-qt5.bb create mode 100644 meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros2-minimal.bb create mode 100644 meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros2-ydlidar.bb create mode 100644 meta-agl-ros2/recipes-ros2/ydlidar-ros2-driver/ydlidar-ros2-driver_1.0.1.bb create mode 100644 meta-agl-ros2/recipes-ros2/ydlidar-ros2-sdk/ydlidar-ros2-sdk_1.4.7.bb (limited to 'meta-agl-ros2') diff --git a/meta-agl-ros2/conf/layer.conf b/meta-agl-ros2/conf/layer.conf index 7f155efd..7134bc5e 100644 --- a/meta-agl-ros2/conf/layer.conf +++ b/meta-agl-ros2/conf/layer.conf @@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "aglros2" BBFILE_PATTERN_aglros2 = "^${LAYERDIR}/" BBFILE_PRIORITY_aglros2 = "70" -LAYERSERIES_COMPAT_aglros2 = "dunfell" +LAYERSERIES_COMPAT_aglros2 = "dunfell" \ No newline at end of file diff --git a/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros-native-qt5.bb b/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros-native-qt5.bb new file mode 100644 index 00000000..28e3976b --- /dev/null +++ b/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros-native-qt5.bb @@ -0,0 +1,27 @@ +SUMMARY = "Qt5 for native GUI framework of AGL IVI profile" +DESCRIPTION = "A set of Qt5 packages which required by Native App Fw Subsystem" + +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-ros-native-qt5 \ + " + +RDEPENDS:${PN} += "\ + qtbase \ + qtbase-dev \ + qtbase-plugins \ + qtbase-staticdev \ + qtbase-tools \ + qtdeclarative \ + qtdeclarative-qmlplugins \ + qtdeclarative-tools \ + qtcharts \ + qtwayland \ + qtwayland-plugins \ + qtwayland-tools \ + qtgraphicaleffects-qmlplugins \ + qtvirtualkeyboard \ + " \ No newline at end of file diff --git a/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros2-minimal.bb b/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros2-minimal.bb new file mode 100644 index 00000000..0644ec5c --- /dev/null +++ b/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros2-minimal.bb @@ -0,0 +1,81 @@ +DESCRIPTION = "The minimal set of packages required to ROS2" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-ros2-minimal \ + " + +RDEPENDS:${PN} += " \ + action-msgs \ + ament-cmake \ + ament-index-cpp \ + ament-index-python \ + ament-package \ + builtin-interfaces \ + class-loader \ + composition-interfaces \ + console-bridge-vendor \ + fastrtps \ + foonathan-memory-vendor \ + geometry-msgs \ + launch \ + launch-ros \ + libstatistics-collector \ + libyaml-vendor \ + lifecycle-msgs \ + message-filters \ + osrf-pycommon \ + rcl \ + rcl-action \ + rcl-interfaces \ + rcl-logging-spdlog \ + rcl-yaml-param-parser \ + rclcpp \ + rclcpp-action \ + rclcpp-components \ + rclpy \ + rcpputils \ + rcutils \ + rmw \ + rmw-dds-common \ + rmw-fastrtps-cpp \ + rmw-fastrtps-shared-cpp \ + rmw-implementation \ + rmw-implementation-cmake \ + ros-workspace \ + ros2cli \ + ros2launch \ + ros2pkg \ + ros2topic \ + rosgraph-msgs \ + rosidl-adapter \ + rosidl-cmake \ + rosidl-default-runtime \ + rosidl-generator-c \ + rosidl-generator-py \ + rosidl-parser \ + rosidl-runtime-c \ + rosidl-runtime-cpp \ + rosidl-runtime-py \ + rosidl-typesupport-c \ + rosidl-typesupport-cpp \ + rosidl-typesupport-fastrtps-c \ + rosidl-typesupport-fastrtps-cpp \ + rosidl-typesupport-interface \ + rosidl-typesupport-introspection-c \ + rosidl-typesupport-introspection-cpp \ + rpyutils \ + sensor-msgs \ + spdlog-vendor \ + statistics-msgs \ + std-msgs \ + std-srvs \ + tf2 \ + tf2-msgs \ + tf2-py \ + tf2-ros \ + unique-identifier-msgs \ + visualization-msgs \ + " \ No newline at end of file diff --git a/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros2-ydlidar.bb b/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros2-ydlidar.bb new file mode 100644 index 00000000..7fcee019 --- /dev/null +++ b/meta-agl-ros2/recipes-platform/packagegroups/packagegroup-agl-ros2-ydlidar.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Support of ydlidar with ROS2" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-ros2-ydlidar \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS:${PN} += " \ + ydlidar-ros2-driver \ + " \ No newline at end of file diff --git a/meta-agl-ros2/recipes-ros2/ydlidar-ros2-driver/ydlidar-ros2-driver_1.0.1.bb b/meta-agl-ros2/recipes-ros2/ydlidar-ros2-driver/ydlidar-ros2-driver_1.0.1.bb new file mode 100644 index 00000000..cff912d0 --- /dev/null +++ b/meta-agl-ros2/recipes-ros2/ydlidar-ros2-driver/ydlidar-ros2-driver_1.0.1.bb @@ -0,0 +1,62 @@ +inherit ros_distro_foxy +inherit ros_superflore_generated + +SUMMARY = "YDLIDAR" +DESCRIPTION = "YDLIDAR driver recipe for ROS2 support." +AUTHOR = "Shankho Boron Ghosh" +ROS_AUTHOR = "Shankho Boron Ghosh" +HOMEPAGE = "https://wiki.ros.org" +SECTION = "devel" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d41d8cd98f00b204e9800998ecf8427e" + +ROS_CN = "ydlidar_ros2_driver" +ROS_BPN = "ydlidar_ros2_driver" + +ROS_BUILD_DEPENDS = " \ + rclcpp \ + rclcpp-components \ + sensor-msgs \ + visualization-msgs \ + geometry-msgs \ + std-srvs \ +" + +ROS_BUILDTOOL_DEPENDS = " \ + ament-cmake-auto-native \ + ament-cmake-ros-native \ +" + +ROS_EXPORT_DEPENDS = "" + +ROS_BUILDTOOL_EXPORT_DEPENDS = "" + +ROS_EXEC_DEPENDS = " \ + rclcpp \ + rclcpp-components \ + sensor-msgs \ + visualization-msgs \ + geometry-msgs \ + std-srvs \ +" + +# Currently informational only -- see http://www.ros.org/reps/rep-0149.html#dependency-tags. +ROS_TEST_DEPENDS = "" + +DEPENDS = "${ROS_BUILD_DEPENDS} ${ROS_BUILDTOOL_DEPENDS}" +# Bitbake doesn't support the "export" concept, so build them as if we needed them to build this package (even though we actually +# don't) so that they're guaranteed to have been staged should this package appear in another's DEPENDS. +DEPENDS += "${ROS_EXPORT_DEPENDS} ${ROS_BUILDTOOL_EXPORT_DEPENDS}" +#added +DEPENDS += "ydlidar-ros2-sdk" + +RDEPENDS:${PN} += "${ROS_EXEC_DEPENDS}" + +#ROS_BRANCH ?= "branch=release/foxy/ydlidar_ros2_driver" +SRC_URI = "git://github.com/YDLIDAR/ydlidar_ros2_driver;branch=master;protocol=https" +SRCREV = "2e095da315aec0a0bc5aaac12082cb9d1f97f8b5" +S = "${WORKDIR}/git" + +ROS_BUILD_TYPE = "ament_cmake" + +inherit ros_${ROS_BUILD_TYPE} \ No newline at end of file diff --git a/meta-agl-ros2/recipes-ros2/ydlidar-ros2-sdk/ydlidar-ros2-sdk_1.4.7.bb b/meta-agl-ros2/recipes-ros2/ydlidar-ros2-sdk/ydlidar-ros2-sdk_1.4.7.bb new file mode 100644 index 00000000..4f586f30 --- /dev/null +++ b/meta-agl-ros2/recipes-ros2/ydlidar-ros2-sdk/ydlidar-ros2-sdk_1.4.7.bb @@ -0,0 +1,24 @@ +SUMMARY = "YDLIDAR-SDK" +DESCRIPTION = "YDLIDAR-SDK as it a dependency for ydlidar_ros2_driver." +AUTHOR = "Shankho Boron Ghosh" +ROS_AUTHOR = "Shankho Boron Ghosh" +HOMEPAGE = "https://github.com/YDLIDAR/YDLIDAR/YDLidar-SDK" +SECTION = "devel" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4e320231d59c825e45dbfda066af29c9" + +SRC_URI = "git://github.com/YDLIDAR/YDLidar-SDK.git;protocol=https" + +SRCREV = "8b287ed831db0892f51793650b438790442fa09c" + +S = "${WORKDIR}/git" + +inherit cmake + +FILES_${PN} += "${datadir} ${prefix}/startup" + +do_install:append() { + sed -i -e 's|${DEBUG_PREFIX_MAP}||g; s|--sysroot=${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc +} + +RDEPENDS:${PN} += "bash" \ No newline at end of file -- cgit 1.2.3-korg