问题引入
- ROS Melodic的默认环境是python2, 最新发布的ROS noetic才完全支持python3。因此对用ROS Melodic开发项目, 同时需要使用python3编写程序的使用者造成了一定的困扰。
- vscode集成编译器为ros开发提供了很大的便利,但其包含了一些特殊的使用方法如json文件等
- ros主要用于机器人的开发,机器人的感知与决策往往需要使用机器学习和深度学习技术,python的第三方库(如:pytorch、tensorflow和sklearn)就提供了很大的便利,为了便于管理开发者往往使用anaconda环境,但网上针对于ros使用python3很少有在anaconda基础上解决的。
环境
1.编辑器vscode 2.ROS版本melodic 3.系统ubuntu18.04
4.anaconda(python3.7.4)
解决步骤(已经满足并正确安装上述环境)
1.首先保证python默认环境是anaconda
1.png2.安装python依赖库
pip install catkin-tools
pip install rospkg
3.正常创建ros工作空间
-DPYTHON_EXECUTABLE=后面为你自己anaconda解释器的路径
mkdir -p xxx_ws/src(必须得有 src)
cd xxx_ws
catkin_make -DPYTHON_EXECUTABLE=/home/zhw/anaconda3/bin/python
4.启动vscode
cd xxx_ws
code .
5.在vscode配置tasks.json
使用快捷键ctrl+shift+b,出现下图界面,选择catkin_make:build后面的齿轮
2.png
修改.vscode/tasks.json 文件,注意 -DPYTHON_EXECUTABLE=后面的路径
{
// 有关 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": ["-DPYTHON_EXECUTABLE=/home/zhw/anaconda3/bin/python "],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
}
]
}
到这步已经可以使用ctrl+shift+b快捷编译,相当于catkin_make DPYTHON_EXECUTABLE=/home/zhw/anaconda3/bin/python
命令
6.在scripts文件夹下创建python文件
3.png创建代码,代码第一行要给出解释器位置。
#! /home/zhw/anaconda3/bin/python
"""
Python 版本的 HelloVScode,执行在控制台输出 HelloVScode
实现:
1.导包
2.初始化 ROS 节点
3.日志输出 HelloWorld
"""
import numpy
import rospy # 1.导包
if __name__ == "__main__":
rospy.init_node("Hello_Vscode_p") # 2.初始化 ROS 节点
rospy.loginfo("Hello VScode, 我是 Python ....") #3.日志输出 HelloWorld
修改编译文件后正常测试即可。
网友评论