ros 编译运行C++、python(二)

本文档详细介绍了ROS(Robot Operating System)环境下Python功能包的创建与编译,包括mkdir、catkin_make命令的使用。此外,还阐述了如何授予脚本执行权限,并通过修改配置文件运行ROS节点。同时,解释了环境变量的重要性,特别是对于定位文件路径和执行命令的关键作用。文章最后提到了工作空间中的build、devel和src目录的功能及其在ROS工作流程中的角色。
摘要由CSDN通过智能技术生成

目录

Python编译

新建功能包并初始化

授予执行权限 

环境变量理解




Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

C++编译在另一篇文章

(7条消息) ros集成开发环境搭建(三)c++、python_啥也不是的py人的博客-CSDN博客https://blog.csdn.net/weixin_50920579/article/details/123417706?spm=1001.2014.3001.5501

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环境了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值