这里写自定义目录标题

  • 安卓平台及windows平台上基于Gazebo仿真器的px4遥控控制
    • 数据链路描述
    • 安卓平台简介
      • 安卓平台四旋翼无人机控制
      • 安卓平台固定翼无人机控制
      • 安卓平台无人车控制
      • 安卓遥控器实物控制
    • 桌面平台遥控图形界面
      • 桌面平台四旋翼无人机控制
      • 桌面平台无人车控制
    • 图像传输通信格式
    • 指令传输通信格式

安卓平台及windows平台上基于Gazebo仿真器的px4遥控控制

使用pixhawk飞控进行的物联网控制,pixhawk具有一个较为成熟的框架。开源飞控系统PX4采用MavLink通信协议,可通过串口,TCP,UDP等多种通信方式进行数据传输,建立在其上的控制系统可跨平台实现并通信。

数据链路描述

飞控将采集的无人机状态信息通过无线网络实时传输至部署于网络的服务器中转站,通过服务器中转至控制软件,控制软件通过物联网信道控制无人机飞行,实现超远距离的无人机控制,可设置视频传输信道,以代替图传系统,实现对无人机图像信息的实时获取。

  1. **Linux仿真机:运行gazebo仿真软件及PX4程序
  2. Ros系统:与Gazebo通信,并处理相关信息
  3. 数据转播:将ROS话题通过TCP端口转播出去
  4. 中转服务器:位于国王并开方端口的数据转播计算机
  5. Windows桌面程序及Android程序:接受数据,并传出控制指令

安卓平台简介

界面设计如上所示,分为摇杆和图传显示窗口以及图传转换按钮,其分别实现对无人机的俯仰滚转控制,上升下降偏航控制,图传为对图像的显示,图像转换按钮为当无人机存在多台摄像头时可进行图像的转化。在数据链路的基础上可以增加对无人机传感器的数据显示。

安卓平台四旋翼无人机控制

安卓四旋翼

四旋翼无人机控制控制通道为俯仰滚转,起降以及偏航的控制,其控制效果见上所示。

安卓平台固定翼无人机控制

安卓飞机

固定翼无人机控制主要为xy位置控制以及起降偏航控制,当固定翼到达指定地点后在其上空盘旋。
强调文本 强调文本

安卓平台无人车控制

安卓无人车

无人车可实现对其前左右方向控制,以及其速度控制。

安卓遥控器实物控制


半实物仿真,在linux中运行飞机模型,通过仿真软件获取位姿,解算后传入AFC-4半实物平台,半实物平台获取实时传感器数据用于控制。

桌面平台遥控图形界面


分为设备列表,资源列表,显示模块,控制模块,通过数据链路于仿真平台连接,进而控制仿真机上的无人机及无人车。

桌面平台四旋翼无人机控制

电脑四旋翼

桌面平台四旋翼无人机控制控制通道为俯仰滚转,起降以及偏航的控制,其中在图像界面使用鼠标控制无人机俯仰滚转,通过键盘上下左右键控制无人机起降偏航。

桌面平台无人车控制

电脑无人车

图像传输通信格式

在windows和安卓平台上均使用相同的数据通信格式,其中在通信传输中,其通信格式为:标识符+数据长度+Base64图像数据+截至标识符。如在python 中的代码如下:

def callback(data):# 图像传输控制变量,及ros转换变量global count,connect,bridgecount = count + 1if connect!=101:return#设置传输间隔。if count >= 3:count = 0frame=bridge.imgmsg_to_cv2(data,'bgr8')frame=cv2.rotate(frame,cv2.ROTATE_90_CLOCKWISE)encoded,buffer = cv2.imencode('.jpeg',frame,[cv2.IMWRITE_JPEG_QUALITY,10])message = base64.b64encode(buffer)size = len(message)print(size)strSize = str(size) + "\n"conn.send(strSize.encode('utf-8'))conn.send(message)#截至标识符conn.send(("\nhappy face\n").encode('utf-8'))else:pass

指令传输通信格式

采用自定义指令格式,其格式为:指令类型:指令代码*.其中在android 中的代码如下

     try {OutputStream outputStream = null;outputStream = socket.getOutputStream();// 写入需要发送的数据到输出流对象中Log.wtf("socket", Thread.currentThread().getName()+s);s=cmd_str+":"+cmd_int+"*"byte[] bb=s.getBytes(StandardCharsets.UTF_8);outputStream.write(bb);outputStream.flush();} catch (Exception e){try {Thread.sleep(2000);} catch (InterruptedException interruptedException) {interruptedException.printStackTrace();}e.printStackTrace();Thread thread = new Thread(this);thread.start();}

安卓平台及windows平台上基于Gazebo仿真器的px4遥控控制相关推荐

  1. linux平台及windows平台mysql重启方法

    linux平台及windows平台mysql重启方法 Linux下重启MySQL的正确方法: 1.通过rpm包安装的MySQL service mysqld restart 2.从源码包安装的MySQ ...

  2. windows10和linux流畅,《古墓丽影10:崛起》Linux平台与Windows平台流畅度对比

    <古墓丽影10:崛起>不但可以在Linux平台完美运行,流畅度也与Windows平台非常接近了.根据外媒 FlightlessMango 的测试结果,Linux版与运行于DX12的Wind ...

  3. 古墓丽影10linux,《古墓丽影11:暗影》Linux平台与Windows平台流畅度对比

    <古墓丽影11:暗影>不但可以在Linux平台完美运行,流畅度也与Windows平台非常接近,甚至超过了Windows+DX11平台.根据外媒 FlightlessMango 的测试结果, ...

  4. JMeter 5.0 + InfluxDB + Grafana 性能测试监控平台(Windows平台)

    文章目录 1. 前言 1.1 InfluxDB 和 Grafana是什么? 1.2 JMeter的历代支持变迁 1.3 这篇文章讲了什么? 2. 下载与安装 2.1 InfluxDB 安装 2.2 G ...

  5. 基于单片机智能窗帘无线遥控控制设计(毕业设计)

    本设计是基于STC89C51单片机的遥控窗帘.采用按键和无线遥控两种控制方式,其中SC2262/SC2272 编码解码芯片组成无线发送接收模块:通过控制直流电机的正反转来控制窗帘的开关,并且可以指示运 ...

  6. 03 基于单片机智能窗帘无线遥控控制设计

    本设计是基于STC89C51单片机的遥控窗帘.采用按键和无线遥控两种控制方式,其中SC2262/SC2272 编码解码芯片组成无线发送接收模块:通过控制直流电机的正反转来控制窗帘的开关,并且可以指示运 ...

  7. windows 平台shellcode编写

    0x00.介绍 比方说你手头上有一个IE或FlashPlayer现成的漏洞利用代码,但它只能够打开计算器calc.exe.但是这实际上并没有什么卵用,不是吗?你真正想要的是可以执行一些远程命令或实现其 ...

  8. ISV客户博客系列:Persistent Systems 使用Windows Azure交付基于Java的CloudNinja项目

    编者注:本文作者是Persistent Systems 的云计算助理副总裁Shreekanth Joshi,描述了该公司是如何使用Windows Azure为他们的ISV客户开发和交付基于Java的应 ...

  9. oracle 数据库由Linux平台向Windows平台迁移

    转自:[url]http://blog.chinaunix.net/u2/72698/showart.php?id=1071322[/url] 最近学习了一下oracle数据库启动原理,突然想我在li ...

最新文章

  1. Windows2003 IIS安装
  2. 题目1550:分糖果
  3. 【Android】RxJava的使用(一)基本用法
  4. Java基础:常见对象
  5. Word2Vec中文语料实战
  6. 【转载】扫盲概念RPA
  7. java 判断精度_随笔⑦ Java中的比较 ==,equals以及精度对比较的影响
  8. WinXP中快捷方式加箭头
  9. Incorrect line ending: found carriage return (\r) without corresponding newline (\n)错误的解决方案...
  10. java实现删除指定指定目录下面指定某种类型的文件
  11. 《软件测试技术》课程第二周随笔
  12. ASP.NET MVC3 系列教程 – Web Pages 1.0
  13. C#编程(三十三)----------Array类
  14. NLP --- 条件随机场CRF详解
  15. 考公 | 粉笔网课笔记——行测:3.资料分析
  16. [网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
  17. 【UV打印机】PrintExp打印软件教程(三)-文件和打印
  18. 计算(输入计算式得出结果)
  19. Android开发者在Google Play上赚美元
  20. 在微信小程序中编写金额摇奖效果

热门文章

  1. python:矩阵的基本运算
  2. Dancing Links 模板
  3. 利用jsdelivr创建免费的CDN
  4. Vue项目中如何使用Echarts 及Echarts中echarts-liquidfill水晶球插件
  5. Nginx 搭建文件服务器
  6. 【大数据】大数据企业策略与法则
  7. 湖南大学平台2串口部分第二次实验
  8. Java中final和static修饰的变量是在什么时候赋值的?
  9. 学习poi导出excel之XSSFWorkbook
  10. python制作照片_Python-制作抖音图片