2.使用colcon构建ROS2工作空间
2.1一个构建的示例
在ROS1中,我们使用catkin_make
、catkin_tools
、和catkin_make_isolated
作为ROS的构建工具,但在ROS2中,我们使用colcon
来作为构建工具,具体的原因可以参考该文档A universal build tool
首先我们需要先安装构建工具colcon
sudo apt install python3-colcon-common-extensions
与catkin
相比,删除了devel
目录。下面举个例子使用colcon
构建工具。
1.首先创建一个工作区的目录
cd 你想放置的位置
mkdir colcon_test_ws && cd colcon_test_ws
2.然后clone
官方提供的示例源码
git clone https://github.com/ros2/examples src/examples -b humble
3.使用colcon
进行构建
colcon build
使用这条语句进行构建的时候,允许我们更改src
目录下的python
文件而无需重新build
colcon build --symlink-install
构建完成后,我们会在src
同级目录中看到build
,install
,log
目录,接下来介绍一下ROS2中的工作空间workspace
,相比于ROS1中的工作空间,ROS2中删除了devel
目录,目前只存在
├── build
├── install
├── log
└── src
src
用于存放ROS2包的源代码build
目录存放中间文件,对于每个包,将创建一个子文件,并在其中调用CMake
install
目录是每个包的安装位置log
存放colcon
调用的各种日志信息
4.运行节点
进入刚才创建的colcon_test_ws
,先source
一下资源
source ./install/setup.bash
这条命令的作用和ROS1中的source ./devel/setup.bash
命令是一致的。
然后运行一个订阅者节点,再打开一个终端运行发布者节点
ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
source install/setup.bash
ros2 run examples_rclcpp_minimal_publisher publisher_member_function
即可以看到订阅者显示发布者发布的消息了。
2.2构建你自己的ROS2 workspace
我们这里可以从头到尾构建一个自己的ROS2 workspace
,
1.首先建立自己的存放目录的位置
mkdir -p colcon_test02_ws/src && cd colcon_test02_ws
2.然后进行build
这里无需像ROS1中一样,先进行catkin_init
,这里直接使用colcon
进行build
即可,
colcon build --symlink-install
出现结果:
Summary: 0 packages finished [0.39s]
然后出现了相应的目录,这样我们就可以在src
文件中创建我们自己的功能包了,并编写我们自己的源代码文件了
├── build
├── install
├── log
└── src
Reference
d2lros2
ROS2 tutorial