目录
Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
C++编译在另一篇文章
Python编译
新建功能包并初始化
打开终端
mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make
上述命令,首先会创建一个工作空间以及一个 src 子目录,
然后cd再进入工作空间调用 catkin_make命令编译。
进入 src 创建 ros 包并添加依赖
cd src
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
上述命令,会在工作空间下生成一个功能包,该功能包依赖于 roscpp、rospy 与 std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
cd ros包
mkdir scripts
打开文本文件后复制到文本里
然后点击保存
授予执行权限
chmod +x hello.py
以上命令添加执行权限
可以看到此时有执行权限
然后编辑配置文件
然后对这段进行更改
改成
然后在工作空间中打开终端编译
catkin_make
成功后
再打开一个终端
roscore
因为ros中所有节点都是依赖于这个核心节点
然后对应输入
source ./devel/setup.bash
rosrun rospy(包含hello.py的srcipts的上级目录) hello.py
source
linux里source、sh、bash、./有什么区别 - pcat - 博客园 (cnblogs.com)https://www.cnblogs.com/pcat/p/5467188.html
可以看到执行成功
环境变量理解
环境变量是参数(临时文件夹位置和系统文件位置)
理解:
假如你现在相当于一个计算机,你收到命令,命令是“去一个陌生的地方取快递”,地方那么多,你根本就不知道去哪里取快递,路线你也不知道,但是假如给你一个环境变量,环境变量=快递店的地址,那你是不是很好执行这个命令了?
所以说,计算机操作系统里面设置环境变量其实就是设置一定的文件路径,让计算机执行命令的时候方便找到。所以ROS中环境变量就是为了让计算机更方便的找到文件所在的路径来执行。
build:主要是放置程序编译的一些中间文件,可以不用了解;
devel:这个文件夹存放一些可执行文件以及环境变量配置的脚本文件,也就是待会我们主要讲解的一个文件夹;
src:主要存放程序代码、功能包。
上面这两个工作空间中都有存放功能包和源代码,我们调用这些功能包或者运行这些源代码的方式就是用终端来运行,这个大家应该都知道了,为了方便终端找到这些功能包和源代码,每一个工作空间在编译成功之后,ROS它自己都会自动生成一个setup.bash文件,这个文件就叫做这个工作空间的环境变量配置脚本。
我们创建的工作空间的环境变量配置脚本文件setup.bash就在上面我们说到的devel文件夹下。
- 使用source方式运行script时, 就是让script在当前process内执行, 而不是产生一个child process来执行。由于所有执行结果均于当前process内完成,若script的环境有所改变, 当然也会改变当前process环境了。