基于Dragonboard 410c的kinect应用系列之二——自动跟随机器人原理及问题

处理器/DSP

893人已加入

描述

继上次《基于Dragonboard 410c的kinect应用系列之一——实现智能机器人自动跟随》文章发布后,没想到很多童鞋对这个都很感兴趣,并根据此文进行了配置操作。当然,基础好的童鞋都一次性成功,而一些之前对此接触比较少的童鞋遇到了不少问题,纷纷私信咨询我。在这里,我特地为问题集开个新帖,详细简述下解决方法和原理,希望能降低大家开发中遇到的难度。

一、问题点:

1.dragonboard410c开发板如何安装ubuntu core系统?

答:这是比较初级的问题,很多童鞋手里拿到的410c板子都是预装android系统,大家看我上一篇博客都是上传要烧录的镜像都是属于linux系统类的,烧录指令难免有所差异,这里我们直接将烧录的指令完全总结在以下的flash.sh里,大家下载后设置到fastboot mode后直接运行即可。

#!/bin/sh
 
fastboot flash partition gpt_both0.bin
fastboot flash hyp hyp.mbn
fastboot flash modem NON-HLOS.bin
fastboot flash rpm rpm.mbn
fastboot flash sbl1 sbl1.mbn
fastboot flash sec sec.dat
fastboot flash tz tz.mbn
fastboot flash aboot emmc_appsboot.mbn
 
fastboot erase boot
fastboot erase rootfs
fastboot erase devinfo
 
fastboot flash boot boot-linaro-jessie-qcom-snapdragon-arm64-20160630-110
fastboot flash rootfs linaro-jessie-developer-qcom-snapdragon-arm64-20160630-110

图1 flash.sh

2.install_ros_410c.sh运行有问题。

2.1.“./install_ros_410c.sh:bad interpreter: No such file or directory” :

答:主要是因为大家从windows系统将install_ros_410c.sh拷到我们的linux系统导致的格式错误!

解决方式:

#sh>vi filename

利用如下命令查看文件格式

:set ff 或 :set fileformat

可以看到如下信息

fileformat=dos 或 fileformat=unix

利用如下命令修改文件格式

:set ff=unix 或 :set fileformat=unix

:wq (存盘退出)

最后再执行文件即可。

2.2./install_ros_410c.sh:

The following packages have unmet dependencies:

ros-kinetic-audio-capture : Depends: libgstreamer-plugins-good1.0-0 but it is not installable

ros-kinetic-audio-play : Depends: libgstreamer-plugins-good1.0-0 but it is not installable

ros-kinetic-people : Depends: ros-kinetic-leg-detector but it is not installable

Depends: ros-kinetic-people-velocity-tracker but it is not installable

ros-kinetic-sound-play : Depends: libgstreamer-plugins-good1.0-0 but it is not installable

E: Unable to correct problems, you have held broken packages.

答:这里是因为ros这几个库官网未更新导致,但不影响我们turtlebot的功能,这里我们可以直接忽略,为了大家以后安装turtlebot更简便快捷,这里我们重新上传新的更新脚本,并命名为:turtlebot_follower.sh

#turtlebot update manual
 
 
set -e
# add ros debian sources
sudo sh -c 'echo "deb http://packages.ros.org/ros-shadow-fixed/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
 
# setup the keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
 
# update repo list
sudo apt-get update
 
# tmux
 
sudo apt-get install tmux
 
sudo apt-get install ros-kinetic-desktop-full
 
#initialize rosdep
sudo rosdep init
rosdep update
 
# install tools
sudo apt-get install python-rosinstall
 
# source ROS environment
source /opt/ros/kinetic/setup.bash
 
# specialized installation for certain turtlebot packages
rosinstall_generator --rosdistro indigo --exclude RPP --deps --repos turtlebot_apps > ~/turtlebot_overlay.rosinstall
mkdir -p ~/turtlebot/src
wstool init ~/turtlebot/src ~/turtlebot_overlay.rosinstall
 
# blacklist some packages we don't want to build
cd ~/turtlebot/src
mkdir -p warehouse_ros openni2_camera openni2_launch turtlebot_apps/pano_py turtlebot_apps/turtlebot_panorama turtlebot_apps/pano_ros turtlebot_apps/turtlebot_rapps turtlebot_apps/pano_core freenect_stack/freenect_launch freenect_stack/freenect_camera world_canvas_server
touch ./warehouse_ros/CATKIN_IGNORE ./openni2_camera/CATKIN_IGNORE ./openni2_launch/CATKIN_IGNORE ./turtlebot_apps/pano_py/CATKIN_IGNORE ./turtlebot_apps/turtlebot_panorama/CATKIN_IGNORE ./turtlebot_apps/pano_ros/CATKIN_IGNORE ./turtlebot_apps/turtlebot_rapps/CATKIN_IGNORE ./turtlebot_apps/pano_core/CATKIN_IGNORE ./freenect_stack/freenect_launch/CATKIN_IGNORE ./freenect_stack/freenect_camera/CATKIN_IGNORE ./world_canvas_server/CATKIN_IGNORE
a
# add rosdeps
cd ..
rosdep install --from-path src --ignore-src -y --skip-keys freenect_launch --skip-keys openni2_launch
 
# install kobuki udev rules
rosrun kobuki_ftdi create_udev_rules
 
echo "source /opt/ros/kinetic/setup.bash" >> $HOME/.bashrc
echo "export TURTLEBOT_3D_SENSOR=kinect" >> ~/.bashrc
echo "export TURTLEBOT_3D_SENSOR=kinect" >> .bashrc

图2 turtlebot_follower.sh

3.dragonboard410c系统编译ros系统源码崩溃?

答:很多基础比较好的童鞋拿 410c的linux系统当编译环境使用,直接用来编译ros系统源码,导致系统内存崩溃。在这里,我们是不推荐拿 410c当编译环境使用,原因如下:

a.410c的闪存只有1G,不适合做中大型系统的编译环境,容易引起内存溢出,从而导致系统崩溃。哪怕你插U盘或者SD卡做swap区分享,也相当不稳定。这点我已经做过大量实测,因此还是建议大家将编译工作放到你的PC机上实现。

b.ros的官网已经有现成编译好的运行工具可以安装,大家在刚开始进行功能体验的时候完全不需要自己手动编译。

4.turtlebot如何手动启动?

答:这里我们推荐使用tmux工具进行手动启动,操作如下:

1).tmux

2).roslaunch turtlebot_bringup minimal.launch

3).Crtl+B,再按C键

4).roslaunch turtlebot_follower follower.launch

5).连接kobuki,kinect到410c板子上,稍等十秒左右即可运行。

5.turtlebot整机调试困难?

答:很多童鞋反馈410c不带LCD,平时调试都要接HDMI到电视显示和外接键盘,太不方便。在这里,我推荐使用ssh的方式进行登陆调试,具体操作如下:

1).启动410c,并使用linaro用户登陆;

2).使用nmcli连接wifi,同时将你的PC机连接到同一wifi下;

3).在PC机采用ssh的方式(我采用win7的SecureCRT)登陆到410c的linux系统,默认用户和密码为linaro。

4).登陆到410c板子的linaro系统,即可撤掉板子上的HDMI和键盘,进入无线调试模式。

二、更新脚本链接:

1.flash.sh 下载链接: http://pan.baidu.com/s/1hrD5048

2.turtlebot_follower.sh 下载链接:http://pan.baidu.com/s/1mhOmF24

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分