在LabVIEW中自定义控件.pdf
在labview中自定义控件的详细教程:如何是你的labview测试程序,前面板看起来更美观,让用户对使用的流程更清晰,这里教你如何在labview中自定义控件泛华测痉PANSINO控件45控件章布尔确定3,在我们己有的图片库中复制我们想用来作为按钮图片的图片本文中将以这个按钮为图片进行训述。复制好图片至剪贴板中后。在控件编辑窗口中,控件上右键选择从剪贴板导入图片>终P控件45自定义类型白回文牛住编餐E查着项目②操作◎T目目定义类型ipe T布尔确定显示项转换为显示挥件说明和提示替换数据操作高级机械动作释放文本多文本字符串从剪贴板导人图片N假属性真4,此时控件效果如卜图:地址:北京市海淀区中关村东路18号财智国际大夏A座9层电话:(010)82600055传真:(010)62628056http://www.pansinocomcn泛华测痉PANSINOE控件45自定义类型章文件(辆辑E查看y项目操作Q)工具〔州自定义类型、‖13rm布尔确定5,可以更改为自定义模式下,对图片的位置进行修正控件45自定义类型章口回区文件〔編辑查看项目巴操作(Ω)二具团自定义类型·1tahm布尔确定6,同样也可以对文本的位置以及搾件的底板的人小进行修正,修正之后的控件如下图所示地址:北京市海淀区中关村东路18号财智国际大夏A座9层电话:(010)82600055传真:(010)62628056http://www.pansinocomcn泛华测控PANSINO控件45自定义类型巴区P粒件45自定义类型艾件错G查看项目②操作工具文件(编辑查看(项目心操作()工具①[自定义类型[[自定义类型13pt Tahoma相尔布尔确足布尔值为真布尔值为假同样也可以对文本的位置以及控件的底板的大小进行修正,修正之后的控件如下图所示这样制定出来的控件的特点是:1,即使点在图片上,也能更改布尔按钮的状态。2,真假布尔值状态下,该图片不能进行变换。方法二1,打开 LabVIew,创建新式型的布尔按钮,石键选择高级>自定义。为什么要创建新式的控件呢?在本方法的末端会提供P控件45自定义类塞回回区文件G)编锅查看(项目巴作⑨工具红2自定义类型、[13计10确定按钮确定2,打开如上图所示窗∏后,去我们图片斥中,复制图片◎至剪贴板。回到控件的編辑窗∏,控件上右键选择从剪贴板导入图片>>假。地址:北京市海淀区中关村东路18号财智国际大夏A座9层电话:(010)82600055传真:(010)62628056http://www.pansinocomcn泛华测痉PANSINOE控件45自定叟类包叵区件辑查看y项目操作Q工具自定义类型pt Tahoma确定按钮显示项转换为显示控件说明和提示替换数据操作高级机械动作释放文本多文本宇符串从鸥贴板导入图片卜[假属性始终3,将出现如卜图所示效果:P控件45自定义类型喜白回区文件(綱辑但查看φ项目@)嬝作(工具T自义类型·10T确定按钮确定4,同样,在图片库中复制图片至剪贴板中。在控件上右键选择从剪贴板导入图片>真。地址:北京市海淀区中关村东路18号财智国际大夏A座9层电话:(010)82600055传真:(010)62628056http://www.pansinocomcn泛华测痉PANSINO1控件45自定义天型回区文件臼编辑查看y项目P操作(工具红自定义类型13pE T确定按钮显示项转换为显示控件说明和提示替换潋据操作高级机械动作释放文本多文本字符串从翦贴梗导入图片假属性真忙终5,不显小控件的文本。做出来的控件的状态将如下。口控件45自定义类型t巴回应控件15白定义类型包回凶文件编辑查看(项目)操作工具工神(编辑〔查看项目(操作①工目(①[自定火类型·13t[自定义类型13pt Taho门确定按钮确定按钮布尔值为真布尔值为假这种方法做出来的控件的特点是:1,背景透明,但是实际控件大小为所选择的图片的大小。一般是一个规则的下方形或者长方形前文提到为什么要用新式按钮呢?先来说一下按钮的图片项,每个布尔按钮在自定义模式下,是有若干图片项的,而新式按钮与系统型的按钮的图片项是不同的。图片项的查看方式为:将控件窗∏置为自定义状态下,在控件上石键选择图片项即可看到该控件所拥有的图片项地址:北京市海淀区中关村东路18号财智国际大夏A座9层电话:(010)82600055传真:(010)62628056http://www.pansinocomcn泛华测痉PANSINO控件45自定义类回区文件()锎辑)查看{y项目巴操作()工具T小自定义共型1计m布尔复制至前贴板从剪贴板导入图片以相同大小剪贴板导入从文件导以相同大小具文件导入还原原始大小图片项圖888□口下边左图所示是新式按钮的图片项。如果在最开始创建控件时,选择的是系统行按钮,并且同样按照本方法导入不同的图片,最后图片项将显小为为右图所小。其中1,2,3,4与新式的控件的图片项的意义相同,分别为真,假,真到假点击吋,假到貞点击吋。5,6是系统按钮才有的特性。5为当程序运行状态下按钮为假时鼠标移入时的状态,6为当程序运行状态下按钮为真时鼠标移入时的状态56上述制作的方法,如果控件使用系统型,我们可以想象,在程序运行卜,当鼠标移入时,按钮将变得很奇怪,就是因为它的5,6图片项没冇定义。解决方法是直接用新式控件即可。当然如果不怕麻烦可以选中图片项5和6,并导入对应的图片。但是做出来的效果与使用新式控件进行编辑的效果相同。方法三上述方法,要么按钮为真假时不能为同一副图片,要么没有系统的背景框。那么如果希望能做到我之前发送的按钮集中的这种按钮,又该怎么做呢?st artstart这种按钮,并不是我们使用传统的确定按钮进行自定义编辑时就能实现的。需要多个控件进行配合编辑才行。布尔确定按钮确确定地址:北京市海淀区中关村东路18号财智国际大夏A座9层电话:(010)82600055传真:(010)62628056http://www.pansinocomcn泛华测控PANSINO1,首先,创建一个如下图所示按钮。进入自定义模式状态下。布尔2,另外再选择一个系统型的按钮,进入该系统按钮的自定义模式状态下。布尔确定注:如果无法对两个控件同时选中高级≯自定义,先将要编辑的两个控件都另存为自定义类型的控件,再次打开即可。以下均在自定义模式下完成。E控件47.ct1自定义类率回区控件6.ct1口件G编辑G查看项目(操作)工具①窗口y)帮件()編辑(E)查看②项目卫操作(Q工具江窗口)轉团自定义类至-[团自定类型和尔3,在系统型控件上右键选择复制至剪贴板E控件47.ct1自定义类型回冈整件6:1自定义类型文件G编辐侣查看项目操作(二具I霰匚,文件G铜锔E查看(0三①映作工具①宙口(帮助「自定义类刑13tTa布尔复至郭板相司大小贴饭是入相司大小文芒导不原原始大小4,在新式的带LED的布尔按钮上右键选择图片项地址:北京市海淀区中关村东路18号财智国际大夏A座9层电话:(010)82600055传真:(010)62628056http://www.pansinocomcn泛华测控PANSINO控件47.ct1自定叉类塞冈控件46.ctl自定义类型文吽)病辑)查看{顶目巴操作⑨)工具(T匚ci件G编E查看(y项目巴操作(工具二窗口(帮助布尔烹物至邮贴板从剪贴板导入网片以相同大小从剪板号从文件导以相同大小从文件导原始大小5,选择我们需要编辑的图片项,因为之前复制的是系统型控件的假状态的图片,那么在选择新式按钮的图片项时,也应该选择对应的图片项。选择完毕后,选择“以相同大小从剪贴板导入”。控件47.ct1自定义夹型回Xp控件46,tl自定义型仁i)编承E查看△项目P)操作⑨)工具窗口)帮耵文件編辑查着③项目(P操作(工具⑦T窗口(业帮助尔有尔剪贴板子入图片以相同大小从贴椒导人以相问小从义件导图片项6,导入后的结果为控件47.ct1自定叉类想口日风粒件41叶t1自定义关类件)查看心顶目的嫵工貝山唐η弗项日(操工且口自定义类现布尔布尔7,同坦,将系统型按钮置为假吋,将其图片项复制至剪贴板,并导入到新式按钮的对应图片项下导入完成之后如下图所示。地址:北京市海淀区中关村东路18号财智国际大夏A座9层电话:(010)82600055传真:(010)62628056http://www.pansinocomcn
- 2020-12-08下载
- 积分:1
VINS论文推倒及代码解析
VINS 的功能模块可包括五个部分:数据预处理、初始化、后端非线性优化、闭环检测及闭环优化。代码中主要开启了四个线程,分别是:前端图像跟踪、后端非线性优化(其中初始化和 IMU 预积分在这个线程中)、闭环检测、闭环优化。、总体框架Measurement PreprocessingInitializationCamera(30hz)Feature Detectionnd rackerVisual-lnertialInitializedis- onlySfMAlignmentIMU (100hMU Pre-integrationLocal Visual-Inertial: OldestSliting WindowNewestNonli+、 Keyframe?OptimizationBundle Adjustment II Loop detectionwith RelocalizationStates from Loop ClosureFealure retrievel oop Deleted二二1---11------22===Global Pose Graph4-DoF Pose Graph OptimizationKeyframe DatabaseOptimization图1VINS框架ⅵINS的玏能模块可包括五个部分:数据预处理、初始化、后端非线性优化、闭环检测及闭环优化。代码中主要开启了四个线稈,分别是:前端图像跟踪、后端非线性伉化(其中初始化和IMU预积分在这个线程中)、闭环检测、闭环优化各个功能模块的作用上要有:1.I图像和MU预处理●图像:提取图像 Harris角点,利用金字塔光流跟踪相邻帧,通过 RANSAC去除异常点,最后将跟踪到的特征点push到图像队列中,并通知后端进行处理●IU:将IMU数据进行积分,得到当前时刻的位置、速度和旋转(PVQ),同时计算在后端优化中将用到的相邻帧的预积分增量,及预积分误差的 Jacobian矩阵和协方差项。1.2初始化首先,利用SFM进行纯视觉佔计滑窗內所有帧的位姿及3D点逆深度,最后与IMU预积分进行对齐求解初始化参数1.3后端滑窗优化将视觉约束、IMU约束和闭环约束放在·个大的目标函数中进行非线性优化,求解滑窗内所有帧的PVQ、bias等。L M States in the sliding windowIMU:k States from loop clos1Camera:冷 MU measurements>visual measurements★ Catur图2滑窗优化示意图14闭环检测和优化利用D)BoW进行闭环检测,当检测成功后进行重定位,最后对整个相机轨迹进行闭环优化。U预积分VisionIMUVision图3MU预积分示意图21当前时刻pVQ的连续形式将第k唢和第kl帧之间的所有IMU进行积分,可得第kHI帧的位置、速度和旋转(PVQ),作为视觉估计的初始值,这里的旋转采用的四元数。v△t+k+1∈[k,k+1]rW(at-ba ) -owletbk JtE[k, k+1]n(,-bdt∈[k,k+1]其中,a2和O为ⅠMU测量的加速度和角速度,是在Body自身坐标系, world坐标系是IMU所在的惯导系,上式的旋转公式推导可参考附录10.1。22当前时刻PVQ的中值法离散形式公式(1)给出的是连续吋刻的相机当前PVR的达代公式,为了跟代码致,下面给出基于中值法的公式,这与 Estimator:; processIMg(O函数中的Ps]、Rs]和Vs是一致的,IMU积分出来的第j时刻的物理量可以作为第j帧图像的初始值。tr t+a26t(2)ka,St其中q(a1-ba)-g"+q:+1(a+1-ba)(a;+o;+1)2.3两帧之间PVQ增量的连续形式通过观察公式(1)可知,IvU的预积分需要依赖与第k帧的ν和R,当我们在后端进行非线性优化时,需要迭代更新第κ唢的ν和R,这将导致我们需要根据每次迭代后值重新进行积分,这将非常耗吋。因此,我们考虑将优化变量从第k帧到第κ+1帧的IU预积分项中分离开来,通过对公式(1)左右两侧各乘Rb,可化简为:R(+p2k-=2△)+ak+1b其中DtElk, k+1t∈[k,k+1R k(at-bar)ldt)Wendtt∈[kk+1这样我们就得到了连续时刻的MU预积分公式,可以发现,上式得到的MU预积分的值只与不同时刻的a2和o相关。这里我们需要重新讨论下公式(5)预积分公式,以ab,为例,我们发现它是与MU的bias相关的,而bias也是我们需要优化的变量,这将导致的问题是,当每次迭代时,我们得到一个新的bias,又得根据公式(巧5)重新对第k帧和第k+1帧之间的IMU预积分,非常耗时。这里假设预积分的变化量与bias是线性关系,可以写成:ab,+/6n6ba+/16b+8 8ba +p(6)k+1sb24两帧之间PVQ增量的欧拉法离散形式面给出离散时刻的IMU预积分公式,首先按照论文中采用的欧拉法,给出第i个MU时刻与第i1个IMU时刻的变量关系为b+1k+的6t+元R(P)(1+R(P")(a2-bbn)δt25两帧之间PⅤQ增量的中值法离散形式卜面给出代码中采用的基」中值法的IMU预积分公式,这与 Estimator: processIMUO函数中的 Integration Base: push backo上是一致的。注意这里跟公式(2)是不一样的,这里积分出来的是前后两顿之间的IU增量信息,而公式(2)给出的当前帧时刻的物理量信息+1+B k St +=a, &tbb+1Bi + au1其中a,=slqilai-bai)+qiDi t aitl2.6连续形式下PVQ增量的误差、协方差及 JacobianIMU在每个吋刻积分出来的值是有误差的,下面我们对误差进行分析。首先我们直接给出在t时刻误差项的导数为:sa00016a000000-82(066hkR;0006|=00-(a-bh)0-1192k|+|000|mLL000016ba00101n000018b000F+ozk+ Gt其中:F25×15,G215×2,62x1,n12×,上式推导可参考附录102。下面我们讨论它的作用,将其可以简写为:6之k=F62z+Gtnt根据导数定义可知:62b=1m24-6262+8=62+628t=(+F6t)6z+(Gt6t)nt(11)这里我们对公式(1)的IMU误差运动方程再说明,将上式和EKF对比可知,上式恰好给出了如EKF一般对非线性系统线性化的过程,这里的意义是表示下一个时刻的IMU测量误差与上一个时刻的成线性关系,这样我们根据当前时刻的值,可以预测出下一个时刻的均值和协方差,而公式(1)给出的是均值预测,协方差预测公式如下Pb+6=(1+Ft)P(+Fl6t)7+(G,t)Q(G18t)ot(12)上式给出了协方差的选代公式,初始值Pk=0。其中,Q为表示噪声项的对角协方差矩阵000003000另外根据(11)式可获得诀差项的 Jacobian的迭代公式:(I+F26t)(14)其中 Jacobian的初始值为bk=12.7离散形式的PVQ增量误差分析我们首先直接给出PVQ增量误差在离散形式下的矩阵形式,为了与代码一致,我们修改下变量顺序,这和代码中 midPointIntegration(函数是一致的。(但不知为何计算的V中与前四个噪声项相关的差个负号?)1t fo660f106t‖loeBk+1=0f211f20016bδb0[6b102001rnot000kRkotk+1(15006t0n0000δt其中,推导可参考附录10.3:stE(ak-ba)02-4B+1(kk+121k+1b.)6t|6t2(Rr+ rk+18t2Stn=71=Rk+1(a+1-b)6tWr+ wf1=Ik+11+Gb。)δt-Rn+1(ak+121=-2配+1Stl st21(RK+Ruts)4rula1RrotstStR+1(a1R,+114/+11t28离散形式的PVQ增量误差的 Jacobian和协方差将公式(15)简写为:k+1F15×158215×1+V15×13Q则 Jacobian的迭代公式为k+15×15=F/k(16)其中, Jacobian的初始值为/k=l。这里计算出来的k+1只是为了给后面提供对bias的acoblar。协方差的迭代公式为P+15×15=FPFr+vQv(17)其中,初始值P=0。Q为表示噪声项的对角协方差矩阵:00000000aa000Q18×180a00(18)000000三、后端非线性优化31状态向量状态向量共包括滑动窗口内的n+l1个所有相机的状态(包括位置、朝向、速度、加速度计bias和陀螺仪bias)、 Camera到IMU的外参、m+1个3D点的逆深度X=[xr=pw,vb bpc,q3.2目标函数吗+(喻,2)+2(19)其中三个残差项即误差项分别为边缘化的先验信息、IMU测量残差、视觉的重投影残差。三种残差都是用马氏距离表示。根据《十四讲》中高斯牛顿法,若要计算目标函数的最小值,可以理解为,当优化变量有一个增量后,目标函数值最小,以IU残差为例,可写成如下所示:nin lre2bk, X+8Xrk x)+HSⅩDk+1oXk+1k+1其中HB,为B关于 XIK Jacobian,将上式展开并令关于6X的导数为0,可得增量δx的计算公式:H k 8X=k+1TB那么,公式(28)可写成+∑+∑Tk∑1rc上式中,B为MU预积分噪声项的协方差,P为vual观测的噪声协方差。当MU的噪声协方差P越大时,其信息矩阵Pk,将越小,意味着该MU观测越不可信,换句话说,因MU噪声较大,越不可信IMU预积分数据,而更加相信 visual观测。注意,这里的IMU和vsua协方差的绝对值没有意义,因为考虑得是两者的相对性可将上式继续简化为:(Ap+AB +Acox=bp +bB +bc其中,Ap,AB和Ac为 Hessian矩阵,上述方程称之为增量方程。33MU约束1)残差:两帧之间的PVQ和bias的变化量的差△tx+k+1bk qbk+1bR+1 xyz+g"△t)-Bk(20)sbbbb其中各增量关于bias的 Jacobian可从公式(16)的大 Jacobian中的相应位置获得。上面与代码中 Integration base: evaluateD对应,2)优化变量pb, 0W, Svb ,8ba:,bor Opb,, 80W ,Swb,, bakr, Sba3)Jacobian:计算 Jacobian时,残差对应求偏导对象分别为p6e,6vB,6h,ba],6b,6b
- 2020-12-07下载
- 积分:1