7310|3

655

帖子

29

TA的资源

版主

楼主
 

42“万里”树莓派小车——ROS学习(Android使用ROSBridge控制小乌龟) [复制链接]

本帖最后由 lb8820265 于 2022-11-8 23:14 编辑

    前面通过网页使用ROSBridge控制小乌龟,这里介绍使用Android手机来控制小乌龟。

一、从零开始新建ROSBridge工程

    从Android源码开始学习并不是最好的方法,由于环境不一样,直接编译不一定能通过,移植到自己工程也不一定能成功,所有这里介绍从零开始新建ROSBridge工程。

0. 下载源码

    下载链接在帖子最后。

1. 新建AS工程

    本帖采用Android Studio 4.1,新建一个空白工程,包名为“Lb_ROSBridge_Turtle”。

  2. 复制例程文件到新工程

     复制“libs”文件夹内的文件到新工程对应位置。

    复制“jilk”文件夹到新工程对应位置。

      替换“activity_main.xml”布局文件到新工程对应位置。如果包名不同,记得修改文件中tools:context的包路径。

      替换“MainActivity.java”与复制“RCApplication.java”文件到新工程对应位置,如果包名不同,记得要修改文件首行的包名。

    3. 修改“AndroidManifest.xml”文件

     添加权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    关联Application

android:name="com.example.lb_rosbridge_turtle.RCApplication"

    允许让外部组件启动(在Android 12版本以上手机上需要)

android:exported="true"

4. 修改“build.gradle”文件

添加libs文件夹库路径

implementation fileTree(include: ['*.jar'], dir: 'libs')

二、ROSBridge工作流程

     所有编写均在“MainActivity.java”文件中。

1. 注册EventBus,用于接收消息

EventBus.getDefault().register(this);

2. 调用connect,用于连接树莓派服务器

connect(String ip, String port)

3. 获取已经连接的Rosbridgeclient类的实例

client = ((RCApplication)getApplication()).getRosClient();

4. 发送数据给服务端

client.send(msg);

     订阅和发布信息都是同一指令。

5. 获取服务端数据

onEvent(final PublishEvent event)

    上面只是主要的流程,详细的代码查看源代码。

三、操作与演示

树莓派服务端操作

1. 启动内核

roscore

2. 启动小乌龟

rosrun turtlesim turtlesim_node

3. 开启rosbridgea服务

roslaunch rosbridge_server rosbridge_websocket.launch

手机端操作

0. 运行APP

    可以通过在线仿真或者直接安装APP。

1. 输入树莓派IP

    需要手机和树莓派在同一个局域网中。

2. 点击“连接”

    连接正常,连接状态会显示“已连接”

3. 点击“订阅位置”

    也就是发送订阅指令,随后树莓派会不停的发送位置信息给手机

4. 输入控制参数

    滑动拖动条来选择控制参数,控制参数有:直行速度、横向速度和转向速度。

5. 点击“发布”

    将控制参数发布出去,树莓派小乌龟就会根据运动参数开始运动。

 四、源码

GitHub:https://github.com/wanli-car/Examples/tree/master/Android/Lb_ROSBridge_Turtle

Gitee:https://gitee.com/wanli-car/Examples/tree/master/Android/Lb_ROSBridge_Turtle

APK安装包见帖子附件。

Lb_ROSBridge_Turtle.apk

2.23 MB, 下载次数: 7

Lb_ROSBridge_Turtle.apk

2.23 MB, 下载次数: 4

此帖出自创意市集论坛

最新回复

买了一个树莓派4B 2G版的,可惜忙的要死,买回来就接灰了。而且后面还降价了一多半  详情 回复 发表于 2023-11-25 01:54
点赞(1) 关注
个人签名QQ:252669569
 
 

回复
举报

6822

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

先新建ROSBridge工程文件,进行ROS学习学习是个好习惯

此帖出自创意市集论坛
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

先新建ROSBridge工程文件,进行ROS学习学习是个好习惯

此帖出自创意市集论坛
 
 
 

回复

1633

帖子

0

TA的资源

五彩晶圆(初级)

4
 
买了一个树莓派4B 2G版的,可惜忙的要死,买回来就接灰了。而且后面还降价了一多半
此帖出自创意市集论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表