First Drone 从入手到起飞

尽量简短一些,作为memorandum。

1. 和无人机经销商了解以下信息:

  1. Pitch, Yaw, Roll, Throttle 分别各自在哪个Channel。
  2. Arm/Disarm的控制Channel
  3. 飞控模式Arco/Angle/Air 的控制Channel
  4. 图传的频带和具体频点或者频道号
  5. 电控兼容的品牌和具体型号,以及电控与遥控器的绑定方法。

Pitch,Yaw,Roll是用来描述飞行动作的,见下图。Throttle对于Quad来说,用来控制升里,就是控制沿z轴(换色轴)向上的驱动力。

Pitch-Yaw-Roll

2. 和遥控器经销商需要了解一下信息

  1. 是否兼容无人机的电控
  2. 遥控器是否需要专业电池驱动

3. 东西入手后的操作

3.1 遥控器的配置

OTX_flo

首先,通过上图简单了解一下遥控器的信息处理流程:控制指令(遥杆或者开关动作)和一些输入参数(input)以及经过Mixer混合后,再经过Output统一处理后,发送给无人机的电控。

  1. 确认遥控器和无人机兼容(例如都是FrSky D16模式)
  2. 参考遥控器的说明书和无人机电控的操作方法,完成无人机电控与遥控器的绑定操作(Bind)
  3. 配置input参数(例如100%)
  4. 配置mixer:这里需要说明:除了需要将input与Pitch, Yaw, Roll, Throttle四个source的输入混合后放到输出到对应的Channel上外,在这个步骤,还需要将遥控器上的开关等输入源(source)分别指定到用于进行Arm/Disarm选择以及飞行模式切换的channel上。如果你还配置了其他的控制模式的channel,也需要通过这个步骤,将这些channel的与遥控器上的输入源对应上。
  5. 将所有的开关拨到0的位置,Throttle遥杆拨到关闭的位置。

3.2 无人机的操作

  1. 接通电源
  2. 打开监视器,选择图传所在的频带和频点(频道)上
  3. 根据蜂鸣器或者OSD的显示,确认无人机已经与遥控器连接上
  4. 找个平稳的地方放置无人机
  5. 在遥控器上,调节Arm/Disarm开关,使无人机处于Armed状态
  6. 推Throttle起飞。

初次接触Quad,建议飞行模式选择Angle(Stable)模式。

4. 进阶调节

4.1 BetaFligt

  1. 和飞控经销商确认,是否支持BetaFlight。不支持,这部分就不用看了。
  2. 电脑上下载并安装BetaFlight Configurator。
  3. 打开Beta Flight,按照程序首页说明,安装必要的驱动程序(例如for Mac OS的一些驱动)
  4. 无人机卸掉电池,用USB线连接机身和电脑,在BetaFlight Configurator中选择无人机连接的USB端口,点击Connect
  5. 参考BetaFlight Configurator的网上说明,进行必要的飞行参数的调整。例如:参数备份,调整PID参数,校准飞控传感器、OSD显示参数、蜂鸣器报警条件。
  6. 配置页面有保存(Save)按钮,先保存在断开连接。
  7. 配置完成,回首页,点Disconnect断开连接。

4.2 OSD操作

如果飞控支持BetaFlight,在Disarm的状态下,用遥杆同时操作:
Yaw Left + Pitch Up
通过显示器观察,可以进入BetaFlight的OSD操作界面。

进入后:

  • 通过Pitch Up、Pitch Down完成模拟上下键的功能(例如用于上下移动光标);
  • 通过Yaw Right模拟确认按键(例如用于进入子菜单,选择项目等)
  • 通过选择“Back”项返回上一层菜单
  • 更改后,记得在根菜单中选择Save
  • 退出通过跟菜单的Exit。

4.3 模拟器训练

通过模拟器训练,可以在最短的时间内熟悉必要的飞行操作,特别适合零基础。

  1. 确认遥控器的接口:是否有教练口或者是否可以通过USB直接连接电脑
  2. 如果仅有教练口,请在某宝买和教练口形状和针脚对应的USB dougle;如果有 USB,直接连接电脑,遥控器模式选择Joystick
  3. 下载并安装模拟软件(个人推荐DRL,Steam 70元,简单方便快捷)
  4. 在模拟软件中配置遥控器(channel配置、校准什么的)
  5. 开跑。

几个小比例模型

小比例模型的好处不言而喻,只要笔就可以了,可以不用动泵,不用单独支桌子,不用考虑通风的问题。难度就是,线面关系,明暗对比,甚至发色情况,在小比例上都和大比例完全不一样。小比例模型的制作,更接近绘画,突出整体线条和面的质感变得更为重要。

For the horde!

周末在油管上 在看Top 15 Cinematic Game Trailer的时候 被安利了一段N年的魔兽世界的宣传片 英雄一句 “For the horde!” 引领大军冲锋的无畏场景 看得人心潮澎湃 恰好手边做了几个骷髅手臂 于是就想做个小场景。

3D打印了手臂、部族徽章和30mm战棋基座。高硬度海绵做成岩石。徽章部分,尝试了一下NMM,整体笔涂完成。

1

2

3

4

5

Mini AT-ST Diorama

Mini 星战 AT-ST + 袖珍场景。模型1/144,地台基座40mm战棋规格(3D打印),自制场景。适合摆放和把玩。

 

S^2: 你们要的自动同步功能来了

题外话

近期因为SA2 Study on Traffic Logical Status Awareness的new SID立项的缘故和大家作沟通,SA2各位专家的意见都很真切,我会尽量完善,在此先谢过了。

不过,再忙,既然说好的事情,该有还是要有的:有自动同步功能的3GPP_FTP_Downloader v3.0 来了!

下载地址:
链接:https://pan.baidu.com/s/14Bt4M1vLhi973BuWrg_WhQ
密码:znhe

屏幕快照 2018-04-12 14.37.18

同步功能

马上就要开会,闲话少叙。基本的使用功能就不多说了,可以参考这篇和这篇。

这里主要介绍一下同步和自动同步功能。

屏幕快照 2018-04-12 14.39.19

Sync Now 同步功能属于一次性的功能,会自动下载所选会议目录下的所有文件(包括子文件夹下的文件)。如果有文件已经存在,并且大小一致,将不会重新下载。

同步操作下载的文件会保存在应用程序所在目录的/会议名称/目录下。

AutoSync自动同步功能将会按照设定的时间(默认30分钟),设定一个计时器。当计时器结束时,触发一次上述的同步操作,并启动一个新的计时器。

自动同步开始后,会有提示。

再次按下自动同步按钮,会停止自动同步。

即使开启了自动同步,如果你想马上进行同步,也可以按Sync Now按钮,马上进行同步。

但是如果目前正在进行同步的操作,那么当前的同步下载过程将会继续进行,只是在本次同步结束后,才会更新新的状态(例如停止自动同步,或者进行新的同步)。

此外,这次windows版本增加了状态窗口,可以看到程序的运行状态信息。
屏幕快照 2018-04-12 14.45.09

写在最后

希望大家能够支持和co-source我们的研究立项, Study on Traffic Logical Status Awareness, S2-183763, S2-183767, 非常感谢 :)

惊不惊喜,意不意外?软件更新了

首先,非常感谢大家的关注和反馈。3GPP FTP Downloader作为一个非常小众的工具程序,能有3位数的下载量,其实已经大大超出我的预期了。
这段时间,参加了Reno和Montreal的两次会议,我也对这个小程序进行了评估,发现了几处不尽如人意的地方。距离下次开会时间还早,本想偷偷懒,但是精神洁癖似乎又发作了(其实是因为一不留神,就到写稿的Deadline了),于是意外地有了这一次的提前到来的软件更新。
这次更新包括了Bug修正,文件下载功能完善,以及新增了文件的通配符匹配方式。下载地址:https://pan.baidu.com/s/1-nVwArIehE82TIeNOALH9g
包括:mac、win_x86(32位)、win_x64(64位)版本以及新版的JRE。
启动方法和之前的一致,请参考有用功:3GPP提案下载太烦了,怎么破

Bug Fix

有同学提到了的这个bug,我也遇到了。对于还没有更新到服务器文稿,会生成一个无效的zip文件。在这个版本中,会检查文件的下载状态,避免这个情况的发生。

功能完善

  • 增加了对会场local FTP中文件和public服务器上Meetings_3GPP_SYNC目录中文件的下载;
  • 改进了文件查找方式,可以进行子目录的迭代查找,这个特别适用于下载会场提交的Revision的文稿,这些文稿有的被放在inbox目录,有的被放在update_01,有的被放在update_02;
  • 增加了配置文件的自动生成功能,避免程序启动发生意外;
第一项改进并不是新功能,访问Local FTP可以通过手动(manual)的方式来实现,访问Meetings_3GPP_SYNC可以通过编辑配置文件实现,但是在开会的时候,发现还是做成可以直接使用的方式比较轻松,可以尽可能地减少键盘操作,尽可能不要打断工作思路。
手动模式在设计的时候,主要考虑是应对一些突发情况和需求。但是,在实际使用中我发现意义并不大。在未来的版本中,可能会考虑将手动模式的选项去掉。
文件查找方式的改进源于下载Revision文稿时发现的一个问题:由于秘书会适时地整理会场提交的新文稿,因此虽然大家都会上传到inbox目录,但是可能到了讨论的时候,提交的文稿已经被移到了诸如update_01这样的临时目录中,或者被放要求放进Draft目录;这对下载某篇特定文稿来说,会造成相当的困扰。更新后,下载文件变得更加无脑化,简单讲……你就让程序自己去下载吧。另外,顺手把FTP服务器文件路径的配置文件也改为自动生成了。

新增功能

这次更新最重要的部分是增加了对*通配符的支持。这个新增功能源于一个看起来特别不起眼的事情:查看Agenda。因为要在不同的会场来回跑,因此总是会比较关心主会场Agenda的调整情况。但是,人不在的话,并没有办法及时知道当前Agenda更新的什么版本了。所以,最偷懒和直接的办法,就是把所有的agenda都下载下来,不论是发布在Agenda目录里的,还是Draft目录里的,统统自动撸下来。然后再看现在到哪个版本了。
引入通配符,下载就完全不用关心目录结构这种事情了。
以上面提到的下载Agenda为例:不用区分大小写,在file list里面填上agenda再加上一个*号,按Download,就可以了。

同样,这个功能也可以用来查找并下载其他的文件,例如:Frank的ChairmanNotes:

目前程序里的通配符功能非常初级,仅仅起到一个标记的作用,也就是说输入agenda* ,*agenda,甚至agen*da,效果是一样的。(需要正则表达式的同学,请举手告诉我)另外,为了防止意外下载,在程序中也做了文件数目限制,如果单个文件夹内通配符匹配到的文件数目大于100个,那么就不会下载。

提问时间

有同学留言:
在会场的时候,我也会使用类似的方法,使用everything这样的软件来进行本地检索(macos: spotlight + alfred),这主要是因为开会时候一篇一篇过提案,基本就是跟着主席的节奏走,讲到哪篇跟到哪篇。但是,在会前做Contribution Review或者或者会后整理Report的时候,我还是更倾向于用这样一个工具将一个专题的文件集中下载存放在一起后再操作。同一个主题的文稿放在一个文件夹,再配合一些辅助手段(例如,macos的快速预览功能),不论是阅读还是作批注,比起用搜索引擎按照编号一遍遍反复查找到文件后再处理,都会方便很多。
还有同学留言:
这些情况基本上都是与系统安装的jre版本有关。基本上下载和使用和系统对应的JRE能够避免很多稀奇古怪的问题。我也会尽量多在windows下进行一些版本的测试,就像这样:
目前最新的JRE:http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
以上就是全部内容,如果使用中有任何问题,欢迎给我留言。
See you in Sanya!

关于迭代器,血的教训

对容器内元素进行修改,共有3中方法:

vector<int> vec_a;
vec_a.push_back(123);
vec_a.push_back(123);
vec_a.push_back(123);
vec_a.push_back(123);

vec_a[1] = 234;

vec_a.at[1] = 234;

vector<int>::iterator vec_a_iter = vec_a.begin() + 1;
*vec_a_iter = 234;

血的教训就是:在用=的时候,一定要知道对C++来说,很多情况下=是进行赋值,而不像Java一样,取得了对象的引用!

int a = *vec_a_iter;
a = 456;// a 从234 变成456
cout<<a<<endl;
cout<<*vec_a_iter<<endl;

这时候,*vec_a_iter是没有发生变化的。

记住:对容器内元素进行操作,就上面3中方法。如果用迭代器,老老实实的用(*iterator)来操作,不要偷懒!

 

有用功:3GPP提案下载太烦了,怎么破?

每次开会,都会跟踪几个研究方向。通信汪的日常,需要在会前做contribution review。

5G的饼越画越大,汪们无比激动,提案数目成倍增长。每次开会动辄上千篇提案,提案的编号都要升一位才能解燃眉之急。

Screenshot

看着翻了N屏还没到头的TDocList,汪同学的内心是崩溃的,眉头拧成了疙瘩。

下载需要看的提案,在3GPP的FTP上都不知道要翻多少遍,想到这些,汪同学不禁在心中又使劲骂了一遍:

“这哪儿是人干的活计!”

“看提案才是你汪该干的事儿,下载这种粗鄙的工作,就应该让那电脑干,反正咱也不用交电费!“”

码农斯基似乎洞悉了汪同学的小心思,探头过来搭话。

二人对视,会心一笑。

如果只是做Contribution Review,通过下面这个简洁的Work Flow和一个有效的工具,就可以把想看的内容单独收集起来。

Workflow的内容很简洁:收集、批量下载、自动保存。需要人做的事情就是收集阶段,从TDocList中筛选出提案号。而剩下的工作就交给3GPPFTPDownloader来做了。

下载地址在这里,区分系统哦。

Step 0:启动程序

系统上需要安装JRE。对于Windows系统,双击jar文件就可以启动;对于Mac,拜教主和厨子所赐,需要在终端中启动:


  java -XstartOnFirstThread -jar xxx.jar

程序启动后的主界面如下:

  • FTP Server:FTP服务器的url或者ip
  • Meeting Type:3GPP工作组
  • Meeting Name:某个工作组下的具体某次会议
  • Remote URL:FTP文件路径
  • File List:需要下载的文件的名称

Step 1:选择工作组

通过下拉菜单选择3GPP的某个工作组。之后,程序会自动更新这个工作组内的所有会议名称信息。

Step2:选择会议

Step3:添加提案号并下载

添加需要下载的提案号,每行一个。之后点击Download便开始下载。文件会自动保存在”程序所以在目录下/会议名称/当前日期和时间” 目录下。

Tips:

  1. 通过点选Manual,可以手动编辑ftp服务器和文件路径。
  2. 目标路径并没有指定到服务器的Docs路径上,因此,可以下载某次会议目录下的所有文件。例如,想要下载某次会议的meeting report或者其他zip文件,只需要选择某次会议后,输入会议报告的zip文件的名字(去掉.zip),就可以直接下载了。这和前面介绍的下载提案的方法一样。
  3. 通过修改程序目录下的meeting_path_cfg.cfg,可以自己定制需要呈现的工作组。格式:工作组的名字@ftp服务器上的路径,例如:SA2@/tsg_sa/WG2_Archd;增加、删除都可以,例如增加一行:LTE@/tsg_ran/WGs_LongTermEvolution
  4. 如果你偏爱脚本,可以尝试我以前写的一个shell脚本,没有GUI那么方便,但是体积小巧。

 

也谈Solidworks 打开部件时 无法载入GdtAnalysisSupport.dll问题的解决方法

通过在百度搜索,很多(绝大多数)中文网页解决这个问题的方法其实都是同一个:解决Solidworks和Windows Update KB3072630冲突,

解决的思路大体上如下:

1.打开注册表,修改或创建

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer

2.创建32位DWORD键值“RemappedElevatedProxiesPolicy”,并设为1

3.修复安装Solidworks

4.安装完成后,将上述键值改为0


但是,这个方法有个前提:确定问题是由于KB3072630冲突造成的。

可是如果你在Windows Updata历史中,发现压根儿就没有安装过这个补丁呢?很遗憾,你中彩了,各种网站竞相转载的上述解决方案,对你是无效的。

在Solidworks的论坛上,还有另一种解决方案:

1) Go to windows ‘Start’ > type cmd

2) RMB on ‘cmd.exe’ > select ‘Run as administrator’ 

3) In windows explorer Navigate to <SW installation folder>, (where sldworks.exe is contained)

4) Drag and drop ‘sldworks.exe’ in command prompt and type 

/regserver 

Typically the command would look like

“C:\Program Files\SOLIDWORKS Corp 2013\SOLIDWORKS\sldworks.exe” /regserver

5) Press ‘Enter’ > this will register ‘sldworks.exe’

6) Reconfirm behavior.

简言之,用管理员身份,在启动sldworks.exe后面跟一个参数 /regserver

 

问题解决!

 

IoT的世界,谁能笑到最后?

3GPP在上周更新了主页,在显著的位置更新了3GPP三个IoT通信技术标准的进展情况。这一方面顺应了6月份NBIoT标准化的完成,体现了3GPP对于物联网技术标准化持续的重视;另一方面,也展示了3GPP对于以NB-IoT为代表的这一系列标准的信心,仿佛已经坐定了半壁江山,要笑看风起云涌。

IoT市场确实会风起云涌,但是,谁能笑到最后呢?

鸟瞰IoT的世界

设备和设置之间能够在不经人为干预的情况下进行(无线的)数据通信是物联网的基础。按照设备间通信距离的长短,可以把物联网通信技术一分为二:一类是目前普遍应用于智能家居设备中的固定及短距离通信技术,这类技术的代表是ZigBee、WiFi、NFC等;另一类是以智能抄表为典型应用场景的广域网传输技术,统称为低功率广域 (Low Power Wide Area,LPWA )IoT技术。

这时我们还没有看到3GPP的影子。继续根据使用的频谱的授权情况,LPWA IoT技术可以细分为以LoRA、SigFox为代表的使用非授权频段的技术方案,以及工作在授权频段上的技术方案,这一类技术方案的代表就是工作在蜂窝网频段中的3GPP E-GSM-IoT,eMTC,NB-IoT。

如果从实际应用的角度来看,固定及短距离通信,占IoT通信连接总数量的70%以上,剩下不到30%采用LPWA IoT技术进行连接。

所以,从总体上看,IoT的世界大概是这样一个情况:

3GPP的LPWA-IoT世界

LPWA IoT技术需要满足4个需求:

长电池寿命:在满足每天小数据量交换的情况下,有至少10年的电池寿命;

低成本:IoT业务可能只能带来传统移动通信业务1/10甚至更低的ARPU,因此IoT设备必须非常廉价,同时部署IoT设备的成本也必须低廉;

覆盖增强:IoT设备可以部署在相对极端的环境下,例如地下室、电梯中,因此链路预算必须增加以应对额外的穿透损耗,例如增加一堵墙。

支持海量链接:实际应用中,IoT设备的增长速度会远超其他移动通信设备(如手机),并且分布可能非常不均匀,因此LPWA IoT技术必须支持海量终端同时连接。

针对上述条件,3GPP发布了三个通信技术标准:

  • 基于GSM,针对IoT优化的E-GSM-IoT;

  • 基于LTE,针对IoT优化的eMTC;

  • 基于窄带LTE,对IoT优化的NB-IoT;

三种标准的技术对比见下表:

下面这个图看起来,可能更加直观:

不难看出,工作在GSM频段内的E-GSM-IoT从技术性能的层面上,已经可以满足LPWA-IoT的需求。事实上,现今工作的LPWA-IoT设备中,60%~80%都工作在2G频段。但是,随着全球运营商已经开始推动蜂窝网络向5G演进,蜂窝网频段内LPWA-IoT技术方案的演进将不可避免。与此同时,市场的变化也会加速这种变化。

IoT的世界,谁能笑到最后

到2025年,采用固定及短距离通信技术进行通信的IoT设备仍然将占据绝对主要地位。但是分析也同时指出,LPWA-IoT设备数量的增长,也将非常可观:

(Cisco Visual Network Index 2016 Global Mobile Data Traffic Forecast Update, 2015–2020 White Paper.)

蛋糕很诱人,但是对于LPWA-IoT来说,市场却存在非常多不确定性。

首先是授权频段和非授权频段技术阵营间的竞争。虽然从目前的情况来看,运营商会在蜂窝网授权频段中采用3GPP标准化的IoT标准,例如NB-IoT,是一种技术演进必然的选择。但是,就如同高级饭店的大厨为了不出闪失,每次做菜一定都会规规矩矩地按照菜谱操作一样,运营商采用标准化的在授权频段工作的IoT技术方案,本质上只是一种“套路”,一种和推广2G/3G/4G网络相同的,“可控”且“安全”的套路。其实不仅仅是针对IoT市场,对于作为服务提供者的运营商来说,不论何时,金主爸爸才是唯一的上帝。工作在非授权频段的LoRa或Sigfix,和工作在授权频段的3GPP的E-GSM-IoT、eMTC、NB-IoT并没有高低贵贱之分。

另一方面,从技术的角度来看,对于非授权频段的技术方案来说,除了有来自在躲在授权频段这个保护伞下的技术方案的竞争压力,一个更为残酷的事实是:非授权频段的技术竞争是真正的丛林竞赛。由于没有频谱限制的门槛,永远都会有新的竞争者加入进来;而对于工作在授权频段的3GPP的一众标准及其未来演进版本来说,未来是不是有足够多的细分市场来养活多个标准,以及对市场需求预测的不确定性和标准化进程周期间存在的失调的可能,也将造成困扰。

IoT市场里谁能笑到最后呢?答案很可能是这样:

 

IoT市场就好像一锅八宝粥,虽然表面看起来平平常常,一览无遗,但只要勺子在锅里一搅,就没准儿突然舀上来颗枣,或者一种没吃过的豆子来。