美文网首页
melodic版本ROS使用anaconda中的python

melodic版本ROS使用anaconda中的python

作者: 瀚文文文问问 | 来源:发表于2021-11-04 19:55 被阅读0次

问题引入

  • 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.png

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后面的齿轮


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

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

相关文章

网友评论

      本文标题:melodic版本ROS使用anaconda中的python

      本文链接:https://www.haomeiwen.com/subject/covkzltx.html