一、系统版本
Ubuntu 18.04 ;ROS-melodic ;Miniconda;python3通过conda创建的python3.6
二、ROS安装
若是曾安装过ROS,现在使用无法更新源可以参考:ROS upgrade失败。
若未安装过ROS可以参考官网在终端中输入指令(Ctrl+Alt+T)安装:ROS-melodic安装。
三、Miniconda安装
直接在浏览器进入Miniconda官网选择Linux系统,在ubuntu终端输入指令即可安装。
Miniconda的常用操作:
1.查看安装包
conda list
2.查看已创建的虚拟环境
conda env list
conda info -e
3.检查并更新conda
conda update conda
4.创建python的虚拟环境
conda create -n your_env_name(虚拟环境名称) python=x.x(python版本号,常用3.6,3.7,3.8)
直接回车或者输入y再回车均可
出现上述即可创建完成,红色框框指令是进入ros_pytorch环境,绿色框框是退出环境指令
先进入虚拟环境
5.进出虚拟环境
进入(激活):conda activate your_env_name
退出:conda deactivate
6.conda安装包,若是包安装慢参考此链接
conda install XXX(包名)
pip install xxx(包名)
7.删除conda创建的虚拟环境
conda remove -n your_env_name(虚拟环境名称) --all
8.删除某个包
conda remove --name $your_env_name(包名) $package_name(包名)
9.更换源,直接复制在终端粘贴即可
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
10.恢复conda默认源
conda config --remove-key channels
回车后不会有内容输出
11.查看更换源
conda config --show
回车后会输出很多信息,只有这部分是我们加载进conda的源
四、配置conda中python3的ROS
本文使用conda去管理Python3的ROS,这样即不影响ubuntu原生的python2的ROS,根据不同调整环境中的包
1.创建conda的虚拟环境
conda create -n ros_pytorch python=3.6
2.激活环境
conda activate ros_pytorch
3.更新pip版本
pip install --upgrade pip
直接更新慢也可以上述链接
4.由于pytorch和opencv等包安装因网络、源等环境问题可能会出现各种奇怪小问题,因此先安装pytorch,opencv等库,确保了兼容深度学习后再安装编译ROS相关内容(本文以CPU环境为例)
(1)作者尝试过在Pytorch官网中复制相关安装指令安装pytorch,但显示torch-1.10.2等版本无法安装,并安装了较低的版本,无法正常兼容深度学习(YoloV5)等模型开发因此我在torch库中先下载了预想的1.10.2+cpu的torch版本以及兼容torch的torchvision,传入到ubuntu中利用一下命令安装即可(在conda创建的虚拟环境下安装)
理论使用pip install xxx即可安装,但是安装时会安装其他包,因此给安装是附上我们的下载源,当需要下载时根据提供的源下载,提高效率
安装命令
pip install -i https://mirrors.aliyun.com/pypi/simple/ torchvision-0.11.3+cpu-cp36-cp36m-linux_x86_64.whl torch-1.10.2+cpu-cp36-cp36m-linux_x86_64.whl
成功安装
(2)安装opencv
由于opencv在python库中提供,因此安装需要使用pip安装,同时安装名称为opencv-python,有时候可能会遇到成功下载电视build很久的,此时可以安装低一点版本或者高一点版本都没问题的
pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python==4.5.4.60
(3)在conda环境下安装ROS相关包
pip install -i https://mirrors.aliyun.com/pypi/simple/ numpy pyyaml rosdep catkin_pkg rospkg rosinstall
(4)因为深度学习是调用ubuntu摄像头数据,因此,需要配置ROS图像转换等包,同时不能干扰ubuntu原生python的ROS
首先创建一个新的工作空间并初始化
mkdir -p catkin_ws_c/src && cd catkin_ws_c/src
catkin_init_workspace
拉取vision_opencv包,若是无法直接拉取可预先下载好在放入Ubuntu的工作空间src目录下,文件夹命名为vision_opencv
git clone https://gitee.com/irvingao/vision_opencv.git
输入下述指令查看python路径,我们选择的是conda目录下的,我们用到路径是在conda下末尾为python3.6m和python
whereis python
返回catkin_ws_C目录下
cd ..
配置编译catkin_ws_c工作空间的文件
export CPLUS_INCLUDE_PATH=/home/cml/miniconda3/envs/ros_pytorch/bin/python3.6m(路径一定要改成自己的python3.7m路径)
使用指定编译器编译工作空间
catkin_make install -DCMAKE_BUILD_TYPE=Release -DSETUPTOOLS_DEB_LAYOUT=OFF -DPYTHON_EXECUTABLE=/home/cml/miniconda3/envs/ros_pytorch/bin/python (python地址一样要改成自己安装的地址)
编译后没有警告,没有报错,那么我们的工作空间就编译成功了!!!
同时我们也可以验证下,直接在ros_pytorch环境下输入python,再导入相关头文件若是没有报错就是成功了,后续
python
import cv_bridge
from cv_bridge.boost.cv_bridge_boost import getCvType
然后为了方便使用该工作空间将配置文件写到.bashrc中,
sudo gedit ~/.bashrc
source /home/cml/catkin_ws_c/install/setup.bash --extend
最后运行下source
source ~/.bashrc