[ros入门]工作区和包的创建

目录

1.创建工作区

2.构建工作区

3.创建自己的包

3.1 创建一个包的架构

3.2 构建自己的包

3.3 Source the setup file:获取安装文件

3.4使用自己的包

3.5检查自己的包

3.6自定义package.xml


1.创建工作区

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

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

ros2的colcon编译器和ros1的catkin编译器区别:与catkin相比没有devel目录。

2.构建工作区

这允许通过更改空间中的文件(例如 Python 文件或其他未编译的资源)来更改已安装的文件,以加快迭代速度。`colcon buildament_cmakedevel--symlink-installsource`

colcon build --symlink-install

#相关参数及意思
--packages-up-to构建您想要的包,以及它的所有依赖项,但不是整个工作区(节省时间)

--symlink-install每次调整 python 脚本时都不必重新构建

--event-handlers console_direct+在构建时显示控制台输出(可以在log目录中找到)

编译后,ros2_ws/src下的的文件目录:

├── build 
├── install
├── log
└── src 存放代码的空间(功能包的代码、配置文件、lunach文件)

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

colcon test

设置环境变量:

colcon 成功完成构建后,输出将在install目录中。您可以使用任何已安装的可执行文件或库之前,需要将它们添加到您的路径和库路径中

colcon 将在install目录中生成 bash/bat 文件以帮助设置环境。这些文件会将所有必需的元素添加到您的路径和库路径中,并提供由包导出的任何 bash 或 shell 命令。

. install/setup.bash

3.创建自己的包

3.1 创建一个包的架构

#1.创建一个包的架构
cd ~/ros2_ws/src
ros2 pkg create --build-type ament_cmake  zhaoyan_package  #<package_name>=zhaoyan_package 
   #可以加一个node-name,可选参数--node-name在包中创建一个简单的 Hello World 类型可执行文件
ros2 pkg create --build-type ament_cmake  zhaoyan_package --node-name zhaoyan_node

3.2 构建自己的包

将包放入工作区特别有价值,因为您可以通过在工作区根目录中运行来一次构建多个包。否则,您将不得不单独构建每个包。colcon build

cd ~/ros2_ws
colcon build --packages-select my_package

3.3 Source the setup file:获取安装文件

要使用新的包和可执行文件,首先打开一个新终端并获取主 ROS 2 安装。

cd ~/ros2_ws
. install/local_setup.bash

3.4使用自己的包

确定要运行您--node-name在包创建期间使用参数创建的可执行文件,请输入命令:

ros2 run zhaoyan_package zhaoyan_node

3.5检查自己的包

cd ~/ros2_ws/src/zhaoyan_package
ls
CMakeLists.txt  include  package.xml  src
  • package.xml:是介绍功能包的信息:名称、版本、功能、开发者信息、开源许可证、依赖信息等等
  • CMakeLists.txt:描述功能包编译的规则,编译时候需要依赖的库

3.6自定义package.xml

创建包后,您可能已经在返回消息中注意到字段descriptionlicense包含TODO注释。这是因为包描述和许可声明不是自动设置的,但如果你想发布你的包,它们是必需的。该maintainer字段可能还需要填写。

cd ros2_ws/src/zhaoyan_package
sudo vim zhaoyan_package.xml
<?xml version="1.0"?>
<?xml-model
   href="http://download.ros.org/schema/package_format3.xsd"
   schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
 <name>my_package</name>
 <version>0.0.0</version>
 <description>TODO: Package description</description>
 <maintainer email="user@todo.todo">user</maintainer>
 <license>TODO: License declaration</license>

 <buildtool_depend>ament_cmake</buildtool_depend>

 <test_depend>ament_lint_auto</test_depend>
 <test_depend>ament_lint_common</test_depend>

 <export>
   <build_type>ament_cmake</build_type>
 </export>
</package>

重新修改树根节点:<description>

<description>Beginner client libraries tutorials practice package</description>

重新修改树根节点:<liscense>

<license>Apache License 2.0</license>

重新修改树根节点:<maintainer>

<maintainer zhaoyan@163.com</maintainer>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值