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_launch工具是用于启动每个多roslaunch实例自己的终端的便利工具。
Rocon主信息
我们倾向于发布关于我们的ROS大师(名称,描述,图标)的一些基本信息。这通常是音乐会remocons(后下)的利益,但实际上可以为其想提供一些信息,为客户内省的任何独立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互动框架。
在场景和环境中,我们通常会部署(真实世界的场景)机器人往往只是另一种人。它去上班,有时一个团队中,有时自主工作。在几乎所有这些情况下,工作任务驱动,这是我们希望用于与机器人相互作用的焦点。这是熟悉的和我们的思维方式和工作方法作为人类的自然延伸。
任务驱动方式的困难的部分是退后一步,让机器人做任务,尽其能力,而试图用自己的自主权,尽可能干涉。这是一个艰难的平衡,但没有考虑到这一点的,更高层次的业务流程会很快变得过于复杂。
因此,如果一个机器人taskable,应该在很多情况下几乎肯定会重新分配任务,以最大限度地发挥其潜力。多任务将是很好的,但问题打开了潘多拉的盒子。为了使我们的任务再分配功能的机器人,我们反复机器人应用平台柳肯等人最初鼓动,因为它是一个方便的配合上。这是少谈'应用'比它是关于提供一个非常方便的方式来部署,启动,在任务驱动的方式停止和管理您的机器人。
该appable机器人旨在是旨在简化一个完整的框架:
并提供与机器人上通过两个不同的模式的公共接口交互的有用的手段:
功能是在自举一级提供一个抽象层的手段。这使得编写机器人不可知的“应用程序”更容易。如果一个机器人可以声明它实现了导航能力的标准化接口,那么应用程序可以依靠用来利用这种能力的活性氧接口。什么样的能力是关于更详细的解释和API文档可以在上找到的功能的wiki页面。
。
,利用和两个顶部的能力和我们称之为拉普斯机器人的一些引导层运行的应用程序(又名rocon应用程序,或机器人应用 - 是从手机应用程序很容易分辨)。这些基本上没有代码发射器。其中,功能旨在反映可平行于自己的冲突管理运行的机器人的某些子功能,拉普斯应代表发射环境及其对机器人的当前活动的配置,或任务,例如啤酒递送。鉴于这种概念上的约束,只有一个拉普都不应当在机器人在同一时间运行。
这个决定是主要以简化机器人在更高层次上进行交互的方式。就像在一个团队人类,我们在更高层次的框架机器人(如演唱会我们将在后面介绍)被设计为重新分配任务的资源。为appable机器人,这意味着停止和启动相应的拉普。这让我们推出的软件配置调整或根据需要重新运行完全不同的软件。这是在其上不具有PR2的计算能力的机器人特别重要。
产品规格
教程
该rocon应用程序管理器处理拉普斯的发现,发现和生命周期管理(如开始/停止)。对于平台兼容拉普斯的发现和安装的拉普管理器使用的模块rocon_app_utilities。在运行时,它也与交互能力的服务器,以确保拉普所需的所有功能依赖条件和适当的开始,并与拉普停止一起。
这里列出了多主机基本的组件不是演唱会具体。您可以使用这些如果你想建立一个替代多主框架。
网关模式是一个rocon多主机系统的引擎。他们使用的应用程序管理器和音乐会级组件统筹的ROS话题,服务和行动主人之间的交流,但在一般情况下,它们是如何运作与rocon演唱会打你不需要详细了解。如果您想了解更多关于他们,从这里开始:
待办事项:这个正在等待一个小的重新设计和部分水电教程重写 |
---|
音乐会是在相互作用的顶部,appable机器人和网关组件运行一个多主框架,试图使网络(通常LAN)从中协调和管理一组机器人在一个集中的工作区,参与某种设备场景。这可以独立使用,或者它可以进一步发展为一种有用的桥到云3。一些特点:
更详细的概念说明可以,如果你从我们的商场逗留去找到术语页面上的rocon维基。
快速演示
创建自己的解决方案
让你的机器人加入音乐会
创建自己的服务
凉亭音乐会
如果你有一个创建基础这仅仅是必要的。该Kobuki配备了工厂校准陀螺仪。这将告诉你如何校准或试运行任何基于导航的应用程序时,这是高度推荐TurtleBot的校准。
阶段
凉亭
描述如何开发Android的互动教程可以在发现Android的角落。
Teleop音乐会
Teleoperate多个turtlebots!