查看: 3636|回复: 2

【角蜂鸟试用】1.开箱和开发环境搭建

[复制链接]
  • TA的每日心情
    开心
    2018-9-6 15:08
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2018-8-7 17:38:34 | 显示全部楼层 |阅读模式
    分享到:
    基于ROS智能陪伴扫地机:1.角蜂鸟开箱和开发环境搭建
    1.开箱展示

    拆箱图

    拆箱图

                                                                  图1
    材料清单:
    • 1.套件包含亚克力外壳、定制1080P摄像头及角蜂鸟AI视觉板卡、散热片(已拼装)
    • 2.Type-C USB3.0导线1根
    • 3.产品说明书卡片1张
    电气参数:
    • 供电电压和电流:1A@5V
    • 功耗:待机功耗约1W;工作功耗约1.75W
    • 工作温度:67°C
    • 板载核心芯片: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历程

    ROS历程


    而每个版本的ROS官方都会推荐一个对应版本的linux系统,Kinetic 对应的是Ubuntu 16.04,因此才有了以上的环境选择;
    由于树莓派的处理能力有限,虽然有人建议不要在树莓派3B上安装Ubuntu,但是本次开发中较复杂的处理如人脸识别和物体识别等算法是在角蜂鸟模块上处理的,这样大大减少了树莓派的负担,应该以上方案是可行的!
    1)操作系统安装 Ubuntu MATE 16.04.2
    下载地址: https://ubuntu-mate.org/download/


    树莓派CPU架构

    树莓派CPU架构

    树莓派系统

    树莓派系统



    系统格式

    系统格式


    制作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)添加源
    1. sudo sh -c 'echo "deb <a  target="_blank">http://packages.ros.org/ros/ubuntu</a>$(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    复制代码

    c)设置秘钥
    1. sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
    复制代码


    d)安装和初始化ROS
    1. #安装ros kinetic全功能版
    2. sudo apt-get update
    3. Sudo apt-get install ros-kinetic-desktop-full
    复制代码
    前方高能预警,由于我没有换国内的高校或者平台的源,下载速度比较慢,需要至少大约半小时!建议大家选喝茶的时候执行!个人尝试了换科大源和阿里源均失败,如果嫌弃太慢可以自行尝试!
    1. #初始化rosdep
    2. sudo rosdep init
    3. rosdep update
    复制代码
    1. #初始换环境变量
    2. echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
    3. source ~/.bashrc
    复制代码
    1. #测试ROS
    2. roscore
    复制代码

    打印输出“started core service [/rosout]”即安装成功;

    测试ROS

    测试ROS


    3)配置SungemSDK环境及资源
    下载SungemSDK基础SDK,保证你的环境安装了git,如果没有安装,请参照百度经验ubuntu 安装git,git下来角蜂鸟的SDK
    1. git clone <a  target="_blank">https://github.com/HornedSungem/SungemSDK.git</a>
    复制代码

    拷贝hs.h接口头文件到/usr/local/include,SungemSDK-ROS需要引用该头文件,所以需拷贝到系统目录下
    1. sudo cp -i <workspace>/SungemSDK/api/includes/hs.h  /usr/local/include
    复制代码

    根据您当前系统的架构选择对应文件夹下的libhs.so,拷贝该文件到/usr/local/lib
    关于系统架构的查询
    1. uname -a
    复制代码

    查询系统架构

    查询系统架构
    系统架构arm7l因此需要将官网上的稍作修改!
    1. sudo cp -i <workspace>/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参数,确保路径下能找到该文件即可
    1. git clone <a  target="_blank">https://github.com/HornedSungem/SungemSDK-GraphModels.git</a>
    2. sudo ln -s <workspace>/SungemSDK-GraphModels /opt/SungemSDK-GraphModels
    复制代码

    4)创建ROS工作空间
    创建一个工作空间,名字自定义
    1. mkdir -p ~/catkin_<name>/src
    复制代码

    将SungemSDK-ROS包下载到工作空间中的src路径下
    1. cd ~/catkin_<name>/src
    2. git clone <a  target="_blank">https://github.com/HornedSungem/SungemSDK-ROS.git</a>
    复制代码

    使用catkin编译生成build和devel文件
    1. catkin_make
    复制代码

    如果编译过程中报错,可根据错误内容对源码进行修改,并查找目录下CmakeList.txt和package.xml是否有误!问题1:SungemSDK-ROS-master包配置错误!
    对于树莓派+Ubuntu16.04配置文件确实有错!感谢群里(11)的小伙伴提醒!

    Cmakelist错误

    Cmakelist错误

    需要将Cmakelist里把上述报错的“msse4.1”、"mf16c"配置的属性删掉重新编译,找到~/catkin_<name>/src/SungemSDK-ROS-master/src/ros_horned_sungem/horned_sungem_lib包下,修改其Cmakelist
    1. cd ~/catkin_<name>/src/SungemSDK-ROS-master/src/ros_horned_sungem/horned_sungem_lib
    2. vim Cmakelist.txt
    复制代码

    具体代码段如下:
    1. # Add x86 intrinsic compiler support
    2. #  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
    3. #  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mf16c")
    4. #  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
    复制代码

    以上代码是对X86系统架构的配置,树莓派采用的arm7l架构,因此需要注释掉;
    问题2:树莓派内存不足!
    重新编译,以上报错消失但是会出现新的错误,不用担心这是由于树莓派内存不足造成的!

    内存不足

    内存不足

    树莓牌默认只有100m内存,可以通过增加swap空间的 方法解决,推荐以下方法重启且不会恢复!《如何在Ubuntu 16.04上增加Swap分区》;
        注意由于本示例中的树莓派RAM的大小为1GB,因此我们将在本教程中创建一个2 GB大小的文件(一般swap至少为RAM的2倍),并适当加以调整,以满足您自己的服务器的需求;
    再次编译

    编译成功

    编译成功

    这就说明SungemSDK-ROS-master编译通过;
    执行source命令,依次执行文件中的语句,使刚修改的初始化文件生效
    1. source devel/setup.bash
    复制代码

    设置ros包路径
    1. echo $ROS_PACKAGE_PATH /home/<user_name>/catkin_<name>/src:/opt/ros/kinetic/share
    复制代码

    5)使用Sungem-ROS
    官网比较良心,提供了UVC摄像头和角蜂鸟自带摄像头方法,本例使用的角蜂鸟自带摄像头;
    a)打开终端,加载nodelet,接受角蜂鸟360P的图像
    1. roslaunch horned_sungem_launch hs_camera.launch cnn_type:=googlenet camera:=hs pixels:=360
    复制代码
    问题3:打开设备权限不够!
    如果出现错误,需cd到你的catkin工作空间的devel重新source下setup.bash

    设备运行权限不足

    设备运行权限不足

    这是打开设备权限问题,root模式下运行;两种方法:一种将设备权限设置为其他用户也可用,另一种在root模式下运行以上指令;
    我选用了第二种方法,切换至root用户,结果如下
    1. su
    复制代码
    1. roslaunch horned_sungem_launch hs_camera.launch cnn_type:=googlenet camera:=hs pixels:=360
    复制代码

    ROS环境变量未设置

    ROS环境变量未设置


    这是ROS环境变量未设置root可用,仅设置了当前用户可用!需要进行以下操作
    1. source /opt/ros/kinetic/setup.bash
    2. source /home/amos/catkin_ws/devel/setup.bash
    3. roslaunch horned_sungem_launch hs_camera.launch cnn_type:=googlenet camera:=hs pixels:=360
    复制代码

    打开设备成功

    打开设备成功

    角蜂鸟设备启用成功!!!红色提示为模块过热导致,增加一个小风扇提示消失,也可以在程序中设置取消提示!
    从上图中可知,模块本身是添加一个很大的散热片,虽然装机时模块上电(但是未进行运算处理),但是真正用到模块的时候是最后launch启用仅仅才几分钟,模块就已提示过热!说明模块在低功耗处理上仍存在很大的优化空间,否则不利于产品化!
    b)打开新的终端,加载图像
    1. 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/u011662608/article/details/81176670
    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/https://blog.csdn.net/u010429286/article/details/79219230





    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2018-8-12 14:00:51 | 显示全部楼层
    期待新成品
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-9-6 15:08
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

     楼主| 发表于 2018-8-13 09:54:47 | 显示全部楼层

    哈哈,谢谢老铁又过来打气啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 09:04 , Processed in 0.135952 second(s), 22 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.