美文网首页
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