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)",到底是在找什么?

相关推荐
墨痕诉清风2 小时前
java漏洞集合工具(Struts2、Fastjson、Weblogic(xml)、Shiro、Log4j、Jboss、SpringCloud)
xml·java·struts·安全·web安全·spring cloud·log4j
Lbwnb丶4 小时前
failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
xml
拾忆,想起4 小时前
设计模式三大分类完全解析:构建高质量软件的基石
xml·微服务·设计模式·性能优化·服务发现
前网易架构师-高司机4 小时前
汽车充电插口识别数据集,可识别快充,慢充插口,支持yolo,coco json,pascal voc xml格式的标注数据集
xml·yolo·汽车·快充·充电·m慢充·插口
武藤一雄5 小时前
彻底吃透.NET中序列化反序列化
xml·微软·c#·json·.net·.netcore
spencer_tseng5 小时前
org.eclipse.wst.common.project.facet.core.xml could not be read.
xml·java·eclipse
小鸡吃米…18 小时前
Python - XML 处理
xml·开发语言·python·开源
老歌老听老掉牙1 天前
Vericut 5轴机床MCH文件解析与构建指南
xml·python·vericut
叠叠乐1 天前
ros2 找功能包的get_package_share_directory
ros2
ii_best1 天前
「安卓开发辅助工具按键精灵」xml全分辨率插件jsd插件脚本教程
android·xml·开发语言·编辑器·安卓