All posts by huawei
学习Crazyflie 2.X平台(4)
STEM drone bundle 包含了3个东西 Crazyfile 2.X清单中所有的东西[见学习Crazyflie 2.X平台(1)] 额外加一个Flow deck Crazyradio PA 安装flow deck: 拿到按照学习Crazyflie 2.X平台(1)安装好的无人机,将flow deck安装在下面[必须在下面],用long pin-headers将deck别上去。 安装python和cflib(以下只讲Ubuntu系统下的情况,tested on Ubuntu 16.04): 安装python3和pip: sudo apt-get install python3 python3-pip python3-usb idle3 安装Crazyflie Library: pip3 install cflib 为了可以使用Crazyradio,需要USB devices的access权限。那么我们需要跑以下命令来获取access权限。并且在跑完以下命令之后,需要将Crazyradio重插一下。 跑第一个飞行实验 我们需要跑以下的Python script要飞Crazyflie。一定要注意的就是如果python client是打开的,一定要与Crazyflie断开连接,因为Crazyradio只能支持同时跟一个program对话。如果python client还开着,刚跑python script是没作用的。 跑完以上代码,crazyflie会按照以上script的描述飞行,期望的输出应该是: STEM ranging bundle:基本跟刚才的bundle一样,就不翻译了
学习Crazyflie 2.X平台(3)
Loco Positioning System Loco Positioning System可以配置两种模式: Two Way Ranging(TWR)模式 Time Difference of Arrival(TDoA)模式 TWR模式的设置过程更加直接简单,加上TDoA模式可以通过TWR轻松切换过去,因此建议即使你想使用TDoA模式,优先考虑通过先进入TWR模式再切换至TDoA。为了解释anchor placements,我们有2个参考系统(reference systems): 6 anchors(主要为TWR模式) 8 anchors(主要为TDoA模式) 更新最新版的loco positioning firmware 为了使用能Loco Positioning System,我们需要: 安装相应的expansion deck:Loco positioning deck 更新最新版本的Crazyflie client 在Crazyflie client上,更新最新版本的firmware 准备anchors 确保已经在Crazyflie client上,更新最新版本的firmware; 确保配置好LPS(Loco Positioning System) nodes LPS配置工具,参见https://github.com/bitcraze/lps-tools 下载最新LPS node firmware——lps-node-firmware.dfu 更新LPS nodes 打开LPS配置工具 通过USB连接到电脑,并保持DFU按钮要一直按着,这样就可以启动LPS node的DFU mode In DFU mode, the…
学习Crazyflie 2.X平台(2)
扩展甲板 在按照学习Crazyflie 2.X平台(1)安装好的Crazyflie 2.X 上,有a flexible expansion port,可以让我们安装新的硬件上去,以便扩展新的功能 由于这个expansion port是上下两边都可以连上,因此可以同时attach两个deck 如何attach a deck 确保安装或者卸下任何甲板时,电源是断开的 在安装deck时,要注意哪面要向上,以及哪边朝前,deck上有标注,如下图所示: 如果要把deck安装在Crazyflie的上面,需要取下之前的电池支托板,新装的deck就可以卡住电池,如下图所示: 三种安装拓展甲板的方法 只装一个拓展deck: 装两个扩展deck,都在上面 装两个扩展deck,一个在上面,一个在下面
学习Crazyflie 2.X平台(1)
本文翻译自https://www.bitcraze.io/documentation/tutorials/getting-started-with-crazyflie-2-x/, 更多Crazyflie相关的tutorial请参见https://www.bitcraze.io/documentation/tutorials/ 组装之前的测试 Crazyflie 2.X芯片板在生产过程中已经被充分测试过,但是为了确保运输过程没有导致任何损害,还是需要在组装之前做测试 将Crazyflie 2.X芯片板用USB线连上电源。注意观察LED灯M1和M4, 如果M4会快速闪5次绿灯,则测试通过。如果M1灯快速闪5次红灯,则测试失败,去Bitcraze论坛解决方法,直到测试通过。 组装 注意drone的头在哪里,以及对应的各个propeller的转向 零件 一个Crazyflie 2.X c芯片板 with all components mounted 5个顺时针桨叶+5个逆时针桨叶 5个空芯直流电机+6个电机固定座 1个锂电池(LiPo, 容量是240mAh) + 1个电池支托板() 2个8mm长的expansion connector pins即headers(10个pin, 2mm spacing) 2个14mm长的expansion connector pin(10个pin, 2mm spacing) 1个USB线(只有Crazyflie 2.1有) 安装步骤和注意事项 扭转电机线(减少电子噪声) 装电机到电机固定座上 将扭转的电机线弄到电机固定座的卡槽上 装上桨叶,注意方向 将橡胶垫放在两个expansion header之间(增加摩擦以便固定电池,同时保护电子器件) 将2个8mm的header插入expansion connector 将电池放在两个header之间,并将电池支托板弄到header上的pin 按下电源开关的push button, 四个propeller会依次转起来。如果没有,检查motor连接 Crazyflie 2.X 的启动 Crazyflie 2.X芯片板一旦powered on,它会自动开始进行一系列的事件 跑self-test:…
如何读论文
来源:知乎; 回答作者:孟凡康; 问题: 科研大牛们怎么读文献; 链接:https://www.zhihu.com/question/21278186/answer/608002481 读文献要读人(实验室) 读文献要读典(经典论文) 读文献要读新(最新进展) 为什么读人? 一个很重要的原因在于,如果只是平时零散的阅读文献,很难去把握一个科研领域发展的脉络。可能不同的领域存在差别,但是很多时候一个领域往往是由为数不多的几个实验室推动的。如果能够对这些实验室的相关文章进行系统性的梳理,那么一定在了解相关领域的发展脉络上有更加深刻的了解,同时还可以思考并预测这个实验室未来的发展方向,这对我们布局以后的科研方向具有很好的促进作用。 如何读人? 系统性搜寻文章: 我一般选择通过时间排序来系统的查阅学者的工作,直到其第一篇博士工作的发表。我重点关注以下几点: Ta在研究生阶段所做的研究工作 Ta成为独立Researcher后的研究方向 Ta发表的重要文章,如高引用率文章、top journal文章 Ta在不同时间段研究方向的转变 Ta在重大科学发现前后的工作 阅读与归类: 在阅读方面,因为一个学术大佬的文章实在太多(可能200左右),我会 先略读: 每篇文章大致只读以下文章题目、摘要、主体内容的背景介绍以及文章中的图表, 再归类: (参考该学者的个人网站或者CV等,往往会有其职位变动和研究方向的信息) 按照研究方向分类 按照不同的学术生涯阶段进行分类 最后精读: 分类后,对其中不同时期或者研究方向的代表作进行精读。精读的时候主要关注几点: 为什么研究该问题重要和难点 采用了什么方法 该方法如何针对该问题的难点 文章的Discussion(对全文的总结和未来研究方向的展望) 该文章如何与该作者之前文章的展望的联系 分析和个人思考 使用思维导图软件, 辅助自己对文章进行总结(比如我就以“时间段-研究方向-代表性工作-简短的总结”为基础,把所有的工作归类汇总, 更加清晰的总结出对应事物的发展脉络 方便记忆 评价研究内容的价值性(放入思维导图中) 预测未来研究方向,以及自己可以做的未来方向(同样制作思维导图) 审稿 Originality: Does the paper contain new and significant information adequate to justify publication?…
常用的phrasal verb或者固定搭配
phrasal verb的列表:https://www.englishclub.com/vocabulary/phrasal-verbs-list.htm 我的总结 If there is no rhyme or reason to sth or it happens without rhyme or reason(莫名其妙、毫无道理, it happens in a way that cannot be easily explained or understood Don’t knock yourself out (把自己累垮) trying to get the job finished. Why don’t you knock yourself out(把这里当作自己的家一样、请自便) and help yourself to finger food? Yeah, we went out last night. She was a real looker (美女)but I don’t think she was…
C++知识点
GCC vs. Clang/LLVM: An In-Depth Comparison of C/C++ Compilers Clang on macOS (Using Clang in Visual Studio Code, Compile and debug) Using C++ on Linux in VS Code(Compile and debug) CMake Tools on Linux TOP 70 C++ Interview Questions And Answers C++来读写文件 The standard input默认是keyboard,The standard output默认是the screen, 于是就要用到standard C++ library:#include <iostream>。其中的cin和cout的函数(endl是结束本行并换行)。 那么如果我们想从读某个文件或者写一个文件呢?也就是输入和输出不是标准的输入和输出。这是由我们要另一个standard C++ library: fstream。 #include…
macbook快捷键
转自https://jingyan.baidu.com/article/08b6a591aac09614a909224f.html Mac中主要有四个修饰键,分别是Command,Control,Option和Shift。这四个键分别有自己的图案,他们经常出现在Mac应用程序中的菜单栏里,方便你随时学习新的快捷键。 应用程序快捷键 Command-Option-Esc 打开强制退出窗口 Command-H 隐藏当前正在运行的应用程序窗口 Command-Option-H 隐藏其他应用程序窗口 Command-Q 退出最前面的应用程序 Command-Shift-Z 重做,也就是撤销的逆操作 Command-Tab 转到下一个最近使用的应用程序 Command-Option-Esc 打开“强制退出”窗口 浏览器 Command-Tab 新建标签页 Command-W 关闭当前标签页 Control-Tab 切换标签页(下一个) Control-Tab-Shift 切换标签页(上一个) Command-L 光标直接跳至地址栏 Command-加号 放大页面 Command-减号 缩小页面 Command-up 跳到网页的最顶端 Command-down 跳到网页的最底端 文档处理 Command-right 将光标移至当前行的最右端 Command-left 将光标移至当前行的最右端 Command-up 将光标移至文稿开头 Command-down 将光标移至文稿末尾 Command-B 所选文字加粗 Command-I 所选文字变斜体 Delete 前向删除 fn-Delete 后向删除 fn-up 向上滚动一页 …
加拿大如何报税
加拿大的income tax system 需要report的四大类income(具体所有income可以见链接) 就业收入Employment and self-employment income 退休金Pension and savings plans income 投资收入Investment income(利息、分红灯) 福利收入Benefit income(育儿金之类的) 如何计算需要纳的税 更新个人信息Provide and update your personal information 婚恋状态 住址 银行账号 是否有孩子 从四大类收入来源计算Total Income 从Line 101到Line 150 Line 150是total income before deduction 计算Net Income(净收入Line 236)=Total Income减Tax Deduction(翻译叫做免税额,你需要claim any deductions you are entitled to,包括personal deductions and tax-deductible expenses。从line 206到line 236)…
Geometric spatial path planning
Implicit form [latexpage]An implicit planar curve is defined as the zero of a bivariate function $f(x, y) = 0$. An algebraic curve is simply the case where the function $f(x, y)$ is a polynomial in $x$ and $y$ with scaling coefficients $a_{ij}$, that is $f(x, y) = \sum a_{ij}x^iy^j$. Two simple, but important, properties of…