一、任务介绍
本篇作为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
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文件,今天你学废了吗?