ros2+rviz2示例代码--cmakelists.txt与package.xml备份

html 复制代码
cmake_minimum_required(VERSION 3.8)
project(gazebo_pkg)
set(CMAKE_PREFIX_PATH /usr;/opt/ros/humble)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

# find dependencies
find_package(ament_cmake REQUIRED)
find_package(robot_state_publisher REQUIRED)
find_package(urdf_tutorial REQUIRED)
find_package(xacro REQUIRED)
find_package(rviz2 REQUIRED)
install(
  DIRECTORY  urdf launch etc
  DESTINATION share/${PROJECT_NAME}
)
if(BUILD_TESTING)
  find_package(ament_lint_auto REQUIRED)
  # the following line skips the linter which checks for copyrights
  # comment the line when a copyright and license is added to all source files
  set(ament_cmake_copyright_FOUND TRUE)
  # the following line skips cpplint (only works in a git repo)
  # comment the line when this package is in a git repo and when
  # a copyright and license is added to all source files
  set(ament_cmake_cpplint_FOUND TRUE)
  ament_lint_auto_find_test_dependencies()
endif()

ament_package()
html 复制代码
<?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>gazebo_pkg</name>
  <version>0.0.0</version>
  <description>TODO: Package description</description>
  <maintainer email="actorsun@todo.todo">actorsun</maintainer>
  <license>TODO: License declaration</license>

  <buildtool_depend>ament_cmake</buildtool_depend>

  <depend>robot_state_publisher</depend>
  <depend>urdf_tutorial</depend>
  <depend>xacro</depend>
  <depend>rviz2</depend>

  <test_depend>ament_lint_auto</test_depend>
  <test_depend>ament_lint_common</test_depend>

  <export>
    <build_type>ament_cmake</build_type>
  </export>
</package>

其中修改为如下也可以

html 复制代码
<?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>gazebo_pkg</name>
  <version>0.0.0</version>
  <description>TODO: Package description</description>
  <maintainer email="actorsun@todo.todo">actorsun</maintainer>
  <license>TODO: License declaration</license>

  <buildtool_depend>ament_cmake</buildtool_depend>

  <depend>robot_state_publisher</depend>
  <exec_depend>joint_state_publisher</exec_depend>
  <depend>xacro</depend>
  <depend>rviz2</depend>

  <test_depend>ament_lint_auto</test_depend>
  <test_depend>ament_lint_common</test_depend>

  <export>
    <build_type>ament_cmake</build_type>
  </export>
</package>

find_package 命令用法举例

  • find_package(OpenCV)

    • 查找名为 OpenCV 的包,找不到不报错,事后可以通过 ${OpenCV_FOUND} 查询是否找到。
  • find_package(OpenCV QUIET)

    • 查找名为 OpenCV 的包,找不到不报错,也不打印任何信息。
  • find_package(OpenCV REQUIRED) # 最常见用法

    • 查找名为 OpenCV 的包,找不到就报错(并终止 cmake 进程,不再继续往下执行)。
  • find_package(OpenCV REQUIRED COMPONENTS core videoio)

    • 查找名为 OpenCV 的包,找不到就报错,且必须具有 OpenCV::coreOpenCV::videoio 这两个组件,如果没有这两个组件也会报错。
  • find_package(OpenCV REQUIRED OPTIONAL_COMPONENTS core videoio)

    • 查找名为 OpenCV 的包,找不到就报错,可具有 OpenCV::coreOpenCV::videoio 这两个组件,没有这两组件不会报错,通过 ${OpenCV_core_FOUND} 查询是否找到 core 组件。

find_package 说是找"包(package)",到底是在找什么?

相关推荐
qq_419203232 天前
[ROS2 学习指南4] --- 手写一个 TF2 监听器(python版)
ros2·监听器
前网易架构师-高司机2 天前
带标注的山体滑坡塌方数据集数据集,识别率78.1%,974张图,支持yolo,coco json,voc xml,文末有模型训练代码
xml·yolo·json·数据集·自然灾害·山体滑坡
CS_Zero2 天前
Gazebo仿真无人机接入物理遥控控制
无人机·飞控·ros2
程序媛kelly2 天前
.xml / .jrxml 文件怎么打开?OpenFiles 实测预览、编辑、搜索与 AI 摘要排查流程
xml·人工智能·jrxml
潘潘的嵌入式日记3 天前
改完Keil工程文件被缓存覆盖?——uvprojx编辑的进阶四坑
xml·嵌入式·keil·调试·mdk·工程文件
zylyehuo3 天前
Ranger Mini V3 底盘运动性能测试与录包步骤
car·ros2
Full Stack Developme3 天前
Flowable XML标签大全
xml
某林2123 天前
大模型边缘部署到底层硬件闭环
python·架构·机器人·硬件架构·ros2
C137的本贾尼3 天前
第九篇:微服务与分布式——把一个大系统拆成多个小服务
xml·spring boot·后端
某林2124 天前
构建高精度 6-DoF 灵巧手控制系统
人工智能·3d·机器人·ros2·技术复盘