ROS+OpenCV和ROS+Tensorflow

ROS+OpenCV

OpenCV(Open Source Computer Vision Library)——是一个基于BSD许可发布的跨平台开源计算机视觉库(LInux、Windows、mac OS上都可运行),提供了C++、Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法(免费)。同时OpenCV可以直接访问硬件摄像头,并且还提供了一个简单的GUI系统——highgui。

        在ROS中已经集成了OpenCV库和相关的接口功能包,使用以下命令即可安装:

$sudo apt-get install ros-kinetic-vision-opencv libopencv-dev python-opencv

        cv_bridge——ROS为开发者提供的与OpenCV接口功能包,可以实现ROS中的图像数据转换成OpenCV格式的图像,并且调用OpenCV库进行各种图像处理;或者将OpenCV处理过后的数据转换成ROS图像,并且通过话题进行发布,实现各节点之间的图像传输。

        通过以下命令可以启动一个例子:

$roslaunch robot_vision usb_cam.launch
$rosrun robot_vision cv_bridge_test.py
$rqt_image_view

ROS+Tensorflow

TensorFlow——一个Google发布的开源的用于人工智能的软件框架。它可以用数据流图来描述整个神经网络,是用于数值计算的开源软件库。

        使用以下指令就可以在Ubuntu系统中安装TensorFlow了:

$sudo apt-get install python-pip python-dev python-virtualenv    #安装必备的Python虚拟环境
$virtualenv --system-site-packages ~/tensorflow    #建立一个全新的虚拟环境,将其搭建在~/tensorflow目录下
$source ~/tensorflow/bin/activate    #激活该虚拟环境,激活成功后终端提示符会发生变化$前有(tensorflow)
$pip install -i https://pypi.doubanio.com/simple/ tensorflow==1.3.0    #安装tensorflow,这里用的是豆瓣源

        注:在按上面指令安装的时候,运行到第二行的时候报错TypeError: unsupported operand type(s) for -=: 'Retry' and 'int';OSError: Command /home/ros/tensorflow/bin/python2 - "setuptools < 45" pkg_resources "pip < 21" wheel failed with error code 2,然后我把校园网断开,用手机wifi连接运行第二步就没有报错了。 

        可以下载并编译这两个功能包,这是官方给我们提供的基于TensorFlow的物体识别的程序,这里面已经用ros进行了封装,我们可以直接用ros跑起来:

$cd ~/catkin_ws/src
$git clone https://github.com/Kukanani/vision_msgs.git
$git clone https://github.com/osrf/tensorflow_object_detector.git
$cd ~/catkin_ws && catkin_make

        然后激活我们之前建立的虚拟环境tensorflow,在该环境下输入roslaunch指令即可启动物体识别程序:

$source ~/tensorflow/bin/activate
(tensorflow)$roslaunch tensorflow_object_detector usb_cam_detector.launch

        退出该虚拟环境可输入以下指令:

(tensorflow)$deactivate

你可能感兴趣的:(ros1,机器人)