ROS和Android配合使用非常有趣,这里推荐,ROSClinet,使用rosbridge让android和ROS通信:
具体参考奥斯卡的个人剧场:http://xxhong.net/
turtlebot示例非常全面,也给出了Android的Apk,今天尝试一下。实际机器人已测。
考虑到通用性,这里选用仿真环境:
~$ roslaunch turtlebot_gazebo turtlebot_world.launch
~$ roslaunch turtlebot_gazebo gmapping_demo.launch
~$ roslaunch turtlebot_rviz_launchers view_navigation.launch
~$ rocon_master_info

~$ rqt_remocon

然后启动手机应用进行连接,注意ROS_IP等一些环境配置:



这里以Make A Map为例:
PC端,已经启动Gazebo和rviz:


还需要如下两个命令:
~$ rosrun topic_tools transform /cmd_vel /mobile_base/commands/velocity geometry_msgs/Twist 'm'
~$ rosrun topic_tools transform /camera/rgb/image_raw/compressed /compressed_image sensor_msgs/CompressedImage 'm'
在手机端就可以遥控并构建地图:


其他功能比如全景,跟随等,一样不多说。
这里补充非常重要的参考资料,对于系统学习ROS非常有帮助:
1. turtlebot
2. rocon
概观
该rocon框架是一套工具和模块可以一起使用,以在上面提供高水平的服务运行一个自定义的多主机系统的活性氧。它不会尝试,并确定什么样的服务来运行1,也不会尝试朝云机器人伸出太积极。把它看成是一个集中的工作场所,你可以处理为多机器人装置系统收到的信息和本地指令2。
而不是在一次照亮整个音乐会,该指南将通过模块,其中许多可以独立使用行走。这应该有助于突出像任何好的高潮演唱会的功能。
入门
安装
-
安装
安装完成rocon环境。
独立的工具
Rocon启动
该rocon_launch工具是用于启动每个多roslaunch实例自己的终端的便利工具。
-
Rocon启动单大师
产生多个roslaunch终端有一个主器件的工作。
Rocon主信息
我们倾向于发布关于我们的ROS大师(名称,描述,图标)的一些基本信息。这通常是音乐会remocons(后下)的利益,但实际上可以为其想提供一些信息,为客户内省的任何独立ROS大师完成。
-
出版信息大师
提供有关您ROS主数据向希望内省的客户。
独立概念
以下概念提供了一个简单的介绍到一些正在和周围的rocon框架使用的更根本的东西。
Rocon的URI
Rocon通用资源标志符字符串键描述各种实体(机器人,remocons),这对他们的运行,使我们能够在更高层次上形成对这些资源的请求,以及其分配兼容的应用程序。
rocon:// concert_name / hardware_platform /名/ application_framework / OPERATING_SYSTEM#rocon_app
你会经常看到这些在各种消息的ROS API级别飞散各地。有关这些字符串的信息被埋没的狮身人面像文档中rocon_uri包。
人际交往
关于
该rocon_interactions包提供用于建立人类用户,并正在运行的ROS主站系统之间的相互作用的框架。基本上,它解决的问题,我跑什么,我该如何配置呢?。寻找合适的发射运行,或设立rviz会话都是很好的例子-用户应该不需要从头开始四处找出运行或在哪里可以找到的文档。随着rocon相互作用,所有用户需要做的是点了一个遥控器在运行ROS主(或QT或Android版本),选择一个角色,他们将与一些他们可以与演唱会进行互动的方式呈现。这适用于多种互动-机器人,QT,发射器,Web应用程序,甚至在文件指向一个用户。
对于rocon的人机交互框架有了更深的了解,仔细阅读关于引进rocon_interactions维基页面。
教程
如果你只是想快速演示,应对入门教程下方。其余的教程是有作为参考,如果你想深入了解入rocon互动框架。
-
入门
的rocon互动概念的演练。
-
文档交互
定义指向网络上的文件交互。
-
Qt的相互作用
定义基于Qt的前端交互。
-
Rviz互动
定义rviz配置的相互作用。
-
Web应用程序交互
定义Web应用程序的交互。
-
Android的相互作用
定义的互动,可以推出Android活动。
该Appable机器人
关于
在场景和环境中,我们通常会部署(真实世界的场景)机器人往往只是另一种人。它去上班,有时一个团队中,有时自主工作。在几乎所有这些情况下,工作任务驱动,这是我们希望用于与机器人相互作用的焦点。这是熟悉的和我们的思维方式和工作方法作为人类的自然延伸。
任务驱动方式的困难的部分是退后一步,让机器人做任务,尽其能力,而试图用自己的自主权,尽可能干涉。这是一个艰难的平衡,但没有考虑到这一点的,更高层次的业务流程会很快变得过于复杂。
因此,如果一个机器人taskable,应该在很多情况下几乎肯定会重新分配任务,以最大限度地发挥其潜力。多任务将是很好的,但问题打开了潘多拉的盒子。为了使我们的任务再分配功能的机器人,我们反复机器人应用平台柳肯等人最初鼓动,因为它是一个方便的配合上。这是少谈'应用'比它是关于提供一个非常方便的方式来部署,启动,在任务驱动的方式停止和管理您的机器人。
该appable机器人旨在是旨在简化一个完整的框架:
- 软件安装
- 发射
- 重新分配
- 连接(或配对模式,多主)
- 编写可移植软件
并提供与机器人上通过两个不同的模式的公共接口交互的有用的手段:
- 配对模式:1-1人类与机器人的配置和互动。
-
演唱会模式:通过演唱会解决机器人的自主控制。
功能
功能是在自举一级提供一个抽象层的手段。这使得编写机器人不可知的“应用程序”更容易。如果一个机器人可以声明它实现了导航能力的标准化接口,那么应用程序可以依靠用来利用这种能力的活性氧接口。什么样的能力是关于更详细的解释和API文档可以在上找到的功能的wiki页面。
-
功能演示
演示性能服务器的功能。
。
拉普斯
,利用和两个顶部的能力和我们称之为拉普斯机器人的一些引导层运行的应用程序(又名rocon应用程序,或机器人应用 - 是从手机应用程序很容易分辨)。这些基本上没有代码发射器。其中,功能旨在反映可平行于自己的冲突管理运行的机器人的某些子功能,拉普斯应代表发射环境及其对机器人的当前活动的配置,或任务,例如啤酒递送。鉴于这种概念上的约束,只有一个拉普都不应当在机器人在同一时间运行。
这个决定是主要以简化机器人在更高层次上进行交互的方式。就像在一个团队人类,我们在更高层次的框架机器人(如演唱会我们将在后面介绍)被设计为重新分配任务的资源。为appable机器人,这意味着停止和启动相应的拉普。这让我们推出的软件配置调整或根据需要重新运行完全不同的软件。这是在其上不具有PR2的计算能力的机器人特别重要。
产品规格
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv11649