ROS Melodic 使用Anaconda环境python3

核心基于该文章:Building ROS Melodic with Python3 support

前提

本文基于上述的核心文章,提出遇到的问题,并提出解决方案,仅供参考。整体流程请按推荐文章走。
1.你已经拥有一个在linux环境下的anaconda虚拟环境
2.使用python3
3.默认python 和 python3 设置为anaconda虚拟环境下的python

第一个问题

在这里插入图片描述
此处教程上会安装一个 python3,且默认位置在/usr/local/lib/python3.6 一定要注意,如果想使用Ananconda的虚拟环境,此处无需下载python3,将第二条指令改为:

sudo apt install -y build-essential

在这里插入图片描述
注意: 此处的pip3安装,一定不要加上sudo ,否则使用的是系统内置下载的python,如果上一步下载了python,则会把这些库装在/usr/local/lib/python3.6/dist-packages,并不在我们所想的anaconda虚拟环境中。所以需要先切换到我们对应的环境下,再使用pip安装。

source activate 你的虚拟环境名
pip3 install rosdep rospkg rosinstall_generator rosinstall wstool vcstools catkin_tools catkin_pkg

第二问题

在这里插入图片描述
这里普遍无法成功,资源都被屏蔽了。还好有人将资源备份到了gitee上,我们通过更改ros的配置文件,来成功初始化。
首先到/anaconda3/lib/python3.7/site-packages里寻找

./rosdistro/__init__.py
./rosdep2/gbpdistro_support.py
./rosdep2/sources_list.py 
./rosdep2/rep3.py

然后在每个文件内搜索raw.githubusercontent.com/ros/rosdistro/master,将其替换成gitee.com/zhao-xuzuo/rosdistro/raw/master,每个文件都只有一个URL需要替换。
然后再重新执行,即可成功

sudo rosdep init
rosdep update

第三问题

在这里插入图片描述在执行此处第一步时,一直报错,查询后:
rosinstall_generator desktop_full --rosdistro melodic --deps --tar > melodic-desktop-full.rosinstall
去掉 --tar,改为
rosinstall_generator desktop_full --rosdistro melodic --deps > melodic-desktop-full.rosinstall
会直接下载,更容易成功。
如果有下载失败的,如下:

Exception caught during install: Error processing 'filters' : [filters] Checkout of https://github.com/ros-gbp/filters-release/archive/release/melodic/filters/1.8.2-1.tar.gz version filters-release-release-melodic-filters-1.8.2-1 into /home/meroke/ros_catkin_ws/src/filters failed.
Error processing 'rqt_py_console' : [rqt_py_console] Checkout of https://github.com/ros-gbp/rqt_py_console-release/archive/release/melodic/rqt_py_console/0.4.8-0.tar.gz version

复制报错模块的下载网址如
https://github.com/ros-gbp/filters-release/archive/release/melodic/filters/1.8.2-1.tar.gz
复制到网页,点击下载,然后将模块解压后放入src文件夹内。
再次运行指令wstool update -j4 -t src 直至无错误。

注:此处说明这里安装的ros和使用 sudo apt-get install ros-melodic-desktop-full的区别
本方法:
ros的包都在~/ros_catkin_ws/install/include lib share三个文件夹中
使用apt-get install:
ros的包都在/opt/ros/melodic/include lib share三个文件夹中
如有独立的模块包如gmapping|、map_server等,使用apt install ros-melodic-xxx,会下载到/opt/ros/melodic/include lib share中,此处将新内容复制到~/ros_catkin_ws/install/对应的位置即可。
警告/opt/ros/melodic/是python2版本的,如果使用sudo install ros-melodic-xxx,再将包复制到~/ros_catkin_ws/install/内,由于部分库不支持python3,会导致运行出错,如gazebo模型加载失败。如果发生此错误,只需回到~/ros_catkin_ws/ ,运行catkin build

在这里插入图片描述

$ sudo ./install_skip `rosdep check --from-paths src --ignore-src | grep python | sed -e "s/^apt\t//g" | sed -z "s/\n/ /g" | sed -e "s/python/python3/g"`

在执行这一步时,遇到了提示找不到 python33-rosdep等一些列包的问题,很明显,我这里显示多了个3,于是我去掉命令中最后的3,即可成功。
但这可能是由于我将默认python和python3都设置成了虚拟环境中的python3的问题。如果原指令没问题,则继续使用原指令。

后续运行非常顺利。

参考资料:安装ROS

http://www.autolabor.com.cn/book/ROSTutorials/chapter1/12-roskai-fa-gong-ju-an-zhuang/124-an-zhuang-ros.html

### 回答1: 要在ROS Melodic使用Python 3,需要安装Python 3的相关库和工具。可以按照以下步骤进行操作: 1. 安装Python 3 在Ubuntu 18.04中,Python 3已经预装。如果没有安装,可以使用以下命令安装: ``` sudo apt-get install python3 ``` 2. 安装Python 3的ROS依赖库 在ROS Melodic中,需要安装Python 3的ROS依赖库。可以使用以下命令安装: ``` sudo apt-get install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential ``` 3. 创建Python 3的ROS工作空间 可以使用以下命令创建Python 3的ROS工作空间: ``` mkdir -p ~/catkin_ws_py3/src cd ~/catkin_ws_py3/ catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3 ``` 4. 设置Python 3的ROS环境变量 可以使用以下命令设置Python 3的ROS环境变量: ``` echo "source ~/catkin_ws_py3/devel/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 5. 编写Python 3的ROS程序 现在可以使用Python 3编写ROS程序了。在Python文件的开头,需要添加以下代码: ``` #!/usr/bin/env python3 ``` 这样可以确保使用Python 3来运行程序。 6. 运行Python 3的ROS程序 可以使用以下命令运行Python 3的ROS程序: ``` rosrun package_name node_name.py ``` 其中,package_name是ROS包的名称,node_name.py是Python 3的ROS节点文件名。 ### 回答2: ROS是一个机器人操作系统,已经成为许多机器人和自动化领域的标准。ROS的版本很多,其中ROS Melodic是针对Ubuntu 18.04操作系统的最新版本。与较老的ROS版本相比,ROS Melodic具有更大的兼容性和更多的功能。值得一提的是,ROS Melodic使用Python版本已经从Python2转移到了Python3PythonROS中最常用的编程语言之一。在ROS Melodic中,Python3被用作默认Python解释器。这意味着你应该使用Python3来编写ROS Melodic中的程序,而不是使用Python2。使用Python3编写的ROS程序具有更好的性能和更长的生命周期,因为Python2的支持已经于2020年1月停止。 一些ROS中的常用Python库也已经升级到Python3版本,例如rospy,其中的一些API与Python2相比略有变化。所以,如果你的代码是用Python2编写的,若想迁移到ROS Melodic中,则需要相应地更改它。 总的来说,ROS MelodicPython3支持使得编写ROS应用程序更容易、更深入,并且更适合在现代计算机系统中运行。如果你正在使用ROS Melodic,强烈建议开始使用Python3来编写你的ROS程序。 ### 回答3: ROS(机器人操作系统)是一个开源的、灵活的、分布式的机器人软件框架,用于构建机器人和其他自动化系统。它包含大量工具和库,可以简化机器人应用程序的开发、测试和部署。ROS支持多种编程语言,如C ++、Python等。ROS MelodicROS的一个版本,它是ROS的第十个正式版本,于2018年5月23日发行。 在ROS Melodic中,Python 3成为了官方建议的编程语言。这意味着开发者可以使用Python 3编写ROS的节点、消息、服务和其他ROS组件,而无需改变ROS的基本运行原理。在 ROS Melodic中,Python 3已经默认成为ROSPython的解释器。 此外,ROS还提供了与Python 3兼容的库和工具,如rosbag、rviz、roscore等,他们可以使用Python 3脚本通过ROS API进行控制和交互。Python 3的高级功能可以更好地支持ROS的开发和自动化,例如异步编程和并发执行。 需要注意的是,在ROS Melodic中,Python 2仍然可以被使用,但是官方建议使用Python 3以便更好地支持未来的ROS版本。此外,一些ROS社区成员和开发者可能仍然使用Python 2来编写他们的ROS组件和应用程序。 因此,当编写ROS应用程序时,需要考虑Python 2和3之间的兼容性问题。 总结来说,ROS Melodic使用Python 3作为官方建议的编程语言,提供了与Python 3兼容的库和工具,并提供了支持异步编程和并发执行的高级功能,以更好地支持ROS的开发和自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值