# Ros2-Mobile-Android
**Repository Path**: chenhaoyuyu/Ros2-Mobile-Android
## Basic Information
- **Project Name**: Ros2-Mobile-Android
- **Description**: The ROS2 visualization interface operation applicable to Android systems, based on the ROS2 rcljava and FastDDS middleware for native communication within the local network, without relying on WebSocket gateway.
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2026-03-17
- **Last Updated**: 2026-06-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ROS2-Mobile-Android
`ROS2-Mobile-Android` 是一个基于 Android 的 ROS2 移动端控制与可视化应用,面向移动机器人场景,支持在手机端进行话题查看、发布/订阅交互与可视化控件操作。帮助机器人工程师更好地方便地调试机器人。
本项目**参考并继承自** [ROS-Mobile-Android-master](https://github.com/ROS-Mobile/ROS-Mobile-Android)(ROS1 版本)的整体设计与交互思路,并将核心通信能力迁移到 ROS2 生态。基于 ROS2 rcljava 与 FastDDS 中间件进行局域网内原生通信,不依赖 WebSocket 网关,不用配置IP。
## 项目特性
- Android 端 ROS2 通信(基于 `rcljava`)
- 主界面多标签页:`Master / Details / SSH / Viz`
- 支持动态添加与编辑可视化控件(Widget)
- 当前已支持的典型控件类型:
- Joystick(`geometry_msgs/msg/Twist`)
- Button(`std_msgs` 多基础类型)
- Label(多基础类型订阅显示)
- map (地图、机器人位姿、激光雷达数据显示)
- Master 页支持话题发现与监控
## 环境要求
- Android Studio(建议较新稳定版本)
- Android 设备(建议 Android 6.0+)
- ROS2 运行环境(与设备网络互通)
## 版本兼容性说明
- 当前仓库内提供的 `.so` 与 `.jar` 依赖以 **ROS2 Humble** 构建链为基准。
- 建议优先与 ROS2 Humble 环境配套使用。
- 其他 ROS2 版本(如 Iron/Jazzy)在部分 Topic 场景可能可互通,但不保证完全兼容;如需稳定支持,建议使用对应版本重新编译一套 Android 依赖。
## 快速开始
### 方式一:直接下载 Release(推荐)
1. 打开本仓库的 `Releases` 页面。
2. 下载与你设备架构匹配的 APK。
3. 将 APK 安装到 Android 设备并启动。
4. 在Master 页面中配置 ROS2 Domain ID,点击话题列表即可看到同一局域网中的话题。
### 方式二:从源码构建
1. 使用 Android Studio 打开本项目。
2. 准备并放置 ROS2 Android 二进制依赖到以下目录:
- `app/libs`
- `app/src/main/jniLibs`
3. 连接 Android 真机并构建运行。
4. 在应用中配置 ROS2 Domain ID 与网络环境,进入 Master 页面查看话题。
5. 其他 ROS2 版本(如 Iron/Jazzy)在部分 Topic 场景可能可互通,但不保证完全兼容;如需稳定支持,建议使用对应版本重新编译一套 Android 依赖。
## 构建前准备(重要)
在运行源码构建之前,请先准备 ROS2 Android 相关二进制依赖(`.so` / `.jar`),并放置到项目对应目录:
- `app/libs`
- `app/src/main/jniLibs`
可直接从- [https://github.com/ChenHaoYu666/ros2_android_deps](https://github.com/ChenHaoYu666/ros2_android_deps)中下载二进制依赖。
或者自己编译,可参考:
- https://github.com/YasuChiba/ros2-android-build
## 致谢
- ROS-Mobile-Android(ROS1)项目贡献者
- ROS2 与 rcljava 社区
## 参考来源
本项目参考了以下开源项目(ROS1):
- [ROS-Mobile-Android-master](https://github.com/ROS-Mobile/ROS-Mobile-Android)
感谢原项目作者在架构、UI 组织与移动端 ROS 交互方面的工作。
## License
本项目采用 **Apache License 2.0**,详见仓库根目录 `LICENSE` 文件。
- License 文本:`http://www.apache.org/licenses/LICENSE-2.0`
- 项目中涉及的第三方依赖与参考项目(包括 `ROS-Mobile-Android-master`)仍分别遵循其原始许可证声明。
- 若仓库内个别源文件头部包含独立许可证/版权声明,以对应文件声明为准。