ROSJava安装和在Android中使用ROS

1.ROSJava 安装

官方安装教程地址

Debs安装

这里以ROS Kinetic为例,其他版本类比

sudo apt-get install ros-kinetic-rosjava*
sudo apt-get install ros-indigo-genjava

创建工作区

mkdir -p ~/myjava/src
cd ~/myjava/src
source /opt/ros/kinetic/setup.bash
catkin_init_workspace
cd ~/myjava
catkin_make

在非Java工作区中禁用GenJava

为了节省编译时间,您可能希望在其他工作区禁用rosjava消息工件生成。为此,在这些工作区的setup.bash中添加以下一行:

echo "export ROS_LANG_DISABLE=genjava" >> ~/nojava/devel/setup.bash

有关详细信息,请参阅 ROS_LANG_DISABLE

2.在Android中使用ROS

官方配置教程地址

创建Android App项目

首先在Android Studio中创建一个普通的Android App

修改build.gradle文件

项目Sync完成之后,在项目左侧的文件列表内会有两个build.gradle文件。其中一个是Project的,另一个是Module的。

首先修改 Project 的build.gradle文件
把文件中的

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

修改为

buildscript {
  apply from: "https://github.com/rosjava/android_core/raw/kinetic/buildscript.gradle"
}

然后在该文件中继续添加

subprojects {
    apply plugin: 'ros-android'

    afterEvaluate { project ->
        android {
            // Exclude a few files that are duplicated across our dependencies and
            // prevent packaging Android applications.
            packagingOptions {
                exclude "META-INF/LICENSE.txt"
                exclude "META-INF/NOTICE.txt"
            }
        }
    }
}

最后修改 Module 的build.gradle,在dependencies 中添加ros依赖

...
dependencies {
    ...
    // You now now add any rosjava dependencies, like so:
    implementation 'org.ros.android_core:android_core_components:0.4.0'
    implementation 'org.ros.rosjava_bootstrap:message_generation:[0.3, 0.4)'
    implementation 'org.ros.rosjava_messages:std_msgs:0.5.11'
}
...

修改AndroidManifest.xml文件

Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:7:9-43
	is also present at [org.ros.android_core:android_10:0.3.3] AndroidManifest.xml:19:9-36 value=(@mipmap/icon).
	Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.

此时需要修改AndroidManifest.xml文件在application项目中做如下修改

<application xmlns:tools="http://schemas.android.com/tools"
        tools:replace="android:icon"

为了能够正常使用还需要给app添加网络权限。在AndroidManifest.xml文件中添加

<uses-permission android:name="android.permission.INTERNET"/>
 <activity android:name="org.ros.android.MasterChooser" />
 <service android:name="org.ros.android.NodeMainExecutorService" >
    <intent-filter>
        <action android:name="org.ros.android.NodeMainExecutorService" />
    </intent-filter>
</service>

最后的AndroidManifest.xml文件如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    pack
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值