Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
博物馆解说功能
Description: 介绍Xbot配合Xbot_Head实现博物馆讲解功能Tutorial Level: BEGINNER
Next Tutorial: 办公室人脸打卡功能
Contents
Xbot Head介绍
Xbot Head是运行在Android设备上的应用程序。用来配合Xbot完成特定场景下的功能。 Xbot Head的主界面如下:
当连接成功ROS服务器之后,(后续步骤会讲解如何开启ROS服务器),界面变为 :
提示:运行此功能前需要将安装有Xbot Head应用的Android平板固定放置在Xbot头部。
启动Xbot配套功能包
首先记得在.bashrc 文件中配置一下环境变量,将如下信息添加到bashrc中:
export ROS_MASTER_URI=http://192.168.0.135:11311 export ROS_HOSTNAME=192.168.0.116
注:192.168.0.135是我的Xbot的IP地址,使用时请替换为自己的Xbot的IP。192.168.0.116是本地主机(可使用Ubuntu或其他Linux发行版)的IP地址,使用时请替换为自己的IP地址。(需要在同一网段下)
开启一个Terminal,(简称为T1)首先使用SSH登录到Xbot上:
ssh ubuntu@192.168.0.135
输入密码,登录成功之后,运行:
roslaunch xbot_slam xbot_gmapping_slam.launch
再次开启一个终端,(简称T2),同样使用SSH登录到Xbot上,登录成功后运行:
roslaunch rosbridge_server rosbridge_websocket.launch
至此,ROS服务器已开启,Xbot Head已经可以成功连接ROS服务器了。
开启终端T3,(不用登录到Xbot),运行:
roslaunch xbot_slam xbot_rviz.launch
然后可以看到启动了RVIZ:
启动了RVIZ之后,可以使用Xbot Player控制Xbot在室内进行移动,让Xbot根据室内环境构建出一张地图:
(该图仅作为演示用途,实际使用时应尽量将地图构建完全)
开启终端T4,(不用登录到Xbot),运行:
rosrun xbot_navigoals navigoals
在终端中会出现:
Reading from keyboard --------------------------- n : create a new goal serial. c : clear all goals. f : finish click goal. q : quit.
输入n,表示可以创建一系列点,之后点击RVIZ中的2D Nav Goal按钮,在界面上为Xbot指定一系列的讲解点: 指定完讲解点之后,比如我共指定了4个点,其中一个为初始点,后续三个为讲解点,此时T4中的输出如下:
Reading from keyboard --------------------------- n : create a new goal serial. c : clear all goals. f : finish click goal. q : quit. [ INFO] [1508987129.537163701]: Initialized, please enter your goals. [ INFO] [1508987134.065248782]: addded a new goal: position: x: 0.520432 y: 0.294333 z:0.000000 There are 1/12 goals now! [ INFO] [1508987134.204048638]: Got plan in clickedGoalReceived() -- plan size: 25 [ INFO] [1508987141.164505959]: addded a new goal: position: x: 2.066637 y: 0.741033 z:0.000000 There are 2/12 goals now! [ INFO] [1508987141.244279412]: Got plan in function : clickedGoalReceived() -- plan size: 67 [ INFO] [1508987144.404054764]: addded a new goal: position: x: 3.014892 y: 2.418822 z:0.000000 There are 3/12 goals now! [ INFO] [1508987144.575705782]: Got plan in function : clickedGoalReceived() -- plan size: 79 [ INFO] [1508987154.303512194]: addded a new goal: position: x: 3.960871 y: 4.211856 z:0.000000 There are 4/12 goals now! [ INFO] [1508987154.439141384]: Got plan in function : clickedGoalReceived() -- plan size: 88
注:第一个鼠标点击点为初始点,Xbot会在初始点对用户进行人脸识别,如果人脸识别成功则会播放出用户姓名和问候语,后续的点为博物馆讲解点,Xbot会在到达每一个讲解点之后通知Xbot Head 进行解说词播放。
使用Xbot Head的博物馆解说功能
在Xbot移动前,启动Xbot Head的语音解说功能,启动后为如下的界面:
在上一步的指定完讲解点之后,在T4中按f键,让Xbot开始移动。
当Xbot到达第一个点(初始点)后,开始进行用户人脸识别:
如果识别成功,则显示:
识别成功后,则Xbot会继续向下一个点移动,当到达讲解点后,Xbot Head 开始播放解说词。播放完成后,Xbot 又继续前往下一个解说点.... 最后讲解完时,Xbot会回到初始点。