参考:机器人抓取网络Dex-Net 2.0程序的下载安装与配置
本机环境:Ubuntu16.04,ROS Kinetic,CUDA9.0,Python2.7(虽然官方教程说可以使用Python3.5,但是由于需要使用ROS控制实际的机器人,而且网上又说ROS只支持Python2.x,同时后期遇到相关与ROS有关的模块,Python3.5编译有点问题,故重返使用Python2.7)。
一 virtualenv
通过pip安装virtualenv:
pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
测试安装:
virtualenv --version
# 或者
通过 pip list 查看是否安装成功
创建虚拟环境: $ virtualenv -p /usr/bin/python2.7 dexnet-2.7.9.2
virtualenv -p /usr/bin/python3 py3env
启动虚拟环境: $ source dexnet-2.7.9.2/bin/activate
退出虚拟环境: $ deactivate
删除虚拟环境: $ sudo rm -rf dexnet-2.7.9.2
将会在当前的目录中创建一个名my_project_env的文件夹,这是一个独立的python运行环境,包含了Python可执行文件, 以及 pip
库的一份拷贝,这样就能安装其他包了,不过已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境来。
成功!
二 ros安装:
三 环境搭建:
启动虚拟环境:
source dexnet-2.7.9.2/bin/activate
pip install numpy scipy matplotlib tensorflow-gpu opencv-python scikit-image scikit-learn pillow argparse tensorflow-tensorboard -i https://pypi.tuna.tsinghua.edu.cn/simple
这一步在opencv哪里报错,所以先把其他的一个一个下载好。
opencv-python报错:
于是规定了一下具体版本:
pip install opencv-python==4.3.0.38 -i https://pypi.tuna.tsinghua.edu.cn/simple
还是报一样的错, 想着可能是版本问题,降低版本,选择列常用的3.4.5版本:
pip install opencv-python==3.4.5.20 -i https://pypi.tuna.tsinghua.edu.cn/simple
成功!
四 创建ros工作空间
在一个文件夹下,如下操作:
mkdir catkin_ws
cd catkin_ws/
mkdir src
五 开始运行代码
参考:机器人抓取网络Dex-Net 2.0程序的下载安装与配置
创建工作空间,进入工作空间的src目录执行下面代码下载Dex-Net 2.0代码,并执行install.sh脚本下载相应功能包,cpu 还是 gpu,以及python(仅仅进行仿真)或ros(需要控制实际机器人)模式自选。
# cd到刚创建的工作空间中
cd ~/code/catkin_ws/src
git clone https://github.com/BerkeleyAutomation/dex-net.git
# cd到dex-net代码文件目录下
sudo sh install.sh {cpu|gpu} {python|ros}
我选的是gpu,ros模式,所以代码为:
sudo sh install.sh gpu ros
报错:
接收对象中: 100% (717/717), 7.19 MiB | 44.00 KiB/s, 完成.
处理 delta 中: 100% (320/320), 完成.
检查连接... 完成。
install.sh: 71: cd: can't cd to meshpy
python: can't open file 'setup.py': [Errno 2] No such file or directory
install.sh: 103: install.sh: catkin_make: not found
install.sh: 104: install.sh: source: not found
install.sh: 105: cd: can't cd to src/dex-net
python: can't open file 'setup.py': [Errno 2] No such file or directory
原因:没有安装matlab.
成功安装matlab后还是报这个错,找别的解决办法。
发现具体错误为:
/home/heixiazi/code/meshpy/meshpy/meshrender.cpp:4:27: fatal error: boost/numpy.hpp: 没有那个文件或目录
解决:
/usr/bin/ld: cannot found -lboost_python 问题解决_二代红鱼的博客-CSDN博客
查看C语言源代码
#include <boost/numpy.hpp>
搜索一下 numpy.hpp
与 python.hpp
,发现这两个文件都在 /usr/include/boost/ 目录下,所以编译时,如果找不到头文件可以在 g++ 编译器后添加参数 -I/usr/include/boost/python/ 。
numpy.hpp
在 /usr/include/boost/python 下,所以使用 numpy.hpp
的头文件包含应该是 include <boost/python/numpy.hpp>