航模爱好趣无穷,正确操纵是关键。莫把器材当玩具,忽视安全悔一生。
新手好问勤练习,远离人群勿炫耀。天下模友一家人,共建美好新生活。
5iMX宗旨:分享遥控模型兴趣爱好

5iMX会员稀缺商品(仅限本周):
DJI Goggles飞行眼镜现货(2999元,即拍即发不加价包顺丰)


5iMX.com 我爱模型 玩家论坛 ——中国最具人气和影响力的综合模型论坛(注册会员超30万,创始于2003年)
楼主: scaple

UAV 地面站软件开发平台 Control Station Studio (306楼 重要功能实现 9.12

  [复制链接]
 楼主| 发表于 2013-9-1 22:21 | 显示全部楼层
点击查看详情
liangdyc 发表于 2013-9-1 22:16
5555555555,激动啊。刚刚也是在看源代码,发现真的越来越接近实质问题了。哈哈。还好自己用了一个星期疯 ...
您能仔细帮我解释下FE 02 91 FF BE 15 01 01 78 9B这个里面的校检码是用的哪个CRC_extra算出来的吗
俩字:查表
表当中索引为 0x15 的信息就是你所需要的咚咚



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

发表于 2013-9-1 22:25 | 显示全部楼层
scaple 发表于 2013-9-1 22:12
祝贺你!你已经一步步接近问题的实质了。

1、你说得对,在校验的过程中确实要加上 crc_extra(好像是最 ...

恩,通信协议这里就是需要通用化,标准化,简单化,发现mavlink这里好像有点太繁琐了。而且他还设定了包的序列号,我个人认为,无非就丢包了,数据传输过程中肯定会有偶尔的几个数据包丢失,这个比较正常,且有误码率的存在。一般我们实验室在不大的工程上一般不设定序列号,只是校检下数据正确与否,不过暂时还从来没有出现过数据错误或者其他情况。也可能我们现在有的项目工作频率比较低的原因吧。

 楼主| 发表于 2013-9-1 22:26 | 显示全部楼层
今天的测试飞行堪称完美,但是也有存在个重大事故隐患,差点出大事了!


暴风截屏20130901205707.jpg

暴风截屏20130901205718.jpg

暴风截屏20130901205748.jpg

暴风截屏20130901205921.jpg

暴风截屏20130901210038.jpg



暴风截屏20130901210116.jpg

暴风截屏20130901210156.jpg

暴风截屏20130901210433.jpg

暴风截屏20130901210742.jpg

暴风截屏20130901211139.jpg



发表于 2013-9-1 22:31 | 显示全部楼层
scaple 发表于 2013-9-1 22:21
俩字:查表
表当中索引为 0x15 的信息就是你所需要的咚咚

55555555555,还是不行哦。嘿嘿。在#define MAVLINK_MESSAGE_CRCS {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 30, 240, 183, 130, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 175, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 219, 208, 188, 84, 22, 19, 21, 134, 0, 78, 68, 189, 127, 111, 21, 21, 144, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 0}
#endif里面查?具体怎么查还是不懂哦。因为没用计算机查,只是自己手动查的。。。。嘿嘿。有点笨

 楼主| 发表于 2013-9-1 22:34 | 显示全部楼层
第一个起落降落的不是太好,落远了点,捡飞机的时候发现少了两根橡筋,怪哉,也不是很粗暴的降落阿,怎么橡筋就断了,还两根?

拿回飞机来才突然想起:不是断了两根橡筋,而是上天的时候就只绑了两根橡筋

1.6-1.8公斤,1.7米翼展的飞机啊,简直是黑死人喽.....
 楼主| 发表于 2013-9-1 22:36 | 显示全部楼层
飞行数据回放,youku会吃清晰度阿,明明上传的是高清



发表于 2013-9-1 22:42 | 显示全部楼层
scaple 发表于 2013-9-1 22:36
飞行数据回放,youku会吃清晰度阿,明明上传的是高清

帅气。哈哈。我们的四旋翼飞行器前天也稳定起飞航行了。惊动学校了。我们学院院长给我来了一句“经费没白费。”。。。。狂汗。我们导师居然让我加上图像识别,自动跟踪羊群。。。。。

 楼主| 发表于 2013-9-1 23:10 | 显示全部楼层
liangdyc 发表于 2013-9-1 22:42
帅气。哈哈。我们的四旋翼飞行器前天也稳定起飞航行了。惊动学校了。我们学院院长给我来了一句“经费没白 ...

自动锁定跟踪的玩艺儿几年前见过,愣是没搞清楚原理是什么,锁定的还是快速运动物体...

犹豫了好几周了,四旋翼神马的,上?还是不上?飞固定翼找场地太费事了,而且飞起来后速度太快,轻轻松松就是50-60km/h,实验当中出个什么状况来都来不及。
但是四旋翼也不是省油的灯,四个旋翼那不是一般的危险。弄个小的?问题是载荷够不够?抗风怎么样?留空时间够不够?飞行起来好不好控制?

头大啊


 楼主| 发表于 2013-9-1 23:22 | 显示全部楼层
今天的测试项目:
Manual
Stabilize
RTL
AUTO
现场使用arduino编译器烧录ArduPlane
飞行过程中重新规划航迹
顺带拍了点渣画质的录像
现在俺的手丢飞机技术已经很娴熟了,哈哈
单人独自飞行


CSS搭建的操控界面基本定型了,该写使用说明啦...

未命名.jpg






发表于 2013-9-2 15:16 | 显示全部楼层
本帖最后由 liangdyc 于 2013-9-5 10:13 编辑
scaple 发表于 2013-9-1 23:22

CRC校检已经做好了。原来这里虽然在文档上说用的是CRC-16-CCITT校验,实际上和通用的是不一样的。最后逼着我看了下源代码,利用源代码的校验方法才成功。无奈啊。
现在正在摸索着自己合成命令,通过串口发送,获取姿态数据。不是很成功。遇到了很多问题。文档上面都说的稀里糊涂,mavlink文档资料和源代码里面以及其他的一些发现好多有出入的地方。可能是我还没理解透吧


发表于 2013-9-2 22:51 | 显示全部楼层
楼主加油
发表于 2013-9-3 00:33 | 显示全部楼层
高手,挺一下
发表于 2013-9-5 00:57 | 显示全部楼层
强悍,有时间玩玩
 楼主| 发表于 2013-9-6 00:16 | 显示全部楼层
liangdyc 发表于 2013-9-2 15:16
CRC校检已经做好了。原来这里虽然在文档上说用的是CRC-16-CCITT校验,实际上和通用的是不一样的。最后逼着 ...

建议你好好看看,mavlink的文档结合源代码看效果会很好的。应该说 mavlink 的文档(文档+源代码+代码注释)是非常优秀和精炼的。它的源代码本身就是个自说明的东西,而且做得很好。

这个就是开源软件的一大特点了:源代码我公开,无偿提供给大家,ok 没问题。但是要想我手把手来一点点教会你,Sorry,你自个研究去。有那么点放马过来的味道,呵呵。

不过开源软件的版本控制很多都有点问题,不如商业软件那么严谨。不过话说回来,人家都开源了,还能要求人家什么呢。

对这些开源软件的作者或团队,俺一直都是敬重有加的。


发表于 2013-9-6 10:23 | 显示全部楼层
scaple 发表于 2013-9-6 00:16
建议你好好看看,mavlink的文档结合源代码看效果会很好的。应该说 mavlink 的文档(文档+源代码+代码注释) ...

恩好的。自己一直在看源代码和文档。看来还是我看的不够深。我继续看看

发表于 2013-9-7 11:05 | 显示全部楼层
值得期待完善
发表于 2013-9-7 11:23 | 显示全部楼层
控制站-控制目标
 楼主| 发表于 2013-9-7 15:12 | 显示全部楼层
本帖最后由 scaple 于 2013-9-7 15:18 编辑

本地总线的远端参数装订功能基本完成,这就意味着系统数据总线与机载参数总线之间建立起了双向联系。而本地数据总线当中的任何数据都可在数据处理通道当中进行运算处理。
这样的话就为机载参数的自适应设置提供了条件。

传说中的高端产品 PPZ 到货了,没想到这玩艺儿只有APM的一半大...

20130907_145713.jpg


 楼主| 发表于 2013-9-7 19:03 | 显示全部楼层
本帖最后由 scaple 于 2013-9-7 23:06 编辑

Control Station Studio (CSS)

每个人能够建造专属于自己的地面站

CSS 高级应用教程:搭建遥控器(RC)校准控制界面 step by step

机载参数设置是APM体系应用的精髓之一,ArduPlane(固定翼飞控固件)当中的各项功能设置都可以通过对Arduplane当中的200多个参数进行设定来完成。事实上,MissionPlanner(简称MP) 当中提供的多种设置功能,例如对航点识别半径、默认返航高度、默认油门开度、飞行围栏、遥控器校准等等设置,其实质都是给机载参数提供了一个用户操作界面,使用者通过这个界面对参数进行设置,并完成上行发送装订。

MP当中遥控器校准,这是一个比较复杂的图形化设置界面

1.JPG


所以说,如果对机载参数很熟悉的话,完全可以通过直接设置参数的方式来功能设置,当然啦,MP也为大家提供了可以任意设置这200多个参数中的任意一个或多个的操作界面,如下图

2.JPG


--------------------------------------------------------------------------


在简要的回顾下MP的功能之后,回到CSS上,俺们的CSS既然作为一个地面站开发平台而不是一个单纯的地面站,自然就不会为你提供出一个现成的操作界面,而是为你提供一个可以自由搭建操作界面的开发环境。换句话说,我们不为你提供千篇一律的节目表演,而是为你提供舞台。这也是CSS名字当中的Studio所蕴含的含义。

在APM/ArduPlane当中遥控器进行校准设置的基本过程如下:
1、从APM回传的下行遥测数据当中获取遥控器某个通道的PWM脉宽数值及范围,获取及计算该数值的最大值、最小值以及中间值。
2、将上一步当中获取的数值,就是遥控器实际的PWM范围数值,上行发送到ArduPlane中对应的参数上,完成某个通道的参数校准任务。
3、重复1、2,下一个通道校准……

那么,在CSS当中如何进行校准操作界面的搭建呢?这当中涉及到如下过程:

1、不同总线数据的创建。
2、数据帧编辑器的使用。
3、相关仪表控件的创建及设置。
4、公式编辑器及数据通道的使用。
5、条件触发-动作响应机制的设置。


看看,上面一系列过程基本上覆盖了CSS当中的核心功能,这就是本篇称之为高级教程的原因,不过没关系,我们接下会 Step by Step 进行讲解。

我们知道,APM/ArduPlane以数据帧(Mavlink协议中称为Message)的形式进行各种数据的传送,要获取遥控器实际PWM输出数值,就必须从包含该数值的数据帧中将该数值解析出来。在CSS当中由数据总线编辑器协同数据帧编辑器,以最简单方式完成上述数据解析工作。另外多说一句,在CSS当中也就是由上述两个编辑器实现了通讯协议的可编辑性。

我们要获取并使用遥控器的PWM输出数值,那必须要有一个可以容纳这个数据的地方,这就用到了数据总线编辑器,如下图:

3.JPG


在该编辑器当中,创建名称为 RC_Ch1 的一条总线数据,设置如上图。数据帧编辑器当中的各项功能设置另行说明。

在有了代表遥控器通道一输出数值的总线数据 RC_ch1 之后,我们就需要从数据帧里面把APM下行发送的通道1脉宽数据解析出来并将该数据赋给总线数据 RC_ch1,这就需要使用数据帧编辑器进行设置,如下图:

4.JPG

根据 Mavlink 协议以及通讯监.听(协议监.听工具MavlinkRelay即将发布)可知,遥控器通道脉宽输出数值位于RC_CHANNELS_RAW消息的chan1_raw ---- chan8_raw 字段中,分别对应遥控器通道1-8的脉宽输出数值。

在CSS的数据帧编辑器当中,我们只需要首先将RC_CHANNELS_RAW数据帧(消息)设置为“下行至GCS”,点击“帧属性修改按钮”进行设置(如果当前帧属性已经设置则无需该步操作)。其次鼠标点击选中深黄色的chan1_raw字段,然后在“关***线数据”当中选择前面我们创建的总线数据 RC_Ch1,在点击“字段属性修改”按钮之后,chan1_raw字段颜色从深黄色变成绿色,表明该字段与总线数据已建立起关联关系。在之后的CSS运行过程中,系统将会自动解析收到的RC_CHANNELS_RAW消息,并将chan1_raw字段中的数值赋予总线数据RC_Ch1。

怎么样,在CSS当中进行数据解析就这么简单,几次鼠标点击而已。

(待续...)

转 102 楼








发表于 2013-9-7 19:18 | 显示全部楼层
scaple 发表于 2013-9-7 19:03
Control Station Studio (CSS)

让每个人都能够建造专属于自己的地面站

您好,我已经可以自己写命令获取数据了。还得谢谢你哦。
这是我获取的一段数据

FE 1C 26 01 01 1E 87 D3 05 00  50 8F 68 BB   64 5A F1 BD   B0 93 86 3F   B8 30 44 BA   D0 DE 8E BA   40 EB 25 3A   E5 D5
FE 1C 27 01 01 1E 8E D5 05 00  6A 44 73 BB   47 EF F0 BD   66 91 86 3F   C0 CD 62 B9   60 40 12 BA   80 6F D3 38   29 A7

根据1E我可以知道是第30号消息,即姿态消息。
根据源代码

public const byte MAVLINK_MSG_ID_ATTITUDE = 30;        [StructLayout(LayoutKind.Sequential, Pack = 1, Size = 28)]        public struct mavlink_attitude_t        {            /// <summary> Timestamp (milliseconds since system boot) </summary>            public UInt32 time_boot_ms;            /// <summary> Roll angle (rad, -pi..+pi) </summary>            public Single roll;            /// <summary> Pitch angle (rad, -pi..+pi) </summary>            public Single pitch;            /// <summary> Yaw angle (rad, -pi..+pi) </summary>            public Single yaw;            /// <summary> Roll angular speed (rad/s) </summary>            public Single rollspeed;            /// <summary> Pitch angular speed (rad/s) </summary>            public Single pitchspeed;            /// <summary> Yaw angular speed (rad/s) </summary>            public Single yawspeed;
        };

我知道每一位数据具体是怎么回事。但是现在我要转换到10进制浮点数的时候,发现转换后的数据不对。。。能帮看看嘛?

http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=837829&extra=page%3D1


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

本版积分规则

关闭

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

点击查看详情
快速回复 返回顶部 返回列表