角蜂鸟开箱和开发环境搭建
1.开箱展示
图1
材料清单:
1.套件包含亚克力外壳、定制1080P摄像头及角蜂鸟AI视觉板卡(已拼装)
2.Type-C USB3.0导线1根
3.产品说明书卡片1张
电气参数:
供电电压和电流:
功耗:
工作温度:
板载核心芯片:Movidius MA2450
连接示意:
图片2
优势:其一集成了Intel Movidius MA245X卷积神经网络(CNN)加速芯片,运算和比对处理均在模块中完成,并将结果数据反馈给host,对host系统要求较低;其二离线实现,角蜂鸟目前内嵌了7种基础的神经网络模型,可以完成人脸检测、人脸识别、物体识别等功能。模型体积小、速度快,其中物体识别模型大小为9.6MB,可支持同时识别20种物体,而人脸检测模型大小只有1.2MB。这些运算均是在边缘端离线实现,完全不需要连接到云端;
2.开发环境搭建
目前支持Ubuntu、CentOS、Fedora、TK1、MacOS、Raspbian等多种操作系统,官方提供了Android、C++、Python、ROS四种开发环境并提供了example示例程序,模型文件共用!
本次开发选用的硬件平台和开发环境:Raspberry 3B+Ubuntu16.04+ROS-Kinetic;
Kinetic虽然不是ROS最新的版本,但是确实目前资料较多(坑较少,目前资料最多的是Indigo),且能够支持维护到2021年的一个版本,因此选择该版本,至于更早的版本由于维护时间问题不建议使用!
而每个版本的ROS官方都会推荐一个对应版本的linux系统,Kinetic 对应的是Ubuntu 16.04,因此才有了以上的环境选择;
由于树莓派的处理能力有限,虽然有人建议不要在树莓派3B上安装Ubuntu,但是本次开发中较复杂的处理如人脸识别和物体识别等算法是在角蜂鸟模块上处理的,这样大大减少了树莓派的负担,应该以上方案是可行的!
1)操作系统安装 Ubuntu MATE 16.04.2
下载地址: https://ubuntu-mate.org/download/
制作Linux启动盘(SD卡),准备制作工具Win32DiskImager
安装:
a. 解压上述下载的操作系统镜像压缩文件,得到 img 镜像文件。
b. .将 SD 使用卡托或者读卡器后,连上电脑。
b. 解压并运行 win32diskimager 工具。
d. 在软件中选择系统镜像( img 文件),“ Device”下选择 SD 的盘符,然后选择“ Write”,期间出现对话框选择是。
e.等待写入进程, 安装过程可能有些慢,根据你 SD 卡的速度而定的。等到出现对话框 write successful 就说明成功了,将 SD 卡插入树莓派 3 的 SD 卡槽内,树莓派主板上电,即可进入系统安装;
2)ROS安装Kinetic Kame
a.软件中心配置
打 开后 按照下 图进 行配 置(确 保你 的 "restricted" , "universe, " 和"multiverse."前是打上勾的
配置完成后选择“close”就可以关闭该窗口了。
b)添加源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu$(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
c)设置秘钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
d)安装和初始化ROS
#安装ros kinetic全功能版
sudo apt-get update
Sudo apt-get install ros-kinetic-desktop-full
#初始化rosdep
sudo rosdep init
rosdep update
#初始换环境变量
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
#测试ROS
roscore
打印输出“started core service [/rosout]”即安装成功;
3)配置SungemSDK环境及资源
下载SungemSDK基础SDK,保证你的环境安装了git,如果没有安装,请参照百度经验ubuntu 安装git,git下来角蜂鸟的SDK
git clone https://github.com/HornedSungem/SungemSDK.git
拷贝hs.h接口头文件到/usr/local/include,SungemSDK-ROS需要引用该头文件,所以需拷贝到系统目录下
sudo cp -i /SungemSDK/api/includes/hs.h /usr/local/include
根据您当前系统的架构选择对应文件夹下的libhs.so,拷贝该文件到/usr/local/lib
关于系统架构的查询
uname -a
sudo cp -i /SungemSDK/api/lib/linux/arm7l/libhs.so /usr/local/lib
准备需要的资源文件,model及data文件,git最新SungemSDK-GraphModels,或从百度云盘中下载,并把该目录link到系统下,如果不想放在系统下,你可以修改horned_sungem_launch目录下config下每次模型类型的graph_file_path和category_file_path参数,确保路径下能找到该文件即可
git clone https://github.com/HornedSungem/SungemSDK-GraphModels.git
sudo ln -s /SungemSDK-GraphModels /opt/SungemSDK-GraphModels
4)创建ROS工作空间
创建一个工作空间,名字自定义
mkdir -p ~/catkin_/src
将SungemSDK-ROS包下载到工作空间中的src路径下
cd ~/catkin_/src
git clone https://github.com/HornedSungem/SungemSDK-ROS.git
使用catkin编译生成build和devel文件
catkin_make
如果编译过程中报错,可根据错误内容对源码进行修改,并查找目录下CmakeList.txt和package.xml是否有误!
对于树莓派+Ubuntu16.04配置文件确实有错。
需要将Cmakelist里把上述报错的“msse4.1”、"mf16c"配置的属性删掉重新编译,找到~/catkin_
cd ~/catkin_/src/SungemSDK-ROS-master/src/ros_horned_sungem/horned_sungem_lib
vim Cmakelist.txt
具体代码段如下:
# Add x86 intrinsic compiler support
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mf16c")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
以上代码是对X86系统架构的配置,树莓派采用的arm7l架构,因此需要注释掉;
重新编译,以上报错消失但是会出现新的错误,不用担心这是由于树莓派内存不足造成的!
树莓牌默认只有100m内存,可以通过增加swap空间的 方法解决,推荐以下方法重启且不会恢复!《如何在Ubuntu 16.04上增加Swap分区》;
注意由于本示例中的树莓派RAM的大小为1GB,因此我们将在本教程中创建一个2 GB大小的文件(一般swap至少为RAM的2倍),并适当加以调整,以满足您自己的服务器的需求;
再次编译
这就说明SungemSDK-ROS-master编译通过;
执行source命令,依次执行文件中的语句,使刚修改的初始化文件生效
source devel/setup.bash
设置ros包路径
echo $ROS_PACKAGE_PATH /home//catkin_/src:/opt/ros/kinetic/share
5)使用Sungem-ROS
官网比较良心,提供了UVC摄像头和角蜂鸟自带摄像头方法,本例使用的角蜂鸟自带摄像头;
a)打开终端,加载nodelet,接受角蜂鸟360P的图像
roslaunch horned_sungem_launch hs_camera.launch cnn_type:=googlenet camera:=hs pixels:=360
如果出现错误,需cd到你的catkin工作空间的devel重新source下setup.bash
这是打开设备权限问题,root模式下运行;两种方法:一种将设备权限设置为其他用户也可用,另一种在root模式下运行以上指令;
我选用了第二种方法,切换至root用户,结果如下
su
roslaunch horned_sungem_launch hs_camera.launch cnn_type:=googlenet camera:=hs pixels:=360
这是ROS环境变量未设置root可用,仅设置了当前用户可用!需要进行以下操作
source /opt/ros/kinetic/setup.bash
source /home/amos/catkin_ws/devel/setup.bash
roslaunch horned_sungem_launch hs_camera.launch cnn_type:=googlenet camera:=hs pixels:=360
角蜂鸟设备启用成功!!!红色提示为模块过热导致,增加一个小风扇提示消失,也可以在程序中设置取消提示!
从上图中可知,模块本身是添加一个很大的散热片,虽然装机时模块上电(但是未进行运算处理),但是真正用到模块的时候是最后launch启用仅仅才几分钟,模块就已提示过热!说明模块在低功耗处理上仍存在很大的优化空间!
b)打开新的终端,加载图像
roslaunch horned_sungem_launch hs_classification_example.launch camera_topic:="/hs/camera/image_raw"
该指令执行是会返回结果和图片,因此必须在本地终端执行!ssh执行会报错!
6)角蜂鸟在线资源汇总
官网:
http://www.hornedsungem.org/
公众号:
微信搜索角蜂鸟,添加关注。
文档:
https://hornedsungem.github.io/Docs/cn/
https://hornedsungem.senscape.cn/Docs/cn/
专栏:
https://zhuanlan.zhihu.com/hornedsungem
Github:
https://github.com/HornedSungem
固件:
https://github.com/HornedSungem/SungemSDK/releases
Github提问:
https://github.com/HornedSungem/SungemSDK/issues
购买:
微信搜索角蜂鸟公众号,在公众号中购买。
技术交流:
欢迎加入角蜂鸟交流群,群聊号码:782248879
角蜂鸟树莓派镜像下载地址:
树莓派上配置角蜂鸟环境,由于网络等原因,容易出现失败的情况,这里提供配置好的树莓派镜像,一个是树莓派Zero,一个是树莓派3B/3B+:
百度云地址链接: https://pan.baidu.com/s/1rj1xBfA55xwVsOV9zN6Ifw密码: k1x6
Dropbox地址链接: https://www.dropbox.com/sh/gnnjq7x5s24qlsq/AAD-Vcr3z8XlYRts8ndf9E9Ma?dl=0
镜像烧写完成后,不需要运行install.sh脚本安装环境,直接可以运行示例程序了。
参考文献:
https://hornedsungem.github.io/Docs/cn/installation/
https://blog.csdn.net/yaked/article/details/81262339
http://baijiahao.baidu.com/s?id=1601968606595405058&wfr=spider&for=pc
http://www.roswiki.com/read.php?tid=633
https://www.cnblogs.com/qqfly/p/5851382.html
http://wiki.ros.org/kinetic/Installation/Ubuntu
https://hornedsungem.github.io/Docs/cn/workflow/ros/quickstart/