使用 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文件,今天你学废了吗?

相关推荐
笨鸟先飞,勤能补拙3 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能4 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂4 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study5 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境6 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境6 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1236 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy12393102166 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb007 小时前
一个项目带你入门AI应用开发01
python
0566467 小时前
Python康复训练——常用标准库
开发语言·python·学习