主要内容

设置的位置比波普爵士乐无人机在露台模拟器使用ROS从Android设备

这个例子展示了如何生成一个Android™应用程序设置的位置鹦鹉®比波普爵士乐无人机在露台®模拟器使用仿真软件为Android设备®支持包。金宝app金宝app在这个例子中,您的计算机配置为ROS的主人,Android设备被配置为ROS客户机。设备连接到电脑通过机器人操作系统(ROS)接口。从设备接收到的数据显示使用模拟器上运行的计算机。

需求

硬件需求

  • Android设备

  • USB电缆

软件需求

在你的电脑上安装这些产品:下载188bet金宝搏

的必备条件

介绍

ROS是一个通信接口,使机器人系统的不同部分中发现,发送和接收数据。使用ToApp块的仿真软件支持Android金宝app设备包,金宝app您可以与ROS-enabled交换数据物理机器人或露台等机器人仿真器。有关更多信息,请参见机器人操作系统(ROS)概念部分ROS网站上。

步骤1:露台模拟器在电脑上运行

1。安装MathWorks-provided VM在您的计算机上。如果你已经安装了这个VM或如果你选择使用自己的VM,跳过这个步骤。

2。打开一个新的终端的虚拟机安装在你的电脑上。

3所示。在终端窗口中,输入ifconfig。这个命令可以显示网络接口的配置VM。下eth0,inet地址显示在虚拟机的IP地址。请注意以后使用的IP地址。

4所示。设置标准ROS环境变量的值,ROS_MASTER_URIROS_HOSTNAME终端,通过执行这些命令。取代IP_OF_VM与虚拟机的IP地址在前一步。

回声出口ROS_MASTER_URI = http://IP_OF_VM: 11311> >~ / . bashrc回声出口ROS_HOSTNAME = IP_OF_VM> >~ / . bashrc

5。执行以下步骤来运行installRotorS.sh文件。的installRotorS.sh文件包含一个脚本下载所需的所有包启动露台模拟器,模拟器上运行比波普爵士乐无人机。

MATLAB。改变当前文件夹的使用这个命令MATLAB命令窗口:

cd (fullfile (matlabshare金宝appd.supportpkg.getSupportPackageRoot,“工具箱”,“目标”,“金宝appsupportpackages”,“android”,“androidexamples”,“ROSonAndroid”))

b。复制installRotorS.sh文件到它会VM的路径。

c。在终端窗口中,执行这些命令:

修改文件权限+ xinstallRotorS.sh。/ installRotorS.sh

d。关闭终端并重新打开它。

6。通过执行这个命令启动露台模拟器。您将看到一个比波普爵士乐无人机在渲染窗口的模拟器。

roslaunchrotors_gazebobebop_hover.launch

步骤2:使用仿真软件生成一个Android项目金宝app

本节解释如何从仿真软件模型生成一个Android项目。金宝app

打开模型模型金宝app

1。Android设备连接到你的电脑的USB电缆。

2。安装金宝app为And金宝approid设备仿真软件支持包。如果您已经安装了支持包,跳过这个步骤。金宝app

3所示。在模型编辑器中金宝app打开ControlDronePosition模型。这个模型是预配置在Android设备上运行。这些块模型:

  • 数据输入:使用Position_X,Position_Y,Position_Z块,你可以改变x- - - - - -,y- - - - - -,z——坐标比波普爵士乐无人机的模拟器。

  • ToApp:无人机的接受位置数据块并发送数据ROS发布方法。的ROS发布方法将数据发布到电脑。

配置仿真软件模型金宝app

1。在模型编辑器中金宝app,选择模拟>模型配置参数

2。在配置参数对话框中,选择硬件实现

3所示。设置硬件板参数Android设备。这个选择自动填充的参数硬件板设置Android使用默认值。

的。列表下目标硬件资源中,选择设备的选择

的b。设备列表中,选择你的Android设备。如果你的设备没有列出,点击刷新

请注意:如果你的设备不是上市后单击刷新按钮,确保您已启用USB调试选择你的设备。要启用USB调试,输入androidhwsetup在MATLAB命令窗口并按照屏幕指示。

4所示。点击应用。点击好吧关闭对话框。

Android金宝app设备上部署仿真软件模型

硬件仿真软件模型的选项卡,金宝app在模式部分中,选择机上运行然后点击构建、部署和启动。模式窗口的左下角显示状态,仿真软件构建模型在计算机上。金宝app在成功地构建模型,在MATLAB建立文件夹中生成一个项目文件MATLAB_build_folder / modelName_ert_rtw / modelName。例如,李:/ workspace / ControlDrone / ControlDronePosition_ert_rtw / ControlDronePosition

步骤3:导入项目并添加ROS依赖关系在Android工作室

1。生成的项目导入到安卓工作室中描述的步骤导入项目Google Android工作室

2。在Android工作室,选择项目从左上的下拉菜单中选择文件资源管理器。

3所示。打开build.gradle项目的文件和更新文件通过添加代码的位置标记图像。

  • 位置1——添加这一行的buildscript部分。

应用:“https://github.com/rosjava/android_core/raw/kinetic/buildscript.gradle”
  • 位置2——添加这些线路allprojects部分。

应用插件:“ros-android”
afterEvaluate{项目- >
android {
/ /排除一些文件复制在我们依赖,防止包装Android应用程序。
packagingOptions {
排除“meta - inf / LICENSE.txt”
排除“meta - inf / NOTICE.txt”
}
}
}
  • 位置3——添加这些ROS以下列出的依赖关系依赖关系

实现“org.ros.rosjava_core: rosjava: (0.3.2, 0.4)”
实现“org.ros.rosjava_messages: diagnostic_msgs: [1.12, 1.13)”
实现“org.ros.rosjava_messages: sensor_msgs: [1.12, 1.13)”
实现“org.ros.rosjava_messages: geometry_msgs: [1.12, 1.13)”
实现“org.ros.rosjava_core: rosjava_geometry: 0.3.6”
实现“org.ros.rosjava_messages: visualization_msgs: [1.12, 1.13) '
实现“org.ros.rosjava_bootstrap: message_generation: [0.3, 0.4)”
实现“org.ros.rosjava_messages: std_msgs: 0.5.11”

4所示。打开AndroidManifest.xml文件位于src>主要您的项目的文件夹。更新文件通过改变代码的位置标记图像。

  • 位置1——添加此代码后应用程序标签。

xmlns:工具= " http://schemas.android.com/tools "
工具:取代= " android:图标"
  • 位置2——替代行动和类别部分。

<行动android: name = " com.android.ros金宝appupport.START_MODEL_GAZEBO " / >
<类别android: name = " android.intent.category.DEFAULT " / >
  • 位置3——添加活动服务部分后立即活动部分。

<活动android: label = " @string / app_name”android: name = " .MainActivity "
android:主题= " @style / MWAppTheme " android: configChanges = "拉取向| " >
<意图过滤器>
<行动android: name = " android.intent.action.MAIN " / > >
<类别android: name = " android.intent.category.LAUNCHER " / >
< /意图过滤器>
> < /活动
<服务android: name = " .MWNodeMainExecutorService "
工具:忽视= " ExportedService " >
<意图过滤器>
<行动android: name = " org.ros.android.NodeMainExecutorService " / >
< /意图过滤器>
< /服务>
  • 位置4——添加这些ROS uses-permissions低于上市uses-permission

< uses-permission android: name = " android.permission.FOREGROUND_SERVICE " / >
< uses-permission android: name = " android.permission.WRITE_EXTERNAL_STORAGE " / >
< uses-permission android: name = " android.permission.ACCESS_WIFI_STATE " / >
< uses-permission android: name = " android.permission.CHANGE_WIFI_STATE " / >
< uses-permission android: name = " android.permission.WAKE_LOCK " / >
< uses-permission android: name = " android.permission.SYSTEM_ALERT_WINDOW " / >

5。改变MATLAB使用这个命令当前文件夹的MATLAB命令窗口:

cd (fullfile (matlabshare金宝appd.supportpkg.getSupportPackageRoot,“工具箱”,“目标”,“金宝appsupportpackages”,“android”,“androidexamples”,“ROSonAndroid”,“ControlDronePosition”))

一。这些文件复制粘贴的src>主要>java>com.example.ControlDronePosition您的项目的文件夹。在这里,ControlDronePosition是你的项目的名称。

  • ROSMainActivity.java

  • PublishNode.java

  • MainActivity.java

  • MWNodeMainExecutorListener.java

  • MWNodeMainExecutorService.java

  • MWNodeMainExecutorServiceListener.java

b。保存main。xml文件src>主要>res>布局您的项目的文件夹。

c。保存mwstyle.xml文件src>主要>res>您的项目的文件夹。

6。打开ControlDronePosition.java文件位于src>主要>java>com.example.ControlDronePosition您的项目的文件夹。在这里,ControlDronePosition是你的项目的名称。更新文件通过改变代码的位置标记图像。

  • 位置1——添加ROS导入语句。

进口org.ros.node.NodeConfiguration;
进口org.ros.node.NodeMainExecutor;
  • 位置2——取代AppCompactActivityROSMainActivity

  • 位置3——添加PublishNode声明的定义onCreate方法。

PublishNode pn;
  • 位置4——添加ROSPublish初始化方法定义的定义naMain方法。

公共空间ROSPublish (double[]数据)
{
如果(pn ! = null)
pn.publishData(数据);
}
保护无效init (NodeMainExecutor NodeMainExecutor) {
pn = new PublishNode (“bebop2 /命令/姿势”,“geometry_msgs / PoseStamped”);
NodeConfiguration NodeConfiguration = NodeConfiguration.newPublic (getRosHostname ());
nodeConfiguration.setMasterUri (getMasterUri ());
nodeMainExecutor。execute (pn, nodeConfiguration);
}

ROSPublish使用的方法接受输入的位置数据数据输入块的仿真软件模型。金宝app方法然后将数据发布到露台模拟器(ROS的主人)。公布的数据的数据类型取决于消息类型的ROS的话题。在这个例子中,发布主题是bebop2 /命令/姿势和消息类型是geometry_msgs / PoseStamped。您可以使用一个不同的主题名称和消息类型基于应用程序的需求。的初始化方法被调用后,ROS创建客户机。在这个函数中,您可以指定数量的出版商和用户所需的应用程序。在这个例子中,只有一个出版商是必需的。

步骤4:在工作室Android项目文件同步

在Android工作室,单击现在同步按钮,在右上角的Android Studio编辑器。

当同步您的项目,您可能会看到下面的错误消息。为了解决这个问题,点击链接出现错误消息。

请注意:构建工具中指定版本号错误消息可能随版本的Android gradle插件安装在电脑。

第五步:配置和运行ROS的Android设备端

请注意:在继续之前,确保你的电脑和Android设备被连接到相同的wi - fi网络。

1。在Android Studio工具栏中,选择运行>运行“ControlDronePosition”。Android工作室你的设备上安装应用程序。设备上的应用程序开始运行,并提供你的选项来配置设备ROS主人或ROS客户机。

2。选择ROS的客户选项指定计算机的IP地址和端口号。在这个例子中,IP地址192.255.88.128和端口号11311年

3所示。将设备连接到计算机,点击连接。设备开始发送数据中指定的位置数据输入块的电脑。在这个例子中,是指定的位置1,1,1。这个位置比波普爵士乐无人机在模拟器上的变化1,1,1

4所示。改变x- - - - - -,y- - - - - -,z——坐标Position_X,Position_Y,Position_Z箱子在设备屏幕上。观察到无人机的位置更改这些箱子中指定的位置。

另请参阅

传感器数据可视化在RViz Android设备