ROS学习笔记(二)—使用 VScode 开发 ROS 的Python程序(简例)

  • Post author:
  • Post category:python



ROS学习笔记文章目录


01. ROS学习笔记(一)—Linux安装VScode



02. ROS学习笔记(二)—使用 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”配置设置为默调用编译。

替换成的代码:

{
// 有关 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!”代码如下:

#! /usr/bin/env python
#coding:utf-8
#第一行解释器声明
#第二行是当程序使用了中文,python2默认的编码格式是ASCII格式,python3默认的编码格式是utf-8格式,我是python2.7
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文件,今天你学废了吗?



版权声明:本文为lyx4949原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。