add ros_cpp

This commit is contained in:
EricX-Zhao
2026-02-12 00:47:24 +03:00
parent 7fffde2fd6
commit 4c6b249a22
5 changed files with 134 additions and 14 deletions
+7 -9
View File
@@ -13,19 +13,17 @@ services:
build:
context: . # 上下文设为根目录,这样才能同时访问 rk3588 文件夹
dockerfile: ${PLATFORM}/Dockerfile.cc_${PLATFORM}
args:
- BASE_TAG=latest
image: cc-${PLATFORM}:latest
depends_on:
- cc-base
# 第三步:编译最终的供应商包镜像
vendor_packages:
vendor-packages:
build:
context: .
dockerfile: vendor_packages/Dockerfile.vendor_packages
args:
- BASE_IMAGE=cc-${PLATFORM}:latest
CC_PLATFORM_IMAGE: cc-${PLATFORM}:latest
image: vendor-packages:${PLATFORM}
depends_on:
- cc-platform
@@ -35,10 +33,10 @@ services:
context: .
dockerfile: ros2/Dockerfile.ros_${ROS_DISTRO}
args:
- ROS_DISTRO=rolling
- PLATFORM=${PLATFORM}
- CC_PLATFORM_IMAGE=cc-${PLATFORM}:latest
- VENDOR_PACKAGES=vendor-packages:${PLATFORM}
ROS_DISTRO: rolling
PLATFORM: ${PLATFORM}
CC_PLATFORM_IMAGE: cc-${PLATFORM}:latest
VENDOR_PACKAGES_IMAGE: vendor-packages:${PLATFORM}
image: cc-ros-${ROS_DISTRO}:${PLATFORM}
depends_on:
- vendor_packages
- vendor-packages
+23 -5
View File
@@ -1,8 +1,7 @@
ARG CC_PLATFORM_IMAGE
ARG VENDOR_PACKAGES
ARG PLATFORM
ARG VENDOR_PACKAGES_IMAGE
FROM ${CC_PLATFORM_IMAGE} as ros_src
FROM ${CC_PLATFORM_IMAGE} AS ros_src
ARG ROS_DISTRO
@@ -12,9 +11,28 @@ COPY ros2/ros_rolling.repos .
RUN vcs import --input ros_${ROS_DISTRO}.repos src
RUN echo "Build ros ${ROS_DISTRO}"
FROM vendor-packages:${PLATFORM} AS vendor_images
FROM ${VENDOR_PACKAGES_IMAGE} AS vendor_images
FROM ${CC_PLATFORM_IMAGE} as ros_builder
FROM ${CC_PLATFORM_IMAGE} AS ros_builder
COPY --from=ros_src /workspace /workspace
COPY --from=vendor_images ${TARGET_SYSROOT} ${TARGET_SYSROOT}
RUN touch src/ros2/geometry2/tf2_bullet/COLCON_IGNORE \
&& touch src/ros2/rosbag2/rosbag2_storage_sqlite3/COLCON_IGNORE
RUN MAKEFLAGS="-j6" colcon build \
--executor parallel \
--parallel-workers 6 \
--install-base ${TARGET_SYSROOT} \
--merge-install \
--packages-up-to ros_cpp \
--cmake-force-configure \
--cmake-args \
--no-warn-unused-cli \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=${CC_TOOLCHAIN_FILE} \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DBUILD_TESTING=OFF \
-DTRACETOOLS_DISABLED=ON \
-DCV_BRIDGE_DISABLE_PYTHON=ON
@@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 3.8)
project(ros_cpp)
find_package(ament_cmake REQUIRED)
ament_package()
+94
View File
@@ -0,0 +1,94 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>ros_cpp</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="ericzhao0325@163.com">ericx</maintainer>
<license>TODO: License declaration</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<depend>ament_cmake_auto</depend>
<!-- <depend>tinyxml2</depend>
<depend>eigen3_vendor</depend>
<depend>ceres_vendor</depend>
<depend>opencv_vendor</depend> -->
<depend>console_bridge_vendor</depend>
<depend>rcl_lifecycle</depend>
<!-- rcl repo -->
<depend>rcl_lifecycle</depend>
<!-- rclcpp repo -->
<depend>rclcpp</depend>
<depend>rclcpp_action</depend>
<depend>rclcpp_lifecycle</depend>
<!-- rclpy repo -->
<depend>rclpy</depend>
<!-- rosidl_defaults repo -->
<depend>rosidl_default_generators</depend>
<depend>rosidl_default_runtime</depend>
<!-- ros_environment repo -->
<depend>ros_environment</depend>
<!-- common_interfaces repo -->
<depend>common_interfaces</depend>
<!-- launch repo -->
<depend>launch</depend>
<depend>launch_testing</depend>
<depend>launch_testing_ament_cmake</depend>
<depend>launch_xml</depend>
<depend>launch_yaml</depend>
<!-- launch_ros repo -->
<depend>launch_ros</depend>
<depend>launch_testing_ros</depend>
<depend>ros2launch</depend>
<!-- ros2cli_common_extensions repo -->
<depend>ros2cli_common_extensions</depend>
<!-- class_loader repo -->
<depend>class_loader</depend>
<!-- pluginlib repo -->
<depend>pluginlib</depend>
<!-- rosbag2 repo -->
<depend>rosbag2</depend>
<!-- geometry2 repo -->
<depend>geometry2</depend>
<depend>diagnostics</depend>
<!-- robot_state_publisher repo -->
<!-- <depend>robot_state_publisher</depend> -->
<depend>image_common</depend>
<depend>image_pipeline</depend>
<depend>image_transport_plugins</depend>
<!-- No laser_pipeline on ROS 2 yet, break it up -->
<!-- <depend>laser_filters</depend>
<depend>laser_geometry</depend> -->
<depend>perception_pcl</depend>
<depend>vision_opencv</depend>
<depend>vision_msgs</depend>
<depend>ffmpeg_image_transport_msgs</depend>
<depend>eigen_stl_containers</depend>
<depend>angles</depend>
<depend>geographic_info</depend>
<depend>urdf</depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>
+4
View File
@@ -415,3 +415,7 @@ repositories:
type: git
url: https://github.com/ros-perception/vision_opencv.git
version: rolling
ros2/console_bridge_vendor:
type: git
url: https://github.com/ros2/console_bridge_vendor.git
version: rolling