conda虚拟环境使用rosbag等包

conda虚拟环境使用ROS包

ROS提供了许多Python的包可供使用,并且这些包是不需要安装ROS就可以直接使用的,比如在Windows系统中想对bag包进行处理,但Windows系统并不支持ROS,这时就可以直接在conda里面直接安装ROS的一些工具包。第一部分首先讲解了如何在没有安装ROS系统中安装和使用这些包,第二部分讲解如果我们已经在Ubuntu系统中安装了ROS之后应该如何正确的调用这些包。调用rosbag包的时候有很多雷点,记录下来帮大家避免。

不安装ROS

首先,我们需要在Windows或Ubuntu系统中创建一个conda虚拟环境

conda create -n ros_ws python=3.x

虚拟环境的名字可以自定义,python版本可以根据需求安装,但是安装ROS的包要根据安装的python版本来进行下载。

进入虚拟环境

conda activate ros_ws

安装需要的bag包

pip install rosbag -i https://rospypi.github.io/simple/

这一步,-i表示的是指定下载源,如果不指定,可能会安装错误。因为pip是有默认的源,我自己设置了pip的源为阿里的源,在安装包的时候就会去阿里源寻找对应的包,如果不指定rospypi这个源,可能会下载到重名的但不正确的包。比如genpy这个包,在后面会遇到。

经过这一步就可以成功安装rosbag包。但也有可能会出现rosbag包已存在的情况,这将在已安装了ROS的环境中出现,我们会在第二部分讲解遇到这种情况的解决方案。

此时进入python环境,输入

import rosbag

此时有可能报错缺失某些包,比如

No module named 'roslib'/'genpy'/'genmsg'/'pycrypto'/'roslz4'...

这时首先应该打开上面的网址rospypi, 在这个网站里面查看缺失的包是否存在,如果存在,我们的安装指令就和安装rosbag一致:

pip install roslib -i https://rospypi.github.io/simple/
pip install genpy -i https://rospypi.github.io/simple/
pip install genmsg -i https://rospypi.github.io/simple/
pip install roslz4 -i https://rospypi.github.io/simple/

注意genpy一定要用-i,因为阿里源有一个重名的genpy包,但完全不一致。

pycrypto这个包不在rospypi这个源里,所以直接pip即可

pip install pycrypto

所有的包都安装完成之后就可以直接

import rosbag

此时应该可以成功。

已安装了ROS的情况

在目前大部分的安装ROS的教程中都会在最后一步执行

gedit ~/.bashrc
source /opt/ros/melodic/setup.bash

这一步可以让我们直接在使用ROS的时候不需要source直接就可以运行roscore、rosbag等指令。
这很方便,但是他在这一步向我们的系统环境中添加了一句

export PYTHONPAT=/opt/ros/melodic/lib/python2.7/dist-packages

这相当于我们所有的Python环境都默认额外加了这个环境,这里面也会有一个rosbag,但这个rosbag对应的是python2.7版本,如果你使用的python版本就是python2.7,那么则不需要再继续看下去,只需要根据需求安装缺少的包即可。但如果使用的是python3.x及以上的版本,就会报错,解决方案如下。

其实解决方案非常简单,那就是我们进入

gedit ~/.bashrc
# source /opt/ros/melodic/setup.bash

将下面的一行注释掉,这时我们在按照上面的步骤进行安装需要的包即可。还有可能遇到的问题就是如果不想用pip进行安装(有可能打不开上面那个网址),也可以用conda安装。

比如我们要用conda安装rosbag,在conda默认的channel里面是没有这个包的,所以指令应该改成下面的:

conda install -c conda-forge ros-rosbag

这样或许能够安装成功,但也有可能卡在solving environment这里一直转,那么还有备选方案

我们可以访问anaconda官网,这里可以搜索自己需要的包,比如搜索rosbag,搜索出来找你需要的,一般是找名字对应你的ros版本的,并且最好是官方的而且下载数量比较多的,那就是正确的。点击进去后,点击Files,在里面找到你需要的**(一定要注意!!下载的时候要看清楚对应的PYTHON版本!!!)**,并下载。

下载完成之后,将下载的tar,bz2放到anaconda/pkgs里,并执行下面的指令进行安装。

conda activate ros_ws
cd home/anconda3/pkgs
conda install --use-local ros-rosbag-1.14.3-py36h398749e_1.tar.bz2

至此已经安装完成,此外不只是ros的包,其他所有无法用conda install直接安装的都可以通过这种方法安装。很方便。

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值