这个例子展示了如何生成一个Android™应用程序设置的位置鹦鹉®比波普爵士乐无人机在露台®模拟器使用仿真软件为Android设备®支持包。金宝app金宝app在这个例子中,您的计算机配置为ROS的主人,Android设备被配置为ROS客户机。设备连接到电脑通过机器人操作系统(ROS)接口。从设备接收到的数据显示使用模拟器上运行的计算机。
硬件需求
Android设备
USB电缆
软件需求
在你的电脑上安装这些产品:下载188bet金宝搏
MATLAB®(R2018a或更高版本)
金宝app仿真软件(R2018a或更高版本)
一个MathWorks®向虚拟机(VM)
配置Android设备使用androidhwsetup
。
完成开始使用Android设备的例子。
ROS是一个通信接口,使机器人系统的不同部分中发现,发送和接收数据。使用ToApp块的仿真软件支持Android金宝app设备包,金宝app您可以与ROS-enabled交换数据物理机器人或露台等机器人仿真器。有关更多信息,请参见机器人操作系统(ROS)和概念部分ROS网站上。
1。安装MathWorks-provided VM在您的计算机上。如果你已经安装了这个VM或如果你选择使用自己的VM,跳过这个步骤。
2。打开一个新的终端的虚拟机安装在你的电脑上。
3所示。在终端窗口中,输入ifconfig
。这个命令可以显示网络接口的配置VM。下eth0
,inet地址
显示在虚拟机的IP地址。请注意以后使用的IP地址。
4所示。设置标准ROS环境变量的值,ROS_MASTER_URI
和ROS_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
本节解释如何从仿真软件模型生成一个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
。
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——取代AppCompactActivity与ROSMainActivity。
位置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创建客户机。在这个函数中,您可以指定数量的出版商和用户所需的应用程序。在这个例子中,只有一个出版商是必需的。
在Android工作室,单击现在同步按钮,在右上角的Android Studio编辑器。
当同步您的项目,您可能会看到下面的错误消息。为了解决这个问题,点击链接出现错误消息。
请注意:构建工具中指定版本号错误消息可能随版本的Android gradle插件安装在电脑。
请注意:在继续之前,确保你的电脑和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箱子在设备屏幕上。观察到无人机的位置更改这些箱子中指定的位置。