《鸿蒙机器人编程》课件-5. 远程控制机器人底盘移动_第1页
《鸿蒙机器人编程》课件-5. 远程控制机器人底盘移动_第2页
《鸿蒙机器人编程》课件-5. 远程控制机器人底盘移动_第3页
《鸿蒙机器人编程》课件-5. 远程控制机器人底盘移动_第4页
《鸿蒙机器人编程》课件-5. 远程控制机器人底盘移动_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

©NXROBO2023综合案例:

基于鸿蒙系统的机器人控制

——远程控制机器人底盘移动综合案例介绍©NXROBO20232鸿蒙系统引入了全新的超级终端概念,我们可以将搭载了鸿蒙系统的多台设备连接在一起形成一个超级终端,享受万物互联的快感。我们可以通过其中的任意一台设备控制超级终端中的其他设备,例如手表、电脑、平板、手机等。那么,如果将各种机器人设备接入到鸿蒙,是不是也可以实现机器人的集群控制呢,从而打造一个超级炫酷的机器人超级终端系统,对机器人进行控制。综合案例介绍©NXROBO20233客户端应用开源鸿蒙开发板ROS机器人平台硬件架构©NXROBO20234

通信架构©NXROBO20235本章效果:手机操作控制机器人底盘移动©NXROBO20236本案例实现SPARK-HM-PI开源鸿蒙开发板接入ROS机器人平台,并实现手机终端与星火派开源鸿蒙开发板之间的TCP通信,从而实现通过手机客户端控制Spark-H机器人底盘进行运动。课程说明用户交互端设计开源鸿蒙控制终端设计ROS机器人端设计©NXROBO20237用户交互终端©NXROBO20238

碰一碰拉取应用©NXROBO20239鸿蒙原子化服务先在HarmonyOS服务开放平台进行标签的申请,在NFC标签中写入标签数据,数据包括鸿蒙原子化服务信息和设备的MAC地址,机器人端配置申请好的NFC标签。在客户端用手机设备与机器人段进行碰一碰时可以拉起用户与机器人的交互界面,用最便捷的方式给用户提供最好的交互体验。UI界面©NXROBO202310界面介绍可以实现对小车前进后退,左转右转的控制,同时状态栏显示小车状态。控制原理手机端与鸿蒙控制板端连接到同一网络下后,通过TCP/IP协议建立连接,通过一定的数据协议向控制板发送指令。开源鸿蒙控制终端©NXROBO202311简单数据协议规定©NXROBO202312接收客户端发来的指令规定接收到指令机器人行为"0"停止运动"1"前进"2"后退"3"左转"4"右转底盘串口驱动©NXROBO202313spark_base.h接口简介接口功能voidSpark_Init(void)小车初始化voidBase_Stop(void)停止voidBase_Forword(void)前进voidBase_Backward(void)后退voidBase_Left(void)左转voidBase_Right(void)右转voidBase_Status_Change(char*status)状态改变串口驱动可以实现对小车前进后退,左转右转的控制,同时状态栏显示小车状态。底盘控制手机端与鸿蒙控制板端连接到同一网络下后,通过TCP/IP协议建立连接,通过一定的数据协议向控制板发送指令。TCP服务端任务实现©NXROBO202314TCPServerTaskTCP服务端用于接收客户端发来的机器人底盘控制指令消息,并对消息进行处理。采用轻量级的TCP/IP协议栈LwIP进行标准的socket编程。底盘控制任务实现©NXROBO202315SparkMoveTask底盘控制任务用于根据底盘当前的运动状态不断给底盘发送运动指令。线程创建及入口函数©NXROBO202316SparkCmdEntry创建业务入口函数用于用户创建并配置线程任务并通过APP_FEATURE_INIT()或SYS_RUN启动业务。编写BUILD.gn©NXROBO202317添加编译程序编写完成后,需要将代码添加到编译链里面,并且要添加相关的依赖文件目录。驱动代码加入编译成静态库,并添加相关的依赖库添加编译规则,将生成的静态库文件添加到编译组件ROS机器人终端©NXROBO202318创建功能包©NXROBO202319开源鸿蒙开发板功能包功能包名:spark-hm-pi目录:spark_noetic/src/spark_driver/board依赖:roscpprospystd_msgsactionlibInclude:存放头文件src文件夹:存放节点源代码launch文件夹:存放节点管理launch文件CmakeLists.txt:配置编译规则,比如源文件、依赖项、目标文件package.xml:包信息节点通信架构©NXROBO202320在src下新建hm_read_node文件,将NUC串口读到的开发板发来的数据处理作为一个ros节点,主要做的动作是接收并解析串口发来的指令并发布/cmd_vel话题执行相应的底盘运动控制。节点代码实现©NXROBO202321Launch文件©NXROBO202322在功能包下新建一个launch文件夹,编写一个launch文件用来启动底盘以及鸿蒙节点启动。启动流程小结©NXROBO202323FinishStart11.初始化开发板烧录代码,机器上电,串口连接22.启动RO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论