1-使用colcon编译工作包

背景

基础准备

    安装colcon

    安装ROS 2

任务

    创建工作空间

    添加源码

    编译工作空间

    运行测试

    source环境

    运行demo

创建属于你的工作包

设置colcon_cd

设置colcon tab 补全

技巧

背景

    ros1使用catkin_make编译,对应于ROS2,它的编译工具为colcon。

基础准备

安装colcon

sudo apt install python3-colcon-common-extensions

安装ros2

    要构建本节项目,需要安装ROS 2,可以参考之前的教程进行安装。

任务

    ROS工作区是一个具有特定结构的文件夹。通常有一个src子文件夹。在该子目录中是ROS包的源代码所在的位置。通常,文件夹开始时为空。
    Colcon在源代码外构建。默认情况下,它将创建以下文件夹作为src文件夹的同级目录:
    building文件夹是存储中间文件的地方。对于每个包,将创建一个子文件夹。
    install文件夹是将每个包安装到的位置。默认情况下,每个包将安装到单独的子目录中。
    log目录包含关于每个colcon调用的各种日志信息。

创建一个工作空间

    首先,创建一个目录(ros2_ws)来包含我们的工作空间:

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws

    此时,工作空间包含一个空目录src:   

.
└── src

1 directory, 0 files

添加源码

    将示例库克隆到工作区的src目录中:

git clone https://github.com/ros2/examples src/examples -b humble

    现在工作区应该有ROS 2示例的源代码:

.
└── src
    └── examples
        ├── CONTRIBUTING.md
        ├── LICENSE
        ├── rclcpp
        ├── rclpy
        └── README.md

4 directories, 3 files

编译工作空间

    在工作区的根目录下,运行colcon build。由于诸如ament_cmake之类的构建类型不支持devel空间的概念,并且需要安装包,因此colcon支持选项--symlink-install。这允许通过更改源空间中的文件(例如Python文件或其他未编译的资源)来更改已安装的文件,以便更快地迭代。

colcon build --symlink-install

    构建完成后,我们应该看到构建、安装和日志目录:

.
├── build
├── install
├── log
└── src

4 directories, 0 files

运行测试

    要为我们刚刚构建的包运行测试,请运行以下命令:

colcon test

source环境

    当colcon成功完成构建时,输出将在安装目录中。在使用任何已安装的可执行文件或库之前,您需要将它们添加到您的路径和库路径中。Colcon将在安装目录中生成bash/bat文件,以帮助设置环境。这些文件将把所有必需的元素添加到您的路径和库路径中,并提供由包导出的任何bash或shell命令。

source install/setup.bash

运行demo

    有了环境源,我们就可以运行由colcon构建的可执行文件。从示例中运行一个订阅者节点:

ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function

 

    在另一个终端中,运行一个发布者节点(不要忘记source):

ros2 run examples_rclcpp_minimal_publisher publisher_member_function

    您应该看到来自发布者和订阅者的消息的数量在增加。

创建属于你的工作包

    colcon使用REP 149中定义的package.xml规范(也支持格式2)。
    Colcon支持多种构建类型。推荐的构建类型是ament_cmake和ament_python。也支持纯cmake包。
    ament_python构建的一个例子是ament_index_python包,其中setup.py是构建的主要入口点。
    demo_nodes_cpp等包使用ament_cmake构建类型,并使用CMake作为构建工具。
    为方便起见,您可以使用工具ros2 pkg create基于模板创建新包。

设置colcon_cd

    命令colcon_cd允许您快速地将shell的当前工作目录更改为包的目录。例如,colcon_cd some_ros_package会很快将您带到目录~/ros2_ws/src/some_ros_package。

echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
echo "export _colcon_cd_root=/opt/ros/humble/" >> ~/.bashrc

    根据安装colcon_cd的方式和工作空间的位置,上面的命令可能会有所不同。要在Linux和macOS中撤消此操作,请找到系统的shell启动脚本并删除附加的源和导出命令。

设置colcon tab补全

如果安装了colcon-argcomplete包,命令colcon支持bash和类bash shell的命令补全。

echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc

技巧

    如果您不想构建特定的包,请在目录中放置一个名为COLCON_IGNORE的空文件,该文件将不会被索引。
    如果你想避免在CMake包中配置和构建测试,你可以通过:--CMake -args -DBUILD_TESTING=0。
    如果你想从一个包中运行一个特定的测试:

colcon test --packages-select YOUR_PKG_NAME --ctest-args -R YOUR_TEST_IN_PKG

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值