(!) 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: 办公室人脸打卡功能

Xbot Head介绍

Xbot Head是运行在Android设备上的应用程序。用来配合Xbot完成特定场景下的功能。 Xbot Head的主界面如下:

Xbot Head

当连接成功ROS服务器之后,(后续步骤会讲解如何开启ROS服务器),界面变为 :

Xbot Head

提示:运行此功能前需要将安装有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:

rviz1

启动了RVIZ之后,可以使用Xbot Player控制Xbot在室内进行移动,让Xbot根据室内环境构建出一张地图:

rviz2

(该图仅作为演示用途,实际使用时应尽量将地图构建完全)

开启终端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的语音解说功能,启动后为如下的界面:

Xbot Head

在上一步的指定完讲解点之后,在T4中按f键,让Xbot开始移动。

rviz3

当Xbot到达第一个点(初始点)后,开始进行用户人脸识别:

Xbot Head

如果识别成功,则显示:

Xbot Head

识别成功后,则Xbot会继续向下一个点移动,当到达讲解点后,Xbot Head 开始播放解说词。播放完成后,Xbot 又继续前往下一个解说点.... 最后讲解完时,Xbot会回到初始点。

点击该链接观看博物馆讲解的功能演示视频

接下来

* 查看办公室人脸打卡功能 或回到 Xbot 主页

Wiki: cn/Robots/Xbot/tutorial/Museum Commentary (last edited 2021-01-02 07:39:45 by yakamoz423)