【rosbridge】ROS与Android通信 (加更续集)

Android使用RosBridge和Ros系统通信记录 目前Android想和Ros通信,有三种方案:一、使用RosJava相当于在Android上实现了一个Ros系统,比较大,连接上下位机Ros后,可以作为系统的一部分进行分布式通信;RosJava优点是所有涉及ROS常用消息类型的UI控件,如方向控制按键,地图、摄像头数据渲染等控件都定义好了。 阅读详情

摘要
在安卓端开发一个app,使用rosbridge,能够与ROS端进行交互。此前博客,已经基本完成rosbridge的测试,但是功能还不够完善。这篇博客主要介绍一个功能相对完善的开源安卓项目,并进行调试编译,构建apk文件测试。

我的环境
win10, 蓝叠模拟器 Android 7
Android Studio 3.5.2
Android SDK Tools 26.1.1
Android Platform Version: API30 version3

解决编译构建问题

  1. compile->implementation
    老版本的build.gradle中dependency使用的compile需要更换成implementation

  2. build.gradle中的SDK等版本号需要对应,我第一次改也查了不少博客,我把自己的build.gradle放文末,供大家参考

  3. 解决butterknife注解报错
    我使用的是方法一,成功了,不知道方法二是否适用。
    大噶可以试一下,然后在评论区留言。

  4. 解决版本兼容性问题
    与链接中oppo情况极为相似似,甚至我只需要按照它说的版本修改就好

  5. Android开发无法连接dl.google.com—使用阿里云
    这几乎是国内Android Studio 项目必改的配置

测试调试apk
大家可以看之前我调试测试工程的博客

效果
能够看到topic,service,node
能够发布\订阅\请求\功能很全。
大家直接去这个开源项目看,里面有图片。

附录build.gradle

apply plugin: 'com.android.application'

android {
    signingConfigs {
    }
    compileSdkVersion 30
    buildToolsVersion "30.0.2"
    defaultConfig {
        applicationId "net.xxhong.rosclinet"
        minSdkVersion 18
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        compileOptions{
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
        //添加了javaCompileOptions
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.github.bmelnychuk:atv:1.2.+'
}
从零构建Android与ROS的桥梁:深入解析ROSBridge与WebSocket通信机制 本文深入解析了如何通过ROSBridge与WebSocket通信机制构建Android与ROS系统的高效桥梁。详细介绍了ROSBridge的架构设计、Android端实现、WebSocket优化策略及实战应用,为开发者提供了一套高性能、高可靠性的跨平台通信解决方案,特别适合机器人控制场景。 阅读详情

相关推荐

Android与Ros通信详解-2.RosBridge

RosBridge底层通过Websocket以Json格式进行通信。在Ros端安装服务,在Android端实现Websocket,完成和Ros端的通信。 ROS服务端 安装suite服务 sudo apt-get install ros-<rosdistro>-rosbridge-suite 启动 roslaunch rosbridge_server rosbridge_websocket.launch Android端 Android端使用了一个github上的开源项目,RosBridge

u014800750的博客 2805

安卓与ROS通信开发——1、安卓与ROS通信的现状

安卓与ROS通信开发——1、安卓与ROS通信的现状 概述概述概述 安卓与ROS通信的现状 ROS官方支持的语言绑定只有C++和Python,目前安卓想与ROS通信,必须借助半官方的rosjava包。 rosjava话题通信机制(Publish/Subscribe) rosjava和C++/Python一样,是一个全功能、大体量的ROS绑定,即可以在Java(android)平台上创建Master Node,然后其他Node(C++/Python)可以连上这个Master,进行分布式通信。 rosjava的

zhengzhizju的博客 1566

ROSBridge 实战:WebSocket 连接下实现 Android 与 ROS 双向通信(附 3 种消息类型示例)

本文详细介绍了如何通过ROSBridge实现Android与ROS系统的WebSocket双向通信,包括环境配置、Android客户端实现、三种核心消息类型(主题发布、主题订阅、服务调用)的实战示例,以及高级优化技巧和性能对比测试。ROSBridge作为一种轻量级解决方案,显著提升了移动设备与ROS系统的集成效率和跨平台能力。

weixin_31858171的博客 307

ROSBridge简介以及理解使用

安卓与ROS通信的现状 因为ROS官方支持的语言绑定只有C++和Python,所以目前安卓想与ROS通信,必须借助半官方的rosjava包,而Rosjava太重了,因为它跟C++/Python一样,是一个全功能的ROS绑定,意即你可以在Java(android)平台上创建Master Node,然后其他Node(C++/Python)可以连上这个Master,进行分布式通信!这对于桌面Java或许......

lovely_yoshino的博客 3万+

ros2--rosbridge_server

下载humble发行版:

m0_60274660的博客 398

新手必看!无人机定高PID调参避坑指南:从理论到实战的完整流程

本文为无人机新手提供定高PID调参的完整指南,从传感器融合到抗风策略,详细解析多传感器融合、PID控制参数调试及环境干扰应对。通过实战案例和代码示例,帮助开发者快速掌握无人机定高技术,避免常见调参陷阱,提升飞行稳定性。

spark7igniter的博客 222

Android 与ROS机器人交互APP开发笔记-连接机器人

随着人工智能和机器人技术的不断发展,智能机器人已经逐渐融入我们的生活和工作中。而在众多技术的融合中,Android系统和ROS(Robot Operating System)相结合,为智能机器人的发展开辟了一条崭新的道路。本人也是正在开发Android 与ROS机器人交互的APP,分享一些开发笔记,与君共勉!

zxwzxw226425的博客 2687

A Mathematical Framework for Transformer Circuits—(一)

transformer数学理解理论

qq_42208244的博客 2665

通过Rosbridge与Android通信---安卓接口说明

摘要 本文承接上一篇博客【rosbridge】ROS与Android通信(加更续集) 继续研究Rosbridge开源项目,介绍通信接口使用方法及学习体会 附带介绍开源项目中的实用的依赖包、依赖库 项目核心文件 manifests,res是安卓常规文件夹 com.jilk.ros包含核心客户端代码实现 net.xxhong.rosclient 对客户端进行封装,且实现了所有节点,话题,服务的显示 项目依赖文件 我在拿到代码之后,花好一阵子才稍微熟悉项目中的一些依赖。 butterknife 通过注

无数 2050

小蔺的米哈游数据分析师之路——MYSQL篇

作为新人,记录自己mysql学习历程

weixin_47070228的博客 435

数据工程师——ETL

文章摘要 ETL(数据抽取、转换、加载)是数据处理的核心流程,负责将分散数据源整合为高质量数据。ETL与ELT的主要区别在于转换步骤顺序,分别适用于不同规模数据场景。数据仓库通过ETL从多个数据源集成数据,支持分析决策。维度建模中的事实表记录业务指标,维度表提供上下文信息。缓慢变化维度(SCD)处理随时间变化的维度数据,常见类型包括直接覆盖型、新增版本型等。数据清洗解决数据缺失、重复、错误等问题,确保数据质量。数据血缘记录数据流转路径,便于问题排查和影响分析。常用ETL工具如Kettle通过转换和作业实现数

weixin_45729710的博客 1562

rosbridge

  之前有用安卓平台控制ROS节点的需求,在设计实验方案的时候了解到rosbridge。这一篇就对rosbridge做一个简单的介绍。希望这篇文章解释明白几个问题   1. rosbridge是什么?   2. rosbridge的结构   3. rosbridge的小demo  rosbridge是官方提供一款工具包,用于ROS系统和非ROS系统通信(只用于通信)。纯ROS系统可以做master节点,ros官方支持语言是C++,python。虽然rosjava可以让java也变成纯ros系统,但rosja

gls_nuaa的博客 7569

普通人也能看懂的Transformer源代码解释(PyTorch)

Transformer源代码解释之PyTorch篇 章节 词嵌入 位置编码 多头注意力 搭建Transformer 在这里插入图片描述 词嵌入 Transformer本质上是一种Encoder,以翻译任务为例,原始数据集是以两种语言组成一行的,在应用时,应是Encoder输入源语言序列,Decoder里面输入需要被转换的语言序列(训练时)。一个文本常有许多序列组成,常见操作为将序列进行一些预处理(如词切分等)变成列表,一个序列的列表的元素通常为词表中不可切分的最小词,整个文本就是一个大列表,元素为一个一

qq_50974223的博客 4170

【Rosbridge】 Ros 与 Android 通信(通信演示)

Rosbridge Ros 与 Android 通信(三) 系列博客第一篇: 配置编译 apk 文件 系列博客第二篇: 调试跑通 apk 文件 系列博客第三篇: 通信演示 我的实验环境 Windows 10(android虚拟机蓝叠) Ubuntu 18.04 (ROS) 已经完成的安卓apk Ros 端 启动ros roscore 打开websocket服务 roslaunch rosbridge_server rosbridge_websocket.launch 启动hello world脚本

无数 3290

VASP实战:从非共线磁矩到自旋轨道耦合磁各向异性能的完整计算流程解析

本文详细解析了VASP中从非共线磁矩计算到自旋轨道耦合磁各向异性能的完整流程。通过实战案例和参数配置技巧,帮助研究者掌握非线性磁矩计算的关键步骤,包括SOC参数设置、文件传递逻辑以及磁各向异性能的精确提取方法,为材料磁性研究提供实用指导。

weixin_31102231的博客 411

3、数据导入与清洗:Excel、SQL、SPSS、Stata和SAS数据处理

本文详细介绍了如何从Excel文件、SQL数据库以及SPSS、Stata和SAS等统计软件中导入和清洗数据。针对不同数据来源的特点,提供了具体的处理方法,包括跳过无用行、重命名列、处理缺失值、转换数据类型、保留元数据等关键步骤。同时,通过实际应用案例展示了如何整合多源数据,并总结了数据导入和清洗的最佳实践,帮助读者高效完成数据预处理工作,为后续的数据分析打下坚实基础。

134

ros和java通讯_Android使用ROSBridge与ROS通信 简单使用

环境ROS kineticROS 服务端安装sudo apt-get install ros--rosbridge-suite启动roslaunch rosbridge_server rosbridge_websocket.launch在这之前不需要开启 roscore, 因为 rosbridge 会默认执行 roscoreAndroid客户端要让 android 接收或者发送 ROS 消息的...

weixin_32374723的博客 1740

linux v3h平台开发系列详解(GMSL摄像头篇):1.11 解串器MIPI 1.5G高速率特殊deskew配置

解串器max96712 deskew配置

xian18809311584的博客 1777

安卓与ROS通信开发——3、rosbridge v2.0协议规范

安卓与ROS通信开发——3、rosbridge v2.0协议规范 https://github.com/RobotWebTools/rosbridge_suite/blob/groovy-devel/ROSBRIDGE_PROTOCOL.md 更新于2019年3月28日 本文档概述了rosbridge v2.0协议。v2.0协议包含了自rosbridge的第一个版本发布以来出现的许多需求,并进行了少量的修改,以提高协议的可扩展性。在其核心,该协议仍然包含与先前版本rosbridge相同的语义的操作。 主要的

zhengzhizju的博客 1516

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【rosbridge】ROS与Android通信(配置编译 apk 文件)

场景:在ubuntu18.04上安装Android Studio后无桌面快捷方式 成功解决方法:ubuntu 18.04系统设置应用到桌面快捷方式的使用方法 计划复现 Android和ROS的通信 消息的传递 趁着有一些依赖还需要下载,我先看一看AS的视频教程,希望能够更加了解这个开发平台。 ubuntu18.04 总是显示 网络不可达 就很烦,我也不知道应该怎么办。 还是得翻墙下载一个.pom文件,然后找到地方放进去。 我是用ccleaner先找到其他的.pom放在哪里然后再放进去。 Android S

无数 3762

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

使用rosbridge协议实现安卓跟ROS的解耦

安卓与ROS通信的现状因为ROS官方支持的语音绑定只有C++和Python,所以目前安卓想与ROS通信,必须借助半官方的rosjava包,而Rosjava太重了,因为它跟C++/Python一样,是一个全功能的ROS绑定,意即你可以在Java(android)平台上创建Master Node,然后其他Node(C++/Python)可以连上这个Master,进行分布式通信!这对于桌面Java或许还能

六个九十度 8312

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

地图导航功能的实现 之 ROS通信

地图导航分为三个部分,第一个部分为雷达部分的ROS系统,第二部分为通信部分,一般有http协议,ros协议(ROSjava和Rosbridge协议),zmq协议等,第三部分为安卓端和用户交互部分。这里介绍一下通信部分。 一. RosJava协议 ROS官方支持的绑定只有C++和Python,所以目前安卓想与ROS通信,必须借助官方的ROSjava包,通过ROSjava实现与ROS端的通信并进行

a289973483的博客 4143

【Rosbridge】ROS 与 Android 通信(调试跑通 apk 文件)

把apk文件弄出来还是不够的,我发现那个apk根本没办法用啊。 还是得返回android Studio 工程中找找问题。 我觉得还是得先看一下AS 的简单教程再继续。 Android studio 教程 这个系列视频最后也有一些常见gradle问题可以参考 发现ip地址是需要调整,我准备在一台Windows上使用虚拟Android手机与Ubuntu上运行的ROS进行交互。 查看到IP地址为10.122.219.46 端口应该是9090 ...

无数 1699

Android和ROS的通信 消息的传递

本人才疏学浅吗,对理论不是很懂,就简单的阐述一下前人的结论,重点放在功能的实现上面。 首先要实现ROS和Android的通信,那么就先有Android,再安装ROS,再进行通信。这是一个很漫长的过程,大家看到这篇博文的时候,淡定一点,因为它很长,涉及的方面比较广,这篇博文主要适于 Android的开发人员,ROS端的大神,就别来凑热闹了。 简单的分一下大家从哪些方面来完成任务,相应的...

dadachenchen的博客 1万+

Android与Ros通信详解-1.概述

Ros官方支持C++和Python,而为了更好做出显示效果,会用到Android+Ros这种技术架构;Android用于显示,Ros处理业务;Android和Ros之间通过局域网进行通信。常用的方式主要有RosBridge和RosJava两种。 RosBridge 底层通过Websocket以Json格式实现非Ros环境和Ros之间的通信。这种通信方式是轻量级的,能将非Ros环境和Ros解耦。 RosJava Ros的java语言实现,可以理解为和roscpp和rospy类似,能在Android上运行Ros

u014800750的博客 1343

Android与ROS通信终极指南:RxTool实现跨平台机器人控制

RxTool是一个功能强大的Android开发工具库,为开发者提供了丰富的工具类和组件,其中包含了强大的网络通信和跨平台交互能力。虽然项目本身并未直接集成ROS(机器人操作系统)支持,但其强大的网络通信框架为Android与ROS系统的集成提供了坚实基础。 ## 🔧 RxTool网络通信核心功能 RxTool提供了全面的网络通信工具类,为Android设备与外部系统(包括ROS)的通信奠定了

gitblog_01099的博客 1132
上一篇: 【Rosbridge】 Ros 与 Android 通信(通信演示)
下一篇: Arduino tone() 函数 和 IRemote库定时器冲突 实践解决方法
groundnut888
博客等级 码龄6年 59粉丝 27原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值