目标:用colcon编译一个ROS2工作空间。
这是一个关于如何使用colcon创建和构建ROS2工作区的简短教程。
背景
colcon是ROS编译工具catkin_make
, catkin_make_isolated
, catkin_tools
and ament_tools的替代。
安装colcon
sudo apt install python3-colcon-common-extensions
基本概念
一个ROS工作空间是一个有特殊结构的目录。有一个存放源码的src目录。
colcon会在与src同目录下创建如下目录:
build:编译过程的中间文件。
install:每个包被安装的地方,默认每个包都会安装到一个分开的子目录。
log:日志目录包含关于每个colcon调用的各种日志信息。
与catkin相比,没有了devel目录
创建一个工作空间
mkdir -p ~/ros2_ws/src cd ~/ros2_ws
添加源文件到src下
git clone https://github.com/ros2/examples src/examples -b humble
编译工作空间
在工作区的根目录中,运行colcon build。由于像ament_cmake这样的构建类型不支持devel空间的概念,并且需要安装包,所以colcon支持选项--symlink install。这允许通过更改源空间中的文件(例如Python文件或其他未编译的资源)来更改已安装的文件,以实现更快的迭代。
colcon build --symlink-install
Run tests
colcon test
source 环境
当编译成功之后,输出到install文件中,在使用之前需要添加路径,执行如下操作
source install/setup.bash
运行demo
ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
ros2 run examples_rclcpp_minimal_publisher publisher_member_function
创建你自己的包
colcon使用REP149中定义的package.xml规范(也支持格式2)。
colcon支持多个build类型。推荐的编译类型是ament_cmake以及ament_python。也支持纯cmake包。
像demo_nodes_cpp这样的包使用ament_cmake构建类型,并使用cmake作为构建工具。
可以使用ros2 pkg create来构建新的包
快速进入某个功能包 colcon_cd
echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc echo "export _colcon_cd_root=/opt/ros/humble/" >> ~/.bashrc
命令补全
如果安装了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
标签:src,colcon,Beginner,--,libraries,编译,install,ros2 From: https://www.cnblogs.com/gary-guo/p/17450182.html