理解ROS功能包(三):创建功能包和ROS环境

理解ROS功能包(三):创建功能包和ROS环境

上一篇中创建好了工作空间,现在开始在工作空间中创建具有实际功能的功能包

1.创建功能包:

//创建指令
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
//之后就会生成一个功能包
package/
  CMakeLists.txt
  package.xml
  ...

进入后会发现里面有两个文件:

CMakeLists.txt和一般的cmake文件完全一样,但是都默认设置好了和ROS相关的一些文本。

package.xml可以理解为ROS专用的一种cmake,专门给ROS看的。

//回到工作空间起始位置
catkin_make
//之后会在功能包内自动产生两个文件夹src和include,这里可以先完全不去管它们

2.ROS环境:

ROS环境是由一个个工作空间组成的。

大家都熟悉使用apt-install来安装功能包,这些功能包并不会像一般软件那样安装,因为既然是用于ROS的功能包,必然要放置在一个工作空间中才行,因此它们会被放在ROS的默认工作空间里。

关于工作空间的注册在上一篇中已经说到了,其实就是在bashrc中加入自动source的指令,使得ROS可以知道目标工作空间的存在。

关于工作空间还有一个有意思的问题是:如果两个功能包同名,在ROS阅读了package.xml后它会看到两个一样的功能包,它会选择执行哪个?

这个问题的解决方式是避而不答,也就是不要这么做。但是对于apt-install安装的功能包,如果后来又在用户自己创建的工作空间里用源码安装了相同的功能包,那么可以通过env | grep ros查找到有关ROS_PACKAGE_PATH的信息,就会发现默认工作空间中的功能包会被用户自定义的工作空间中的同名功能包覆盖。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS(Robot Operating System)是一个用于机器人开发的开源框架,它提供了一系列的工具和库,使机器人开发更加高效和便捷。在ROS中,功能是最基本的组织单元,它含了所有相关的代码、配置文件和资源等,用于实现特定的功能。 下面是ROS功能创建和编译过程: 创建一个功能: 1. 打开终端,进入ROS工作空间的src目录下 2. 运行以下命令来创建一个新的功能: ``` catkin_create_pkg <package_name> [dependency1] [dependency2] [dependency3] ``` 其中,`<package_name>`是你想要创建功能的名称,`[dependency1] [dependency2] [dependency3]`是该功能所依赖的其他功能的名称,如果没有依赖,则可以省略。 3. 进入新创建功能目录下,可以看到已经创建了一些默认的文件夹和配置文件,如`src`、`include`、`launch`等。 编写代码和配置文件: 1. 在`src`目录下创建源文件,例如`my_node.cpp`。 2. 编写代码,实现你想要的功能。 3. 在`CMakeLists.txt`文件中添加源文件和依赖项,以便编译时能够找到和链接它们。 4. 在`package.xml`文件中添加依赖项和其他必要的信息。 编译功能: 1. 打开终端,进入ROS工作空间的根目录。 2. 运行以下命令构建整个工作空间: ``` catkin_make ``` 这会编译所有的功能和依赖项,并生成可执行文件和库文件。 3. 运行以下命令,激活ROS环境: ``` source devel/setup.bash ``` 4. 运行你的节点,例如: ``` rosrun <package_name> my_node ``` 至此,你已经成功创建了一个ROS功能,并编写了代码和配置文件,并且通过编译和运行验证了你的代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值