ros下编译安装package

本文详细介绍了如何配置和发布ROS包,包括设置Release目录、修改CMakeLists.txt文件、安装可执行文件、库文件、Launch文件、头文件、Python文件及其他资源文件,并提供了编译指令及参考链接。

原文地址:

  1. 配置Release目录
    catkin config --install
  2. 修改CMakeList.txt文件
    修改节点中CMakeLists.txt文件:
    假设此处我们的节点项目名称为:test_node ( 即CMakeLists.txt中project(test_node) )

可执行文件安装:

install(TARGETS test_node 
      ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
      LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
      RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

库文件安装:

install(TARGETS test_node_lib
        ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
        LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
        RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION})

第三方库文件安装:

install(FILES src/libplatooning/libplatooning.so
        DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)

Launch文件安装:

install(DIRECTORY launch/
        DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
)

头文件安装:

#创建目录
file(MAKE_DIRECTORY ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME})
#INCLUDE_DIRS 为find_package的头文件路径
catkin_package(
        INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}
)

install(DIRECTORY include/${PROJECT_NAME}/
        DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION})

python文件安装:

install(PROGRAMS
  src/leading_vehicle_path_history.py
  src/leading_vehicle_view.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

其他文件安装:

install(FILES your_data your_parameters
        DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

编译:

catkin clean -b

catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
or
catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release

参考:
http://wiki.ros.org/ROS/ReleasingAPackage
https://docs.ros.org/api/catkin/html/howto/format1/index.html

ROS2 Humble中编译包通常使用`colcon`工具,这是ROS2推荐的构建系统。以下是在ROS2 Humble中编译包的详细步骤: ### 准备工作 确保你已经安装ROS2 Humble,并且已经配置好了环境变量。你可以通过以下命令来检查ROS2是否已经正确安装: ```bash ros2 --version ``` 此外,确保你已经安装了`colcon`构建工具和相关的依赖项: ```bash sudo apt update sudo apt install python3-colcon-common-extensions ``` ### 编译步骤 1. **创建工作空间** 创建一个新的ROS2工作空间目录,通常命名为`ws`(workspace的缩写),并在其中创建一个`src`目录,这是ROS2包的标准存放位置。 ```bash mkdir -p ~/my_ros2_ws/src cd ~/my_ros2_ws ``` 2. **添加包到工作空间** 将你需要编译ROS2包放入`src`目录中。你可以通过克隆Git仓库或手动复制包文件的方式将包添加到`src`目录。 ```bash cd src git clone https://github.com/example/my_ros2_package.git cd .. ``` 3. **使用`colcon`编译包** 在工作空间根目录下运行`colcon build`命令来编译所有包。你可以在`build`命令后添加一些选项来控制编译过程,例如`--packages-select`可以指定只编译特定的包。 ```bash colcon build ``` 如果你想只编译某个特定的包,可以使用以下命令: ```bash colcon build --packages-select my_package_name ``` 4. **设置环境变量** 编译完成后,你需要将编译生成的库和可执行文件路径添加到环境变量中。运行以下命令来更新当前终端会话的环境变量: ```bash source install/setup.bash ``` 5. **运行节点** 编译成功后,你可以使用`ros2 run`命令来运行编译后的节点。 ```bash ros2 run my_package_name my_node ``` ### 注意事项 - **依赖管理**:在编译之前,确保所有依赖项都已正确安装。你可以使用`rosdep`来安装包所需的系统依赖项。如果你还没有配置`rosdep`,可以参考安装ROS2的文档[^1]。 ```bash rosdep install --from-paths src --ignore-src -r -y ``` - **交叉编译问题**:如果你在进行交叉编译(例如为嵌入式设备编译),需要注意ROS2的`ament_cmake`构建系统对交叉编译的支持有限。你可以尝试使用其他方法或工具链来处理交叉编译问题[^2]。 - **自定义安装路径**:如果你想将编译结果安装到自定义路径,可以在`colcon build`命令中添加`--install-base`选项。 ```bash colcon build --install-base /path/to/custom/install ``` ### 示例代码 假设你有一个简单的ROS2包`my_package`,其中包含一个名为`node01`的节点。你可以在`CMakeLists.txt`中添加以下内容来确保该节点被正确编译安装: ```cmake add_executable(node01 src/node01.cpp) ament_target_dependencies(node01 rclcpp) install(TARGETS node01 DESTINATION lib/${PROJECT_NAME} ) ``` 这段代码的作用是告诉CMake如何编译`node01`,并将其安装到指定的目标路径[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值