使用 VScode 开发 ROS 的Python程序(简例)

一、任务介绍

本篇作为ROS学习的第二篇,是关于如何在Ubuntu18.04中使用VSCode编写一个Python程序,输出"Hello!"的内容介绍。

首先我们来了解下ROS的文件系统,ROS文件系统级指的是在硬盘上ROS源代码的组织形式,其结构大致可以如下图所示:

复制代码
|--- devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。
|--- build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。
|--- src: 源码
	|-- package:功能包(ROS基本单元)包含多个节点、库与配置文件
	            |-- CMakeLists.txt 配置编译规则,比如源文件、依赖项、目标文件
       			|-- package.xml 包信息,比如:包名、版本、作者、依赖项...(以前版本是 manifest.xml)
    		    |-- scripts 存储python文件
   			    |-- src 存储C++源文件

二、实施

1.创建ROS工作空间

在"主文件夹>主目录中"右键,点击新建文件夹,输入文件夹名称,要以'_ws'结尾,创建工作空间。

创建src,双击demo02_ws,进入文件夹再继续创建src文件夹,然后右键,选择"在终端打开"

2.编译工作空间

在终端输入catkin_make,回车后,会在工作空间demo02中生成另外两个文件夹。

(以上操作也可以使用命令行,怎么方便怎么来)

3.使用VScode打开工作空间

在demo02_ws右键终端内输入"code ./"然后回车就会以VSCode环境打开打开demo02_ws。

4.vscode 中编译 ros

按下快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build,选择后面的小齿轮

点击小齿轮后进入vscode/tasks.json 文件,将其中的代码全部替换成下面代码,这样可以以后直接将快捷键" ctrl + shift + B"配置设置为默调用编译。

替换成的代码:

python 复制代码
{
// 有关 tasks.json 格式的文档,请参见
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "label": "catkin_make:debug", //代表提示的描述性信息
            "type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
            "command": "catkin_make",//这个是我们需要运行的命令
            "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES="pac1;pac2"
            "group": {"kind":"build","isDefault":true},
            "presentation": {
                "reveal": "always"//可选always或者silence,代表是否输出信息
            },
            "problemMatcher": "$msCompile"
        }
    ]
}

替换后:

5.创建 ROS 功能包

鼠标右键选中 src> create catkin package,然后再输入框键入工作包名称

添加依赖,这里主要有3个 roscpp rospy std_msgs
回车之后,可以在demo02_ws工作空间内看到创建好的ROS功能包"hello"

6.创建python文件

在hello文件夹内继续创建python的存储文件夹scrpits,右击hello>新建文件夹,命名为scripts,接着继续右击scripts,选择创建文件,并命名为"helloworld_p.py"

这里,我们要实现的功能是直接打印"HelloWorld!"代码如下:

python 复制代码
#! /usr/bin/env python
#coding:utf-8
import rospy 


if __name__ == "__main__":

    rospy.init_node("Hello_Vscode_p")  # 2.初始化 ROS 节点    
    rospy.loginfo("HelloWorld, 我是 VSCode!")  #3.日志输出 HelloWorld
    

7.添加python可执行权限

①右击scripts文件,选择在集成终端中打开,然后输入"chmod +x *.py"为script文件夹内的python文件添加可执行权限,通过调用"ll" 可以查看是否添加成功。

8.配置 CMakeLists.txt

在CMakeLists.txt中找到大概第162行的catkin_install_python,将原来的自动生成python文件名改成你自定义文件名.py

9.编译python文件

①按下快捷键ctrl + shift + B,如果编译没有问题就可以继续下一步操作。

②打开新的终端,然后打开roscore。(roscore === 是 ROS 的系统先决条件节点和程序的集合, 必须运行 roscore 才能使 ROS 节点进行通信)

③再继续打开一个新的终端,输入"source ./devel/setup.bash"回车之后,继续输入"rosrun hello helloworld_p.py" 即"rosrun+包名+.py名":运行指定的ROS节点

以上就是在Ubuntu中使用Vscode来编写一个ros的python文件,今天你学废了吗?

相关推荐
小江的记录本5 小时前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
APIshop6 小时前
Python 获取 1688 商品采集 API 接口 | 工厂货源自动化对接商品信息 | 无需选品
运维·python·自动化
deepin_sir6 小时前
10 - 函数
开发语言·python
charlee447 小时前
《GIS基础原理与技术实践》配套案例(Python版)
python·conda·numpy·gis·环境配置
枫叶林FYL7 小时前
项目十:事件溯源仓储管理系统(WMS)仿真实现
开发语言·python
渣渣xiong9 小时前
从零开始:前端转型AI agent直到就业第五十七天-第五十八天
前端·人工智能·python
小L~~~10 小时前
基于贪心策略的混合遗传算法求解01背包问题
python·算法
才兄说10 小时前
机器人二次开发机器人动作定制?动作迁移数据优化
python
用户83562907805110 小时前
用 Python 实现 Excel 散点图绘制与定制
后端·python
PAK向日葵11 小时前
从零实现 Python 虚拟机(一):PVM 基本原理介绍
python