ROS:创建工作空间和编译功能包

一、工作空间

存放工程开发相关文件的文件夹。类似一个IDE(例如Pycharm)新建一个工程,就是一个工作空间。包含4个文件夹:
src:代码空间(Source Space):放置功能包代码
build:编译空间(Build Space):编译过程中产生的中间文件,不用过多关注
devel:开发空间(Development Space):放置编译生成的可执行文件、库、脚本
install:安装空间(Install Space):存放可执行文件,与上面有一定重复
在这里插入图片描述

二、创建工作空间

主要使用的命令行如下:

mkdir -p ~/catkin_ws/src   //创建一个src文件夹
cd ~/catkin_ws/src        //进入该文件夹
catkin_init_workspace     //将当前文件夹变为工作空间,使其拥有工作空间的属性

注:“~/”意为当前用户名目录;“-p”意为递归创建目录,即直接创建多级目录。
src文件夹即代码空间,不能自行用别的名称代替
在这里插入图片描述

三、编译空代码的工作空间

要编译工作空间,先要回到工作空间的根目录。
主要命令行如下:

cd ~/catkin_ws
catkin_make     //编译指令,将src里的源码都进行编译

在这里插入图片描述
执行完以上步骤没有生成install文件夹,要生成install文件夹,输入

catkin_make install

在这里插入图片描述
install中生成了可执行文件。
执行完以上步骤一个空的工作空间创建好了,并且空的代码空间(功能包)编译完成。

四、功能包

功能包是放置ROS源码的最小单元。
上面我们创建了一个空的工作空间,src文件夹里面没写东西,现在我们创建一个自己的功能包。
注意同一工作空间下,不允许存在同名功能包;不同工作空间下,允许存在同名功能包。

五、创建功能包

命令行

catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

<package_name>为包名
[depend]为依赖,即指明编译的时候需要ROS中的其他功能包,如需要调用python、C++库,就要指明rospy、roscpp

cd ~/catkin_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp

在这里插入图片描述
创建完成功能包后需要编译功能包,步骤和第三步一样

cd ~/catkin_ws
catkin_make

在这里插入图片描述

六、设置和检查环境变量

编译完功能包后,为了运行,先设置环境变量,以便系统找到我们的工作空间和功能包。

source devel/setup.bash

检查环境变量

echo $ROS_PACKAGE_PATH

echo为打开环境变量,通过 ROS_PACKAGE_PATH 查找所有ros功能包的路径。
前面source了 devel/setup.bash ,现在就会包含这个路径:
在这里插入图片描述

七、功能包中的两个重要文件

1、package.xml
使用xml语言描述功能包相关的信息:
在这里插入图片描述
2、CMakeLists.txt
描述功能包里的编译规则,使用CMake语法。
在这里插入图片描述
参考视屏:古月居ROS入门21讲
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ROS Melodic中,创建工作空间编译功能的具体步骤如下: 1. 创建工作空间(workspace):在ROS中,工作空间是一个文件夹,用于存放ROS功能(packages)。可以使用以下命令创建一个名为“catkin_ws”的工作空间: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` 其中,“~/catkin_ws/src”是存放ROS功能的文件夹,“catkin_make”是编译ROS功能的命令,它会在工作空间创建一个“build”文件夹和一个“devel”文件夹。 2. 创建ROS功能(packages):在工作空间的“src”文件夹中,可以使用以下命令创建一个名为“my_package”的ROS功能: ``` cd ~/catkin_ws/src catkin_create_pkg my_package rospy std_msgs ``` 其中,“my_package”是功能的名称,“rospy”和“std_msgs”是该功能所依赖的ROS软件。 3. 编写ROS节点(nodes):在功能创建一个python文件,并编写ROS节点的代码。例如,可以在“my_package/src”文件夹中创建一个名为“my_node.py”的python文件,并编写如下代码: ```python #!/usr/bin/env python import rospy from std_msgs.msg import String def my_node(): rospy.init_node('my_node') pub = rospy.Publisher('my_topic', String, queue_size=10) rate = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): hello_str = "hello world %s" % rospy.get_time() rospy.loginfo(hello_str) pub.publish(hello_str) rate.sleep() if __name__ == '__main__': try: my_node() except rospy.ROSInterruptException: pass ``` 该节点会发布一个名为“my_topic”的话题,每秒钟发布10条消息。 4. 编译ROS功能:使用以下命令编译ROS功能: ``` cd ~/catkin_ws/ catkin_make ``` 该命令会在“build”文件夹中生成一个“my_package”文件夹,其中编译后的ROS节点。 5. 运行ROS节点:使用以下命令运行ROS节点: ``` rosrun my_package my_node.py ``` 该命令会启动ROS节点,并开始发布消息到“my_topic”话题。可以使用以下命令查看消息: ``` rostopic echo my_topic ``` 以上就是在ROS Melodic中创建工作空间编译ROS功能的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello xiǎo lěi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值