< >
Home » ROS2与C++入门教程 » ROS2与C++入门教程-新建ros2工作空间

ROS2与C++入门教程-新建ros2工作空间

ROS2与C++入门教程-新建ros2工作空间

说明:

  • 介绍如何创建ros2工作空间

概念:

  • 工作空间是包含ROS2软件包的目录。
  • 在使用ROS2之前,有必要在计划使用的终端中提供ROS2安装工作区。
  • 这使ROS2的软件包可供您在该终端中使用。
  • 您还可以选择“覆盖”资源–一个辅助工作空间,您可以在其中添加新软件包而不会干扰正在扩展的现有ROS2工作空间或“底层”。
  • 参考底层必须包含覆盖层中所有软件包的依赖项。
  • 叠加中的包将覆盖底层中的包。
  • 也可以有多个参考底层和覆盖层,每个后续的覆盖层都使用其父参考底层的包。

步骤:

  • 要加载ros2工作空间
  • 如果是apt安装的ros2,假设安装为foxy版本
source /opt/ros/foxy/setup.bash
  • 如果是源码安装的ros2,假设安装在~/ros2_ws/目录下
source ~/ros2_ws/install/local_setup.bash
  • 创建新的工作空间
mkdir -p ~/dev_ws/src
cd ~/dev_ws/src
  • 克隆一个例子软件包
~/dev_ws/src$ git clone https://github.com/ros/ros_tutorials.git -b foxy-devel
  • 查看包结构:
~/dev_ws/src$ ls ros_tutorials/
roscpp_tutorials  rospy_tutorials  ros_tutorials  turtlesim
  • 解决包的依赖
rosdep install -i --from-path src --rosdistro foxy -y
  • colcon 编译
~/dev_ws$ colcon build --symlink-install
Starting >>> turtlesim
Finished <<< turtlesim [21.0s]                       

Summary: 1 package finished [21.2s]
  • 编译后目录结构
~/dev_ws$ ls
build  install  log  src

测试新工作空间

  • 新开终端,ros2底层工作空间
source /opt/ros/foxy/setup.bash
  • 加载dev工作空间
cd ~/dev_ws
. install/setup.bash
  • 这样新的dev工作空间下的相关包会覆盖ros2底层的相关包

验证新工作空间的是否会覆盖

  • ros2底层本身带有turtlesim包,dev工作空间也带有turtlesim包

  • 那么我们通过修改dev工作空间的包来确认是否运行的是dev下工作空间下的turtlesim包

  • 修改turtle_frame.cpp,位于~/dev_ws/src/ros_tutorials/turtlesim/src

  • 修改setWindowTitle("TurtleSim")etWindowTitle("MyTurtleSim");

  • 重新编译下工作空间

cd ~/dev_ws/
colcon build --symlink-install 
  • 运行turtlesim_node
ros2 run turtlesim turtlesim_node
  • 如图:

请输入图片描述

  • 图片上的标题已经变更为MyTurtleSim,说明新工作空间下同名包,已经覆盖了底层工作空间的同名包

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ROS2与C++入门教程