melodic版本ROS使用anaconda中的python

问题引入

  • 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

melodic版本ROS使用anaconda中的python_第1张图片

2.安装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后面的齿轮
melodic版本ROS使用anaconda中的python_第2张图片
修改.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文件

melodic版本ROS使用anaconda中的python_第3张图片
创建代码,代码第一行要给出解释器位置。

#! /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

修改编译文件后正常测试即可。

你可能感兴趣的:(vscode,python)