initial commit

This commit is contained in:
huangweifeng
2026-10-22 09:23:54 +08:00
commit 63f557a39f
4448 changed files with 584487 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
cmake_minimum_required(VERSION 3.10)
project(m20_sdk_deploy)
# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 默认构建类型
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
# 警告忽略和编译选项
add_definitions(-w)
add_compile_options(-fPIC)
# 配置选项
set(BUILD_PLATFORM "x86" CACHE STRING "Target platform (x86 or arm)")
if(BUILD_PLATFORM STREQUAL "arm")
set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")
endif()
# 查找依赖包
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(drdds REQUIRED)
set(THIRD_PARTY ${CMAKE_CURRENT_SOURCE_DIR}/third_party)
include_directories(
include/types
include/utils
interface/robot
interface/user_command
interface/network
state_machine
run_policy
${THIRD_PARTY}/eigen/
${THIRD_PARTY}/gamepad/include
${THIRD_PARTY}/onnxruntime/${BUILD_PLATFORM}/include
)
# 子目录
add_subdirectory(interface)
# Keep the default RUNPATH behavior so a correctly sourced ROS environment can
# override stale build-machine library paths when necessary.
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH
${THIRD_PARTY}/onnxruntime/${BUILD_PLATFORM}/lib/
../lib/onnxruntime/
)
file(GLOB_RECURSE STATE_MACHINE_SRC "state_machine/*.c*")
add_executable(rl_deploy main.cpp ${STATE_MACHINE_SRC})
add_library(onnxruntime SHARED IMPORTED)
set_target_properties(onnxruntime PROPERTIES IMPORTED_LOCATION "${THIRD_PARTY}/onnxruntime//${BUILD_PLATFORM}/lib/libonnxruntime.so")
ament_target_dependencies(rl_deploy
rclcpp
drdds
)
if(BUILD_PLATFORM STREQUAL "arm")
target_link_libraries(rl_deploy
interface
onnxruntime
-lpthread
-lm
-lrt
-ldl
-lstdc++
)
else()
target_link_libraries(rl_deploy
interface
onnxruntime
-lpthread
-lm
-lrt
-ldl
-lstdc++
)
endif()
install(TARGETS rl_deploy
DESTINATION lib/${PROJECT_NAME}
)
ament_package()