第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

2.14 安卓APP使用教程

在前面的教程中,我们实现了通过远程计算机对机器人进行控制,在这一篇中,我们尝试通过手机远程操控机器人。

2.14.1 准备开始

1)下载安卓app

想要实现手机控制机器人,手机app是必不可少的,需要先在手机上安装相关的安卓app,ROS官方提供了安卓平台的支持,以及一些测试的DEMO,官方源码地址。 为了让官方的代码能在HandsFree机器人上正常使用,我们做了一些改动源码地址,并打包生成可直接测试的安卓程序安装包,用户可以自行下载测试。

HandsFree安卓APP高速下载地址:

teleop-kinetic-debug.apk

make_a_map-kinetic-debug.apk

map_nav-kinetic-debug.apk

这是下载完成后的三个app:

  1. Teleop用于控制机器人的移动
  2. Make A Map用于控制机器人创建地图
  3. Map Nav用于导航,可以加载创建好的地图,以及摄像头捕获的图像

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

2)获取机器人工控机ip地址

您可以通过鼠标左键点击桌面右上角的wifi小图标,然后点击倒数第二行的 “连接信息”,打开如图中的窗口

也可以打开一个终端来查看ip地址,并运行:

 ifconfig

正常情况下会显示如下,选择无线网络wlp4s0这边的信息(注意:有些电脑的无线网卡名称不一定是wlp4s0,有可能是wlan等其他名字),在对应的内容中找到inet 地址,这里的地址显示的是192.168.0.106 。

 

3)远程设置

进入启动文件,在机器人的工控机中添加IP地址信息

 gedit ~/.bashrc

在文件末尾填入

 export ROS_MASTER_URI=http://IP_OF_ROBOT_PC:11311

 export ROS_HOSTNAME=IP_OF_ROBOT_PC

其中IP_OF_ROBOT_PC是连接机器人工控机的IP地址(或连接机器人设备的ip地址),修改完之后点击保存,然后关掉该文件和终端,使其生效。

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

4)连接相同路由器

在开始之前,要确保手机和工控机在一个局域网中,也就是连接同一个路由器,否则app在控制机器人时将不会成功。

2.14.2. 使用Teleop

2.14.2.1 简明步骤

简单的来讲,只需要两步

1)在机器人端工控机上打开一个终端,并运行

 roslaunch handsfree_hw handsfree_hw.launch

2)在手机端app输入工控机的ip并,点击CONNECT,就可以控制机器人移动了。

2.14.2.2 详细步骤

1)在机器人端工控机上打开一个终端,并运行:

 roslaunch handsfree_hw handsfree_hw.launch

该条命令打开了机器人抽象节点,该节点的作用是完成手机与机器人底层的通讯和相关指令与数据传输运行,正常情况下,会显示:

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

2)打开Teleop

不要关闭机器人端运行抽象节点的终端,同时在手机端打开下载好的HandsFree安卓app(三个app都可以来遥控机器人),输入机器人工控机的IP地址后点击CONNECT,如此就实现了工控机与手机的连接

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

3)连接成功后手机的界面会自动切换为操控界面,正常情况下,会显示:

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

此时您可以通过手机界面右边的遥控按钮来控制机器人的移动了(要慢慢晃动按钮哦,按钮离中心点的距离越远,机器人移动的速度越快)

九个白色的原点并不是按钮哦,在另外两个app上会显示地图或者摄像头获取的图像。

2.14.3 使用Make A Map

2.14.3.1 简明步骤

简单的来讲,只需要两步

1)您需要打开4个终端,分别运行下面的4条命令

 roslaunch handsfree_hw handsfree_hw.launch

 roslaunch rplidar_ros rplidar.launch

 roslaunch handsfree_2dnav gmapping.launch

 rosrun rviz rviz -d `rospack find handsfree_bringup`/rviz/gmapping.rviz

2)打开Make A Map输入工控机的ip并,点击CONNECT,就可以控制机器人移动并建图了。

2.14.3.2 详细步骤

1)在机器人端工控机上打开一个终端,并运行:

 roslaunch handsfree_hw handsfree_hw.launch

该条命令打开了机器人抽象节点,该节点的作用是完成手机与机器人底层的通讯和相关指令与数据传输运行。

2)打开第二个终端,运行激光雷达节点

 roslaunch rplidar_ros rplidar.launch

正常情况下,会显示:

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

3)打开三个终端,运行建图节点

 roslaunch handsfree_2dnav gmapping.launch

正常情况下,会显示:

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

4)打开第四个终端,运行RViz可视化界面

 rosrun rviz rviz -d `rospack find handsfree_bringup`/rviz/gmapping.rviz

运行可视化节点,加载对应的rviz配置文件,显示地图。

5)打开Make A Map,输入工控机的ip并,点击CONNECT,就可以控制机器人移动并建图了。

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

您可以点击右上角的小窗口来,切换到下面的图,通过手指来缩放旋转建好的图。

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

这个地图是不能保存的,但是在并不影响在Map Nav中的使用。

2.14.4 使用Map Nav

2.14.4.1 简明步骤

简单的来讲,只需要两步。

1)您需要打开2个终端,分别运行下面的2条命令:

 roslaunch handsfree_hw handsfree_hw.launch

 roslaunch handsfree_camera view_xtion.launch

2)打开Map Nav输入工控机的ip并,点击CONNECT,就可以在建好的地图上移动了,同时获取摄像头捕获的图像。

2.14.4.2 详细步骤

1)在机器人端工控机上打开一个终端,并运行:

 roslaunch handsfree_hw handsfree_hw.launch

该条命令打开了机器人抽象节点,该节点的作用是完成手机与机器人底层的通讯和相关指令与数据传输运行。

2)打开第二个终端,运行摄像头驱动节点

 roslaunch handsfree_camera view_xtion.launch

正常情况先会打开rviz可视化界面,并出现图像

3)打开Map Nav输入工控机的ip并,点击CONNECT,就可以在建好的地图上移动了,同时获取摄像头捕获的。

.第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

可以通过点击按键上方的小窗口来进行切换。

第二部分 单机以及编队控制实验—初级教程之安卓APP使用教程(13)

上一篇:ROS从入门到精通系列(十)-- ros launch


下一篇:Apriltags+Ros+Ur5项目--gazebo模拟