5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
楼主: axnzero
打印 上一主题 下一主题

APM看上去不错,尝试做一套

  [复制链接]
121
 楼主| 发表于 2012-12-12 21:24 | 只看该作者
点击查看详情
kissghost 发表于 2012-12-12 09:51
LZ,我正准备开始研究MAVLINK这块,能不能分享一下MAVLINK的资料
之前一直在做外围应用的修改,现在想搞 ...

MAVLINK的资料,我目前只有一份:MAVLINK Common Message set Specifications.pdf
是从官网下 载的。
尺寸大,没法在这里上传给你,你自己下 载吧。
在百度文库我找到一份中文版的,不过里面大部分是机器翻译的,质量不高,参考价值不大。

我对MavLink的了解还不够深,按照目前的理解,只要在地面站软件里面少开几个回传的数据类型,
就可以设定较低的波特率,同时满足10Hz的刷新。
那么你需要一定的C#的基础,只要把几行程序注释掉即可。

至于优化协议,我觉得这协议已经很紧凑了,至少我做不到使其更紧凑了。
希望你能多多指教。

欢迎继续阅读楼主其他信息

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
122
 楼主| 发表于 2012-12-12 23:03 | 只看该作者
本帖最后由 axnzero 于 2012-12-12 23:50 编辑

G代码解码测试。

038.jpg (108.05 KB, 下载次数: 173)

038.jpg
123
发表于 2012-12-13 09:44 | 只看该作者
本帖最后由 kissghost 于 2012-12-13 09:46 编辑
axnzero 发表于 2012-12-12 21:24
MAVLINK的资料,我目前只有一份:MAVLINK Common Message set Specifications.pdf
是从官网下 载的。
尺 ...


我之前一直没去折腾MAV这块
前几天跟模友讨论数传说起来APM不能低于57600波特率不然连不上
我分析了一下,估计是数据量过大,低于57600报文发送不完整
尤其在空中的时候

124
 楼主| 发表于 2012-12-13 11:04 | 只看该作者
在缺省情况下,APM的软件和飞控版之间要传好多数据,包括十个传感器的原始数据。
这些原始数据大多数情况不需要,可以关掉。

要关掉就需要修改飞控版的源代码,另外还需要修改飞控版的串口设置。

你说的低于57600连不上,我不清楚是哪种连不上。
1,直接修改地面站软件的波特率设置。这是肯定不行的。就算偶尔有数据传送也是很不稳定的。
2,同时修改了飞控版和地面站软件波特率。如果是这样,理应连通,只是数据刷新率会成倍变化。
125
 楼主| 发表于 2012-12-13 20:35 | 只看该作者
G02和G03圆弧代码解算。

039.jpg (94.76 KB, 下载次数: 145)

039.jpg
126
 楼主| 发表于 2012-12-13 20:36 | 只看该作者
G02和G03圆弧代码解算。

039.jpg (95.01 KB, 下载次数: 115)

039.jpg
127
发表于 2012-12-15 10:48 | 只看该作者
楼主太牛了,一个月完成很多工作啊,十分佩服
128
 楼主| 发表于 2012-12-15 21:17 | 只看该作者
016 WAYPOINT                       航点
017 LOITER_UNLIM                   持续盘旋
018 LOITER_TURNS                   盘旋N圈
019 LOITER_TIME                    盘旋N秒
020 RETURN_TO_LAUNCH               返回起飞点
021 LAND                           着陆
022 TAKEOFF                        起飞
080 ROI                            兴趣点
081 PATHPLANNING                   航路规划
112 CONDITION_DELAY                暂停n秒
113 CONDITION_CHANGE_ALT           设定高度
114 CONDITION_DISTANCE             设定距离
115 CONDITION_YAW                  设定航向
176 DO_SET_MODE                    设定模式
177 DO_JUMP                        循环跳转
178 DO_CHANGE_SPEED                设定航速或油门
179 DO_SET_HOME                    设定家位
180 DO_SET_PARAMETER               设定参数
181 DO_SET_RELAY                   设定继电器
182 DO_REPEAT_RELAY                触动继电器N次
183 DO_SET_SERVO                   设定舵机
184 DO_REPEAT_SERVO                触动舵机N次
200 DO_CONTROL_VIDEO               机载摄像机
241 PREFLIGHT_CALIBRATION          飞行前校准
242 PREFLIGHT_SET_SENSOR_OFFSETS   传感器偏置设定
245 PREFLIGHT_STORAGE              日志存储
246 PREFLIGHT_REBOOT_SHUTDOWN      设备关机或重启
252 OVERRIDE_GOTO                  强制跳转
129
发表于 2012-12-16 10:19 | 只看该作者
楼主高人啊。
130
 楼主| 发表于 2012-12-16 15:14 | 只看该作者
016 WAYPOINT          航点            时间 半径 方式 指向
017 LOITER_UNLIM      持续盘旋        ---- ---- 半径 指向
018 LOITER_TURNS      盘旋N圈         圈数 ---- 半径 指向
019 LOITER_TIME       盘旋N秒           秒 ---- 半径 指向  
020 RETURN_TO_LAUNCH  返回起飞点      ---- ---- ---- ----
021 LAND              着陆            ---- ---- ---- 指向
022 TAKEOFF           起飞            迎角 ---- ---- 指向
080 ROI               兴趣点          模式 任务 代号 ----
081 PATHPLANNING      航路规划        规划 模式 ---- 指向
112 CON_DELAY         暂停n秒         时间 ---- ---- ----
113 CON_CHANGE_ALT    设定高度        速率 ---- ---- ----
114 CON_DISTANCE      设定距离        距离 ---- ---- ----
115 CON_YAW           设定航向        指向 速率 顺逆 相对
176 DO_SET_MODE       设定模式        模式 ---- ---- ----
177 DO_JUMP           循环跳转        行号 次数 ---- ----
178 DO_CHANGE_SPEED   设定航速或油门  空地 速度 油门 ----
179 DO_SET_HOME       设定家的位置    方式 ---- ---- ----
180 DO_SET_PARAMETER  设定参数        代号 数值 ---- ----
181 DO_SET_RELAY      设定继电器      代号 开关 ---- ----
182 DO_REPEAT_RELAY   触动继电器N次   代号 次数 周期 ----
183 DO_SET_SERVO      设定舵机        代号 位置 ---- ----
184 DO_REPEAT_SERVO   触动舵机N次     代号 位置 次数 周期
200 DO_CONTROL_VIDEO  机载摄像机      代号 开关 传输 记录
241 CALIBRATION       飞行前校准      陀螺 罗盘 气压 遥控 重力
242 SENSOR_OFFSETS    设定传感器基准  类型 X    Y    Z   
245 STORAGE           日志存储        参数 任务 保留 保留
246 REBOOT_SHUTDOWN   设备关机或重启  飞控 电脑 保留 保留
252 OVERRIDE_GOTO     立即前往        保持 状态 类型 指向
300 MISSION_START     任务启动        起点 终点 ---- ----
400 COMPONENT_ARM     设备启停        开关 ---- ---- ----
131
 楼主| 发表于 2012-12-16 22:19 | 只看该作者
开始制作航路规划功能。
基本的航点插入和航点管理已实现。
目前设定航点上限1000个。

040.jpg (138.37 KB, 下载次数: 43)

040.jpg
132
 楼主| 发表于 2012-12-17 09:23 | 只看该作者
//-------------------------------------------------------------------------//
MAV_CMD  可以立即执行,可以预编制成任务脚本。参照ARINC424标准。规定为7个参数。

16  MAV_CMD_NAV_WAYPOINT 航路点
    1   驻留时间(十进制,秒)。仅对可悬停机型有效。
    2   触发半径(公制米)。进入此半径,即认为本航路点已完成。
    3   航路点通过方式:正值顺时针轨迹;负值逆时针。用于航路控制。
    4   指向设定。仅用于可悬停机型。
    567 纬经高
17  MAV_CMD_NAV_LOITER_UNLIM 持续盘旋
    3   盘旋半径(米),正值顺时针,负值逆时针。
    4   指向
    567 纬经高
18  MAV_CMD_NAV_LOITER_TURNS 在航点盘旋N圈
    1   圈数
    3   盘旋半径(米),正值顺时针,负值逆时针。
    4   指向
    567 纬经高
19  MAV_CMD_NAV_LOITER_TIME  在航点盘旋N秒
    1   秒数(十进制,例如105表示105秒,而不是1分5秒)
    3   盘旋半径(米),正值顺时针,负值逆时针。
    4   指向
    567 纬经高
20  MAV_CMD_NAV_RETURN_TO_LAUNCH 返回起飞点
21  MAV_CMD_NAV_LAND 在 设定点着陆
    4   指向
    567 纬经高
22  MAV_CMD_NAV_TAKEOFF 起飞
    1   最小迎角(有空速传感器);设定迎角(无空速传感器)
    4   指向
    567 纬经高
80  MAV_CMD_NAV_ROI     兴趣点(可用于操作相机在设定的高度拍照)
    1   ROI模式,参考MAV_ROI
    2   任务索引号/目标代号,参考MAV_ROI
    3   ROI索引号,用于支持多个ROI设定
    567 XYZ位置,参考MAV_FRAME
   
81  MAV_CMD_NAV_PATHPLANNING 避障或其他航路规划设定
    1   0:关闭局部避障/本地路径规划(无预设地图)
        1:启动本地路径规划
        2:启动并重置本地路径规划
    2   0:关闭全航路规划(无预设地图)
        1:启动全航路规划
        2:启动和重置(有岛)
        3:启动和重置(无岛)
    567 纬经高
95  MAV_CMD_NAV_LAST    无实际内容,仅用于标记指令的数量上限。
112 MAV_CMD_CONDITION_DELAY 延时N秒
    1   秒
113 MAV_CMD_CONDITION_CHANGE_ALT 前往设定高度,然后继续执行其他指令。
    1   爬升/下降速率
114 MAV_CMD_CONDITION_DISTANCE 前往设定距离(到下一航点),然后继续。
    1   距离(米)
115 MAV_CMD_CONDITION_YAW 前往设定的航向。
    1   目标角度:[0-360],0为北。
    2   转向速率:[度/秒]
    3   指向:负值逆时针,正值顺时针。
    4   相对偏置或绝对角[1,0]
159 MAV_CMD_CONDITION_LAST 无实际内容,仅用于标记指令的数量上限。
176 MAV_CMD_DO_SET_MODE 设定模式
    1   模式,参考MAV_MODE
177 MAV_CMD_DO_JUMP 跳转到任务单某个位置,并执行N次。
    1   段号
    2   重复次数
178 MAV_CMD_DO_CHANGE_SPEED 改变速度和/或油门
    1   速度类型(0=空速,1=地速)
    2   速度值(米/秒,-1表示无相关设备)
    3   油门(23表示23%,-1表示无相关设备)
179 MAV_CMD_DO_SET_HOME 改变家位置到当前点或指定点。
    1   0:使用设定点
        1:使用当前点
    567 纬经高
180 MAV_CMD_DO_SET_PARAMETER 设定系统参数(很要命)
    1   参数代码
    2   数值
181 MAV_CMD_DO_SET_RELAY 设定继电器开关参数。
    1   继电器号
    2   0=关,1=开。其他数值应参考相关硬件
182 MAV_CMD_DO_REPEAT_RELAY 按照设定的次数和周期让继电器反复开关
    1   继电器号
    2   循环次数
    3   周期(十进制,秒)
183 MAV_CMD_DO_SET_SERVO 设定舵机舵量
    1   舵机号
    2   数值(1000~2000微秒,1~2毫秒)
184 MAV_CMD_DO_REPEAT_SERVO 按照设定的位置、周期、次数,抖舵。
    1   舵机号
    2   数值(1000~2000微秒,1~2毫秒)
    3   循环次数
    4   周期(秒)
200 MAV_CMD_DO_CONTROL_VIDEO 设定机载摄像机、照相机
    1   相机号(-1表示所有相机)
    2   传输(0:关闭,1:压缩传送,2:RAW传送)
    3   模式(0:视频流,n:每过n秒传送一帧)
    4   记录(0:关闭,1:压缩,2:RAW)
240 MAV_CMD_DO_LAST 无实际内容,仅用于标记指令的数量上限。

(仅在起飞前模式有效。)
241 MAV_CMD_PREFLIGHT_CALIBRATION 起飞前校准,
    1   陀螺仪校准(0:不校准,1:校准)
    2   罗盘校准(0:不校准,1:校准)
    3   气压高度计校准(0:不校准,1:校准)
    4   无线电遥控校准(0:不校准,1:校准)
    5   加速度计/水平仪校准(0:不校准,1:校准)
242 MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS 传感器偏移量设定
    1   0陀螺,1加速度计,2罗盘,3气压,4光学
    2   X/D1
    3   Y/D2
    4   Z/D3
    5   D4
    6   D5
    7   D6
245 MAV_CMD_PREFLIGHT_STORAGE 参数和任务存取指令
    1   0:从Flash/EEPROM读取参数
        1:参数写入Flash/EEPROM
    2   0:从Flash/EEPROM读取任务
        1:任务写入Flash/EEPROM
    3   保留
    4   保留
246 MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN 机载计算机和飞控的重启和关机。
(仅在起飞前模式有效。)
    1   0:空
        1:飞控重启
        2:飞控关机
    2   0:空
        1:机载计算机重启
        2:记载计算机关机
    3   保留
    4   保留
252 MAV_CMD_OVERRIDE_GOTO 高优先级强制执行
    1   MAV_GOTO_DO_HOLD保持
        MAV_GOTO_DO_CONTINUE继续执行下一项
    2   MAV_GOTO_HOLD_AT_CURRENT_POSITION当前位置保持
        MAV_GOTO_HOLD_AT_SPECIFIED_POSITION设定位置保持
    3   MAV_FRAME设定坐标帧保持
    4   指向
    567 纬经高
300 MAV_CMD_MISSION_START 任务单启动,从n到m
    1   起始点的任务号
    2   终点的任务号
400 MAV_CMD_COMPONENT_ARM_DISARM 机载组件启动和关闭
    1   0:关闭
        1:启动
133
 楼主| 发表于 2012-12-18 09:46 | 只看该作者
航路规划功能完善。
增加图标识别功能。

飞行前任务为浅蓝底色。
飞行任务为白底蓝线。
高优先级任务为蓝底白线。

041.jpg (122.35 KB, 下载次数: 35)

041.jpg
134
 楼主| 发表于 2012-12-19 14:14 | 只看该作者
QgroundControl Waypoint Protocol航点文件和传输协议
文档整理完毕。

http://wenku.baidu.com/view/76e79317b7360b4c2e3f641f.html
文库链接
135
发表于 2012-12-19 20:57 | 只看该作者
非常COOL
太好了
136
发表于 2012-12-19 20:59 | 只看该作者
这个帖子好 好好留存
很好的技术帖子
137
 楼主| 发表于 2012-12-19 23:08 | 只看该作者
航路管理功能基本完成。
未完成部分:
1,鼠标拖动航点。
2,文件操作。
3,行列式排布和圆周等分排布航点的自动生成。

042.jpg (152.98 KB, 下载次数: 35)

042.jpg
138
发表于 2012-12-20 11:07 | 只看该作者
axnzero 发表于 2012-12-19 23:08
航路管理功能基本完成。
未完成部分:
1,鼠标拖动航点。

航线规划上
再加上 航线准备点
APM原版地面站没有带的
我改过,加上了
139
 楼主| 发表于 2012-12-20 11:12 | 只看该作者
kissghost 发表于 2012-12-20 11:07
航线规划上
再加上 航线准备点
APM原版地面站没有带的

参考131楼图片。
航前准备项目是241~246指令,已经加上了。

140
 楼主| 发表于 2012-12-20 21:07 | 只看该作者
已实现鼠标拖动航点功能。
已实现文件存取航点功能。
航路管理功能完成可用。

圆周和矩阵方式自动生成大规模航路点功能不影响大多数调试,因此计划放在以后再做。
或在飞控端使用宏指令方式实时生成航点,或使用样条插补方式实时生成拟合曲线型航路点或许用起来更方便。

043.jpg (122.48 KB, 下载次数: 41)

043.jpg
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表