如图cd选项,为什么r减小误差的方法有四种或增大,误差就减小误差的方法有四种

&figure&&img src=&https://pic2.zhimg.com/v2-ff88f234ae6_b.jpg& data-rawwidth=&710& data-rawheight=&399& class=&origin_image zh-lightbox-thumb& width=&710& data-original=&https://pic2.zhimg.com/v2-ff88f234ae6_r.jpg&&&/figure&&p&近日,在德国纽伦堡举行的 2017 年度 SPS IPC Drives 展览会上,B&R(贝加莱自动化)发布了其全新一代电驱轨道传输系统 ACOPOStrak。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-678cffcbe61f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&386& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-678cffcbe61f_r.jpg&&&/figure&&p&作为一种机电一体化运控解决方案,新款 ACOPOStrak 从产品的基本原理,特别是在驱动系统架构方面,和本刊上半年跟大家介绍过的 &a href=&https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzA4ODQ1MzEwMQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Da1a57e3cdcdee0e5f7413f%26chksm%3D8820366dbf57bf7bbbc86104dac038de5d4bdf28fa7f5ec5cc56cbca2b41faef%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SuperTrak&/a& 几乎是一样的,都是以长定子直线电机技术作为其硬件基础的。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-27326f67cdfbd2ca97f3eecf2f9f9b1d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&408& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-27326f67cdfbd2ca97f3eecf2f9f9b1d_r.jpg&&&/figure&&p&同时,从传输系统的运动性能上看,4m/s 的运行速度和超过 5 个 G 的加速度,轨道可沿水平、垂直或任意倾角方向安装,这个貌似和目前市面上&a href=&https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzA4ODQ1MzEwMQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Df7dc86dfec8ddca77a3d47%26chksm%3D8820367ebf57bf685c95bc8c96aaa87a96cca29ba747fe8ascene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&各类电驱轨道&/a&的表现也没有太大差别嘛。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f9dfa4eb8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&349& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-f9dfa4eb8_r.jpg&&&/figure&&p&不过,如果看过此次 B&R 在 SPS 展上的现场发布会,就不难发现,这款全新的 ACOPOStrak,已经在产品模块的体系化、传输系统的灵活性和应用集成的易用性...等各个维度,全面超越了上一代的 SuperTrak 技术。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-33aa339fb78de9e4671fe2bfdb983419_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&326& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-33aa339fb78de9e4671fe2bfdb983419_r.jpg&&&/figure&&p&首先,ACOPOStrak 的模块化定子轨道(电机) 采用了全新的设计。&/p&&p&一方面,它为用户提供了多种不同转向弧度的轨道模块选项;&/p&&figure&&img src=&https://pic4.zhimg.com/v2-5cfdb7ec183ac3b63ceb34_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&291& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-5cfdb7ec183ac3b63ceb34_r.jpg&&&/figure&&p&另一方面,轨道模块的体积也更加紧凑、轻薄,以尽可能减少在车间厂房内场地和空间的占用。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-8b072fcc21faef0cdd013d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&336& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-8b072fcc21faef0cdd013d_r.jpg&&&/figure&&p&这让 ACOPOStrak 在轨道布局的系统配置上变得极为灵活,能够应对各种不同类型产线流程的应用需要;&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d1fa715c099d7d87a7edac9db7ddc602_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-d1fa715c099d7d87a7edac9db7ddc602_r.jpg&&&/figure&&p&可以是闭环的;&/p&&figure&&img src=&https://pic4.zhimg.com/v2-fb10e2996_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&356& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-fb10e2996_r.jpg&&&/figure&&p&也可以是开环的。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-eb7ce9ae2cdeca1006ea8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&333& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-eb7ce9ae2cdeca1006ea8_r.jpg&&&/figure&&p&还可以是多线并联的。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-dfa2ca12a7deea447adc63a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&247& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-dfa2ca12a7deea447adc63a_r.jpg&&&/figure&&p&动子滑块方面,ACOPOStrak 采用更加小巧、轻便的设计,框架结构十分简洁;上下两组滑轮都是双排轮式的布局,上方两个导向滑轮,截面成 V 型凸棱状,下方两个支撑滑轮,截面呈矩形;&/p&&figure&&img src=&https://pic4.zhimg.com/v2-c313f3ab81e5f32e0ee5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&349& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-c313f3ab81e5f32e0ee5_r.jpg&&&/figure&&p&从这个角度可以看到,动子滑块主体部分的正反两个平面都布有永磁体,这应该是为了实现滑块在不同轨道之间的路径切换。&/p&&p&同时,也不难发现,定子部分上沿导轨外侧的凹槽截面是呈 W 型的,动子滑块上方两排呈 V 型凸棱截面的导向轮,在运动时恰好嵌入其中。相较于其他&a href=&https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzA4ODQ1MzEwMQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Da928ffd0bc506befc21fadf4ec11c6de%26chksm%3Dbf70d73e4ba0a6f478e35e9020afe33e1fbd6ef67%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&电驱轨道技术&/a&,这种平行“双轨制”的导向设计,应该能够在滑块高速运动时提供更好的直线度和稳定性。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-0c8e3235f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&348& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-0c8e3235f_r.jpg&&&/figure&&p&此外,ACOPOStrak 的传输轨道和动子滑块都已经达到了食品级的环境防护等级。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-cb04f05a5095a9bec4387cacae70b494_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&350& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-cb04f05a5095a9bec4387cacae70b494_r.jpg&&&/figure&&p&在 SPS 现场,B&R 展示了在系统带电不停机情况下,由机器人完成动子滑块自动拆装的全过程。&/p&&p&同时,在 B&R 官方视频中也可以看到,一名操作人员可以在 ACOPOStrak 系统高速运行过程中,不使用任何辅助工具,便在几秒钟内“徒手”完成动子滑块的更换。&/p&&p&?
如此看来,ACOPOStrak 动子滑块和定子导轨之间的吸附力并不是很大。那么,是不是可以推测,其负载承重能力也会比之前的 SuperTrak 小一些呢?&/p&&figure&&img src=&https://pic4.zhimg.com/v2-db_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&361& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-db_r.jpg&&&/figure&&p&如果产线中经常需要有批量拆装动子滑块的操作,则可以选择使用 ACOPOStrak 的维修区模式(PIT Lane)。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-6c9182cb90add42cddc96b13f0fe7b64_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-6c9182cb90add42cddc96b13f0fe7b64_r.jpg&&&/figure&&p&类似于方程式赛车在比赛中驶入维修区。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-85a25d51fd9ee88b2fabea_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&358& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-85a25d51fd9ee88b2fabea_r.jpg&&&/figure&&p&在这里,操作人员可以批量完成多个动子滑块的拆装,然后将它们一次性并入设备主线运行。在这个过程中,整个传输系统可以继续保持高速运行,完全不需要减速停机。这将极大提升产线的运营效率。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-05a5b835ec90b025c6faac22d3970745_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&146& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-05a5b835ec90b025c6faac22d3970745_r.jpg&&&/figure&&p&ACOPOStrak 使用了与以往 ACOPOS 运控驱动系统兼容的基于以太网 PowerLink 的控制平台,并以 60V DC 直流电作为系统动力电源。传输系统全程可达 100 米以上,而 250 个动子滑块却仅需使用一台 Automation PC 控制器。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-7e8f5d8ec799b1b7afaa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&325& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-7e8f5d8ec799b1b7afaa_r.jpg&&&/figure&&p&从官方视频中可以清楚的看到多个定子模块之间线路连接。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-9f948f1c5f7d174fde607_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&296& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-9f948f1c5f7d174fde607_r.jpg&&&/figure&&p&目测较为短粗的,应该是串接的直流动力电源线;而比较细长的,则为以太网 PowerLink 跨接线。&/p&&p&这次 ACOPOStrak 的现场发布和官方视频,还重点提到它的软件操作系统,其中集成了这个复杂的轨道传输系统所需要的各种运动控制功能,例如:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f34ff16f93f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&356& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-f34ff16f93f_r.jpg&&&/figure&&p&物料的高速同步分流控制&/p&&figure&&img src=&https://pic2.zhimg.com/v2-87d1fa336eb5d305f93ce_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&356& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-87d1fa336eb5d305f93ce_r.jpg&&&/figure&&p&物料的高速同步并轨控制&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a3f1c994b8fb36a4a6b769_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&350& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-a3f1c994b8fb36a4a6b769_r.jpg&&&/figure&&p&不仅如此,ACOPOStrak 系统软件还为用户提供了一个用于模拟设备运行和物料传输流程的数字化仿真环境。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-e879a81eccc7_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&385& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-e879a81eccc7_r.jpg&&&/figure&&p&基于应用代码, ACOPOStrak 系统软件能够自动生成一个实时的 3D 仿真画面,让用户可以在产线规划的早期、还没有具体机械设备的时候,就对包括传输流程、运行效率...等各方面的系统性能进行充分评估、优化和参数预调整...。这不仅能帮助节省搭建原型机的硬件和工程成本,还有机会因为简化了设计、集成、调试和运行...等一系列系统应用流程,而缩短新品上市的时间周期。&/p&&a class=&video-box& href=&https://link.zhihu.com/?target=https%3A//www.zhihu.com/video/859392& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic1.zhimg.com/80/v2-db657be1a0_b.jpg& data-lens-id=&859392&&
&img class=&thumbnail& src=&https://pic1.zhimg.com/80/v2-db657be1a0_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/859392&/span&
&p&按照 B&R 官方说法,ACOPOStrak 将会彻底改变产线物料传输系统的构建方式,极大提升柔性智能化设备的制造和使用体验,帮助用户从产品的制造流程入手,实现小批量、多品种的工业化生产,从而在个性化需求日益增长的消费市场中受益。&/p&&p&B&R 甚至宣称,ACOPOStrak 是数字化时代的运动控制解决方案。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fdbec2cb6e22b89cfd7b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&358& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-fdbec2cb6e22b89cfd7b_r.jpg&&&/figure&&p&不过,对于广大奋战在行业一线的制造企业而言,任何一项新技术的落地应用,最实际终归还是那两点:成功案例和总体成本。&/p&&p&关于案例,据说在 KRONES 的 Bottling on Demand、 Makro 的 Rotary Labelling 和 WEISS 的 FastLane ONE 系统中都已经在使用 ACOPOStrak 技术了。不过,目测装机和投产时间应该都还不是很长,或许仍然有待用户口碑的检验。&/p&&p&置于成本嘛,就目前看,应该只能跟厂家(ABB 旗下的 B&R)咨询了......&/p&
近日,在德国纽伦堡举行的 2017 年度 SPS IPC Drives 展览会上,B&R(贝加莱自动化)发布了其全新一代电驱轨道传输系统 ACOPOStrak。作为一种机电一体化运控解决方案,新款 ACOPOStrak 从产品的基本原理,特别是在驱动系统架构方面,和本刊上半年跟大家介绍…
&figure&&img src=&https://pic1.zhimg.com/v2-44cd062c77d5a1f55e36c8_b.jpg& data-rawwidth=&1840& data-rawheight=&987& class=&origin_image zh-lightbox-thumb& width=&1840& data-original=&https://pic1.zhimg.com/v2-44cd062c77d5a1f55e36c8_r.jpg&&&/figure&&h2&&b&0. 前言 背景&/b&&/h2&&p&在5月份结束的ICRA RoboMaster人工智能挑战赛中,大疆创新机器人队几乎横扫所有参赛队伍,取得优异成绩。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-0f93bc75ac788c24a0acac_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&800& data-rawheight=&525& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic1.zhimg.com/v2-0f93bc75ac788c24a0acac_r.jpg&&&/figure&&p&自动机器人凝聚了算法组在定位、导航、决策、目标识别等各个方面无数心血。作为一个嵌入式软件组的成员,今天我来谈谈我在云台控制和目标跟随上做的一些微小的工作。&/p&&p&与此同时,RoboMaster对抗赛已经进行到第四年,越来越多的队伍都开始思考:在机械结构和电路软件日趋稳定成熟的今天,怎样和其他队伍拉开差距,怎样才能有效的提高队伍的比赛表现?大家不约而同的选择了往自动化、智能化方向发展。&/p&&p&观看过RoboMaster分区赛的小伙伴们肯定会对很多强队的超高命中率影响深刻,例如哈工大和华工的英雄机器人,能够准确命中运动中的敌对目标,显然他们是利用了视觉识别进行辅助瞄准。距离RoboMaster全国总决赛还有三个星期,希望这篇文章能在最后关头给参赛队伍在自瞄功能的完善上提供一些参考和帮助。&/p&&p&本文主要介绍在实现自动瞄准跟随的时候,需要怎么对控制信号做处理以达到准确平滑的追踪效果,主要是嵌入式软件的工作,默认大家的机械结构已经稳定可靠,目标检测和识别算法都已经搞定了。&/p&&p&本文来自于ICRA自动机器人的云台控制工作的个人笔记,包含有问题分析、优化思路、卡尔曼滤波的简单介绍和仿真,以及实际对比情况。定位入门,注重实用性,因此理论推导部分从简,并且尽量用通俗易懂的方式进行介绍。文末会附上卡尔曼滤波的matlab仿真代码和stm32平台实现的c代码供参考。&/p&&p&话不多说,进入正题&/p&&h2&&b&1. 云台原始控制方式和存在的问题 &/b&&/h2&&h2&&b&1.1 曾经的控制方式&/b&&/h2&&p&硬件平台:nVidia TX2+STM32开发板 &/p&&figure&&img src=&https://pic3.zhimg.com/v2-cebec955ce3aa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2117& data-rawheight=&900& class=&origin_image zh-lightbox-thumb& width=&2117& data-original=&https://pic3.zhimg.com/v2-cebec955ce3aa_r.jpg&&&/figure&&p&相机固定在底盘上,TX2处理图像数据后,直接得到目标在相机坐标中的位置,通过串口发送给STM32开发板
,单片机接收后将角度信息作为云台位置环的给定,然后利用双环PID算法(位置环、速度环)对云台进行控制。&/p&&h2&&b&1.2 存在的问题&/b&&/h2&&h2&&b&1. 信息损失:&/b&&/h2&&p&视觉算法得到的原始信息是目标的xyz坐标和时间t,然而直接发送给单片机的是转换后的pitch和yaw角度,从四个独立的变量变成两个变量,自然会有信息损失,例如没有了深度和时间信息。&/p&&h2&&b&2. 帧率限制:&/b&&/h2&&p&受相机帧率和串口通讯速率限制,TX2发送的控制指令的最高频率只有50Hz,而且由于相机采集画面不稳定导致丢帧,所以实际的指令延迟会更大而且不稳定。实际采集的一段原始的yaw轴控制信号如下所示,可以明显的看到信号呈散点状,间隔时间约为28ms,但是并不一致:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-3effba94d328de8c5e9849a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&926& data-rawheight=&453& class=&origin_image zh-lightbox-thumb& width=&926& data-original=&https://pic3.zhimg.com/v2-3effba94d328de8c5e9849a_r.jpg&&&/figure&&p&&br&&/p&&p&如果单片机接收到这样的位置信号不进行任何处理就直接执行,由于单片机执行云台控制逻辑的周期为1ms,因此会带来零阶保持的效果,所以对于底层来说,位置信号是这样阶梯状的:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-1605fce1cdcd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&926& data-rawheight=&453& class=&origin_image zh-lightbox-thumb& width=&926& data-original=&https://pic2.zhimg.com/v2-1605fce1cdcd_r.jpg&&&/figure&&p&很显然直接用这样的信号作为云台的位置环的设定值,云台运行起来角度就会阶梯状跳跃,直观表现就是不连贯、卡顿。以前的控制方案是选择将云台PID控制器的增益减小,以达到“柔和”的效果,然而这样带来的显著缺陷就是响应速度非常慢。&/p&&h2&&b&3. 没有做预测:&/b&&/h2&&p&由于相机采集数据、视觉算法执行、数据传输、滤波、PID控制,再到实际云台系统的固有延迟,还要考虑子弹的飞行时间,每个环节都存在不同程度的延时,如果不对云台角度做一定的预测,只能始终跟在目标的后面,无法做到实时跟踪并且命中运动目标。&/p&&h2&&b&2. 应对思路和策略&/b&&/h2&&p&总体思路是嵌入式端对TX2发送过来的云台控制指令进行优化(估计、平滑),尽量保证平滑且低延迟,然后根据目标速度、距离等信息做出角度超前量的预测,加到一起后作为云台角度的目标值,最后调用PID执行云台控制过程。&/p&&h2&&b&2.1 插值+低通滤波&/b&&/h2&&p&要求控制信号由跳动、离散的信号变成连续、平滑的信号,最直观的想法就是对信号插值、然后滤波,由于实时系统的要求,只能做零阶保持插值,即插值成阶梯状的信号。&/p&&p&在考虑滤波算法的时候,首先想到的是低通滤波,为了达到较好的平滑的效果,必须要将滤波器的截止频率设置的很低,这样就会带来严重的滞后,不可行。&/p&&p&MATLAB仿真结果如下(截止频率为10Hz),延迟大概有150ms:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ae885f71e1c3c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1840& data-rawheight=&987& class=&origin_image zh-lightbox-thumb& width=&1840& data-original=&https://pic1.zhimg.com/v2-ae885f71e1c3c_r.jpg&&&/figure&&h2&&b&2.2 卡尔曼滤波&/b&&/h2&&p&单纯的想让信号平滑不可行,必须要加入一定的预测,这就引入了卡尔曼滤波器,因为卡尔曼滤波器是带有预测功能的估计算法(estimate的三个境界:smoothing-&filtering-&prediction 观点来源:&/p&&a href=&https://www.zhihu.com/question//answer/& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic1.zhimg.com/7ed8d6c72aac70x160.jpg& data-image-width=&905& data-image-height=&1140& class=&internal&&现代的先进控制理论先进在哪里?如何评价 PID 控制器份额在 95% 条件下稳定性逊色的先进控制系统?&/a&&h2&&b&3. 卡尔曼滤波器介绍&/b&&/h2&&p&这部分内容的理论部分主要是翻译自University of North Carolina at Chapel Hill的&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//www.cs.unc.edu/%7Ewelch/media/pdf/kalman_intro.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《An Introduction to the Kalman Filter》&/a&&/p&&p&视频截图来自于MATLAB官方制作的视频教程&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ww2.mathworks.cn/videos/series/understanding-kalman-filters.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Understanding Kalman Filters&/a&&/p&&p&这两个都是非常通俗易懂的入门教程,强烈推荐。&/p&&h2&&b&3.1 卡尔曼滤波的意义&/b&&/h2&&p&卡尔曼滤波器是以最小均方误差(minimizes the mean of the squared error)为目的而推导出的几个递推数学等式,用于高效的估计过程的状态(provides an efficient computational (recursive) means to estimate the state of a process)。&/p&&p&简单来说,卡尔曼滤波器就是一个带有预测功能的低通滤波器。&/p&&h2&&b&3.2 预备知识&/b&&/h2&&p&一直说卡尔曼滤波器是一个状态估计器,那什么是状态呢,这里就不得不提一下状态和状态空间。&/p&&p&状态是指在某一时刻,可以表征系统特征或者行为的数。&/p&&p&状态空间分析方法是现代控制理论的基础,是用于描述多输入多输出、含有(非)线性关系的系统时引入的系统描述方法。简单来说,你用几个变量表示系统状态,然后写几个方程理清楚它们的关系,然后你就构成了一个状态空间。状态空间分析法是一种时域分析方法。&/p&&p&卡尔曼滤波器的前提条件是系统是线性高斯系统,线性高斯系统需要从两个方面的理解,&/p&&p&线性:运动方程、观测方程是线性的&/p&&p&高斯:系统噪声服从零均值的高斯分布&/p&&p&综合来说也就是说高斯分布的噪声在经过状态转移之后仍然保持高斯分布。&/p&&p&放几张来自MATLAB的视频截图帮助理解&/p&&figure&&img src=&https://pic1.zhimg.com/v2-2f837a939c9d44c388dc_b.jpg& data-size=&normal& data-rawwidth=&961& data-rawheight=&620& class=&origin_image zh-lightbox-thumb& width=&961& data-original=&https://pic1.zhimg.com/v2-2f837a939c9d44c388dc_r.jpg&&&figcaption&高斯分布&/figcaption&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-199aa89db722ee62d1ab0c_b.jpg& data-size=&normal& data-rawwidth=&2560& data-rawheight=&1440& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&https://pic1.zhimg.com/v2-199aa89db722ee62d1ab0c_r.jpg&&&figcaption&线性变换&/figcaption&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-ffb1a155e6bdcf64d3effbc_b.jpg& data-size=&normal& data-rawwidth=&2560& data-rawheight=&1440& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&https://pic4.zhimg.com/v2-ffb1a155e6bdcf64d3effbc_r.jpg&&&figcaption&非线性变换&/figcaption&&/figure&&p&由上图可以看到,如果系统是非线性,高斯分布经过变换之后就会不是高斯分布了,这也就超出了卡尔曼滤波的工作范围。为了能够在非线性系统中继续使用卡尔曼滤波,就需要做一些巧妙的变换,例如在局部近似线性化(EKF)、利用离散点投影拟合高斯分布(UKF),这些都是后话。&/p&&h2&&b&3.3 计算过程和参数影响&/b&&/h2&&h2&&b&3.3.1 设定&/b&&/h2&&p&下面进入数学计算过程:&/p&&p&假设一个线性离散随机过程:&/p&&p&&img src=&http://www.zhihu.com/equation?tex=x_k+%3D+Ax_%7Bk-1%7D+%2BBu_%7Bk-1%7D%2Bw_%7Bk-1%7D+& alt=&x_k = Ax_{k-1} +Bu_{k-1}+w_{k-1} & eeimg=&1&&&/p&&p&测量值为&/p&&p&&img src=&http://www.zhihu.com/equation?tex=z_k%3DHx_k%2Bv_k& alt=&z_k=Hx_k+v_k& eeimg=&1&&&/p&&p&H是状态变量到测量值的转换矩阵&/p&&p&w和v分别是过程噪声和测量噪声,假设两者相互独立,且都是正态分布的白噪声(高斯白噪声),满足以下条件:&/p&&p&&img src=&http://www.zhihu.com/equation?tex=p%28w%29+%5Csim+N%280%2CQ%29& alt=&p(w) \sim N(0,Q)& eeimg=&1&&&/p&&p&&img src=&http://www.zhihu.com/equation?tex=p%28v%29%5Csim+N%280%2CR%29& alt=&p(v)\sim N(0,R)& eeimg=&1&&&/p&&ul&&li&Q、R分别是过程噪声和测量噪声的协方差矩阵(对角线上是方差,其他是元素的协方差),假设它们是定值。R可以根据传感器数据大概估算出来,Q是依赖模型的准确度,需要调试。&/li&&li&&img src=&http://www.zhihu.com/equation?tex=%5Chat%7Bx%7D%5E-_k& alt=&\hat{x}^-_k& eeimg=&1&& 先验状态估计(预测值)&/li&&li&&img src=&http://www.zhihu.com/equation?tex=%5Chat%7Bx%7D_k& alt=&\hat{x}_k& eeimg=&1&& 后验状态估计(估计值)&/li&&li&&img src=&http://www.zhihu.com/equation?tex=P%5E-_k& alt=&P^-_k& eeimg=&1&& 先验误差协方差 &/li&&li&&img src=&http://www.zhihu.com/equation?tex=P_k& alt=&P_k& eeimg=&1&& 后验误差协方差&/li&&/ul&&h2&&b&3.3.2 递推过程&/b&&/h2&&ol&&li&计算预测值、预测值和真实值之间的误差协方差矩阵&br&&img src=&http://www.zhihu.com/equation?tex=%5Chat%7Bx%7D%5E-_k%3DA%5Chat%7Bx%7D_%7Bk-1%7D%2BBu_%7Bk-1%7D& alt=&\hat{x}^-_k=A\hat{x}_{k-1}+Bu_{k-1}& eeimg=&1&&&br&&img src=&http://www.zhihu.com/equation?tex=P%5E-_%7Bk%7D%3DAP_%7Bk-1%7DA%5ET%2BQ& alt=&P^-_{k}=AP_{k-1}A^T+Q& eeimg=&1&&&/li&&li&计算卡尔曼增益,得到估计值&br&&img src=&http://www.zhihu.com/equation?tex=K_k%3D+P%5E-_%7Bk%7DH%5ET%28H+P%5E-_%7Bk%7DH%5ET%2BR%29%5E%7B-1%7D& alt=&K_k= P^-_{k}H^T(H P^-_{k}H^T+R)^{-1}& eeimg=&1&&&br&&img src=&http://www.zhihu.com/equation?tex=%5Chat%7Bx%7D_k%3D%5Chat%7Bx%7D%5E-_k%2BK_k%28z_k-H%5Chat%7Bx%7D%5E-_k%29& alt=&\hat{x}_k=\hat{x}^-_k+K_k(z_k-H\hat{x}^-_k)& eeimg=&1&&&/li&&li&计算估计值和真实值之间误差协方差矩阵,为下次递推做准备&br&&img src=&http://www.zhihu.com/equation?tex=P_k%3D%28I-K_kH%29P%5E-_k& alt=&P_k=(I-K_kH)P^-_k& eeimg=&1&&&/li&&/ol&&p&将计算过程连起来,形成了一个循环,这就是卡尔曼滤波算法的递推过程&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f31e2514bad75d62aa92c628b9de748d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1266& data-rawheight=&698& class=&origin_image zh-lightbox-thumb& width=&1266& data-original=&https://pic2.zhimg.com/v2-f31e2514bad75d62aa92c628b9de748d_r.jpg&&&/figure&&p&再次引用matlab的视频截图来帮助理解&/p&&figure&&img src=&https://pic4.zhimg.com/v2-7db1ef28c452a6de00371f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic4.zhimg.com/v2-7db1ef28c452a6de00371f_r.jpg&&&/figure&&p&&img src=&http://www.zhihu.com/equation?tex=%5Chat+x_%7Bk-1%7D%E2%80%8B& alt=&\hat x_{k-1}& eeimg=&1&& 经过状态转化方程得到估计值 &img src=&http://www.zhihu.com/equation?tex=%5Chat%7Bx%7D%5E-_k%E2%80%8B& alt=&\hat{x}^-_k& eeimg=&1&& , &img src=&http://www.zhihu.com/equation?tex=y_k%E2%80%8B& alt=&y_k& eeimg=&1&& 是测量值,根据两者的置信度得到最优估计值 &img src=&http://www.zhihu.com/equation?tex=%5Chat%7Bx%7D_k& alt=&\hat{x}_k& eeimg=&1&& 。&/p&&p&&b&3.3.3 参数对估计效果的影响&/b&&/p&&p&A、B、H根据模型来确定。&/p&&p&测量噪声大,R需要设置的较大;模型不准确,Q需要增大。&/p&&p&&img src=&http://www.zhihu.com/equation?tex=%5Cfrac%7BQ%7D%7BR%7D& alt=&\frac{Q}{R}& eeimg=&1&& 决定了滤波器的稳态频率响应,Q↑,R↓,都会导致卡尔曼增益K变大,从而使得估计值倾向于测量值(包含更多的高频噪声信号)&/p&&p&P变大也会导致卡尔曼增益变大,但是很快会迭代至稳定值,因此P的初始值只会对前几个周期的估计值有影响。&/p&&h2&&b&3.3.4 卡尔曼滤波与互补滤波的关系&/b&&/h2&&p&在MATLAB上跑仿真的时候,将实验数据导入卡尔曼滤波器进行计算,经过十几次迭代后,能够观察到误差协方差矩阵P和卡尔曼增益K都变成定值了,而且导入不同的实验数据也会由同样的结果。&/p&&p&经过长时间的迭代,状态已经收敛到真值附近,而且过程协方差矩阵也已经收敛为&/p&&p&&img src=&http://www.zhihu.com/equation?tex=P+%3D+%5Clim_%7Bk%5Crightarrow+%5Cinfty+%7D+P_%7Bk%7Ck-1%7D& alt=&P = \lim_{k\rightarrow \infty } P_{k|k-1}& eeimg=&1&&&/p&&p&这是一个常数矩阵,所以卡尔曼增益变成了:&/p&&p&&img src=&http://www.zhihu.com/equation?tex=K+%3DK_g+%3D+P+H_k%5ET+%5Cleft+%28H_k+P+H_k%5ET%2BR_k%5Cright%29%5E%7B-1%7D& alt=&K =K_g = P H_k^T \left (H_k P H_k^T+R_k\right)^{-1}& eeimg=&1&&&/p&&p&这也是一个常数而且对于已知的系统,这个常矩阵可以求极限求出来,卡尔曼滤波器就简化成两个等式,不需要递推运算了,此时就等同于一个互补滤波器了,那岂不是我们推导了半天的卡尔曼滤波算法都没有意义了?&/p&&p&显然不是这样的,卡尔曼滤波器的增益是动态调整的,它可以保证计算结果尽快收敛到真实值附近,给出最优估计。而当初始状态设定与真实值有很大误差的时候,互补滤波就会收敛很慢或者根本无法收敛。&/p&&h2&&b&3.4 卡尔曼滤波器仿真和对比&/b&&/h2&&h2&&b&3.4.1 仿真设计&/b&&/h2&&p&按照机器人的实际工作情况,假设真值是幅度20,周期1s的的正弦波,受信号采集过程限制,假设信号采样频率为50Hz,并且叠加了幅度为1的噪声。执行器的频率为1kHz。&/p&&p&使用MATLAB产生幅度为20,周期为1s的正弦波信号作为真实值。先采样至50Hz(模拟图像采集的帧率,丢帧导致的停顿),叠加幅度为1的正态分布的噪声信号,采用一阶保持的方法插值到1kHz作为测量值(模拟单片机对数据的过采样),分别使用卡尔曼滤波和低通滤波对信号进行处理,观察曲线判断波动和延迟情况,计算两种滤波结果和真实值之间的欧式距离来计算偏差大小。&/p&&h2&&b&3.4.2 滤波器的实现&/b&&/h2&&h2&&b&1.(一维)卡尔曼滤波器&/b&&/h2&&p&&img src=&http://www.zhihu.com/equation?tex=%5Chat%7Bx%7D%5E-_k%3D%5Chat%7Bx%7D_%7Bk-1%7D& alt=&\hat{x}^-_k=\hat{x}_{k-1}& eeimg=&1&&&/p&&p&&img src=&http://www.zhihu.com/equation?tex=P%5E-_%7Bk%7D%3DP_%7Bk-1%7D%2BQ& alt=&P^-_{k}=P_{k-1}+Q& eeimg=&1&&&/p&&p&&img src=&http://www.zhihu.com/equation?tex=K_k%3D%5Cfrac%7BP%5E-_k%7D%7BP%5E-_k%2BR%7D& alt=&K_k=\frac{P^-_k}{P^-_k+R}& eeimg=&1&&&/p&&p&&img src=&http://www.zhihu.com/equation?tex=%5Chat%7Bx%7D%3D%5Chat%7Bx%7D%5E-_k%2BK_k%28z_k-%5Chat%7Bx%7D%5E-_k%29& alt=&\hat{x}=\hat{x}^-_k+K_k(z_k-\hat{x}^-_k)& eeimg=&1&&&/p&&p&&img src=&http://www.zhihu.com/equation?tex=P_k%3D%281-K_k%29P%5E-_k& alt=&P_k=(1-K_k)P^-_k& eeimg=&1&&&/p&&p&全部是标量计算,调节Q/R的比值来控制滤波效果。&/p&&h2&&b&2. 低通滤波器&/b&&/h2&&p&使用FDATool,选择切比雪夫Ⅱ型IIR滤波器,根据需求设置截止频率和阶数,然后生成object文件,可以方便的设置滤波器参数,然后被主程序调用。&/p&&h2&&b&3.4.3 对比结果&/b&&/h2&&h2&&b&1. 对比卡尔曼滤波和低通滤波&/b&&/h2&&p&设置噪声幅度为1(5%),经过调试,卡尔曼滤波器设置为Q/R=1/2000,低通滤波器截止频率为20Hz,结果如下:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-dfb2a2b58be33acd2a0f25_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1840& data-rawheight=&987& class=&origin_image zh-lightbox-thumb& width=&1840& data-original=&https://pic2.zhimg.com/v2-dfb2a2b58be33acd2a0f25_r.jpg&&&/figure&&p&&br&&/p&&p&无论是延迟还是平滑度,卡尔曼滤波器的效果都好于低通滤波。计算了滤波值和真值的的欧氏距离作为偏差的判定。&/p&&h2&&b&2. 对比不同噪声的效果&/b&&/h2&&p&调整噪声幅度为3(15%),不改变滤波器参数,再次对比效果:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e60fd7df4ffefd983b8b007_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1840& data-rawheight=&987& class=&origin_image zh-lightbox-thumb& width=&1840& data-original=&https://pic4.zhimg.com/v2-e60fd7df4ffefd983b8b007_r.jpg&&&/figure&&p&可以看出,在噪声放大3倍之后,低通滤波的结果波动非常大,几乎完全不可信了,而卡尔曼滤波器受到的影响不大,滤波结果仍然比较平滑,因此可以认为卡尔曼滤波器对噪声不是特别敏感。&/p&&h2&&b&4. 云台控制方案实战&/b&&/h2&&p&在经过一通理论分析和仿真对比后,是时候将卡尔曼滤波器搬到云台系统中进行测试了。我采取的方法是利用TX2采集敌对目标移动的数据,然后导入到MATLAB中设计滤波器。&/p&&h2&&b&4.1 使用角度控制量&/b&&/h2&&p&首先是在原来的控制方案上进行改进:将相机固定在底盘上,TX2计算pitch和yaw角度,底层对控制量进行卡尔曼滤波后作为云台设定值来控制云台。与低通滤波器结果对比如下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-fbcc22a06ba_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1159& data-rawheight=&580& class=&origin_image zh-lightbox-thumb& width=&1159& data-original=&https://pic3.zhimg.com/v2-fbcc22a06ba_r.jpg&&&/figure&&p&可以看出经过卡尔曼滤波之后,数据平滑了许多,而且没有产生很大的延迟,比较好的满足了云台控制的需求。&/p&&h2&&b&4.2 坐标系和运动学模型的选择&/b&&/h2&&p&由于相机采集的画面不太稳定,难免会产生识别目标的位置发生跳动的情况,这些异常数据需要事先剔除才能达到比较好的滤波效果。最简单的方法就是设置一个阈值,当两帧数据差值大于阈值就认为该数据异常。但是这种方案在直接使用角度作为控制量的条件下很难实现,因为敌对目标以同样的速度运行,在不同距离进行观测得到的角度变化率是不一样的,无法设置阈值为定值。&/p&&p&正确的做法应该是根据目标的运动学特性来对采集的数据进行处理,这就需要得到目标在绝对坐标系下的坐标。其次还可以建立更加准确的模型。&/p&&p&参考自动驾驶中常用于车辆状态估计的车辆运动模型,主要包含以下几类:&/p&&p&只考虑直线运动&/p&&ul&&li&恒定速度模型(Constant Velocity, CV)&/li&&li&恒定加速度模型(Constant Acceleration, CA)&/li&&/ul&&p&如果考虑考虑物体的转弯&/p&&ul&&li&恒定转率和速度模型(Constant Turn Rate and Velocity,CTRV)&/li&&li&恒定转率和加速度模型(Constant Turn Rate and Acceleration,CTRA)&/li&&/ul&&p&由于麦轮底盘可以左右平移,并不存在恒定转率的前提;再加上我们识别的是装甲板,在机器人发生转向的时候,目标会发生切换,因此在设定运动学模型时候不需要考虑转弯。为了简化运算,我们选用了CV模型。&/p&&p&状态空间 &img src=&http://www.zhihu.com/equation?tex=+%5Cvec%7Bx%7D+%3D+%5C%7Bx%2Cy%2Cv_x%2Cv_y%5C%7D%5ET& alt=& \vec{x} = \{x,y,v_x,v_y\}^T& eeimg=&1&&&/p&&p&状态转移函数 &/p&&figure&&img src=&https://pic2.zhimg.com/v2-f57cdaaaa650ffead7c4d9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&162& class=&content_image& width=&333&&&/figure&&p&状态转移矩阵&img src=&http://www.zhihu.com/equation?tex=R%3D+%5Cbegin%7Bbmatrix%7D+1+%26+0+%26+%5CDelta+t+%26+0%5C%5C+0+%26+1+%26+0+%26+%5CDelta+t%5C%5C+0+%26+0+%26+1+%26+0%5C%5C+0+%26+0+%26+0+%26+1%5C%5C+%5Cend%7Bbmatrix%7D& alt=&R= \begin{bmatrix} 1 & 0 & \Delta t & 0\\ 0 & 1 & 0 & \Delta t\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1\\ \end{bmatrix}& eeimg=&1&&&/p&&p&在验证方案的初期,我们让底盘静止不动,因此机器人自身坐标系和绝对坐标系就等价了。&/p&&h2&&b&4.3 观测量的选择&/b&&/h2&&p&在确定了坐标系和运动模型后,我对观测量的选择也做出了一些测试。&/p&&p&由前面的讨论可以看出,卡尔曼滤波器的观测值和状态量没有直接的关系,例如我可以用一个雷达测量角度然后转化成距离的状态量。对我们的机器人云台系统来说,实际所采用的传感器只有一个——相机,对图像信息经过诸如PNP解算之类的算法得到距离和长度信息,因此相机可以看成一个坐标传感器,但是如果我对距离做差分就可以得到速度信息,这样我们就获得了一个额外的速度传感器了。那么自己计算的速度信息到底有没有用呢,还是用实战的方法来检测一下。&/p&&h2&&b&1.观测量选择为x,y坐标&/b&&/h2&&p&只输入x,y,由卡尔曼滤波器自行估算速度&/p&&p&观测矩阵为&/p&&p&&img src=&http://www.zhihu.com/equation?tex=H%3D%5Cbegin%7Bbmatrix%7D+1+%26+0+%26+0+%26+0+%5C%5C+0+%26+1+%26+0+%26+0+%5C%5C+%5Cend%7Bbmatrix%7D%5C%5C& alt=&H=\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ \end{bmatrix}\\& eeimg=&1&&&/p&&p&x方向滤波结果如下,图上方的两条是位置曲线,下方是速度曲线&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5a03ad3ed9a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&926& data-rawheight=&453& class=&origin_image zh-lightbox-thumb& width=&926& data-original=&https://pic3.zhimg.com/v2-5a03ad3ed9a_r.jpg&&&/figure&&h2&&b&2.观测量包含全部状态&/b&&/h2&&p&自行计算v_x,v_y,根据加速度限制对跳变进行抑制,将全部状态输入至卡尔曼滤波器&/p&&p&观测矩阵为单位对角矩阵,测量误差矩阵设置为 &img src=&http://www.zhihu.com/equation?tex=R%3D+%5Cbegin%7Bbmatrix%7D++%26+0+%26+0%5C%5C+0+%26++%26+0%5C%5C+0+%26+0+%26+1%5C%5C+0+%26+0+%26+0+%26+C+%5Cend%7Bbmatrix%7D%5C%5C& alt=&R= \begin{bmatrix} 2000 & 0 & 0 & 0\\ 0 & 2000 & 0 & 0\\ 0 & 0 & 10000 & 0\\ 0 & 0 & 0 & 10000\\ \end{bmatrix}\\& eeimg=&1&&&/p&&p&x方向结果如下&/p&&figure&&img src=&https://pic1.zhimg.com/v2-1af17ff54ecc4bbc81d49c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&926& data-rawheight=&453& class=&origin_image zh-lightbox-thumb& width=&926& data-original=&https://pic1.zhimg.com/v2-1af17ff54ecc4bbc81d49c_r.jpg&&&/figure&&p&&br&&/p&&p&由两张图可以看出,在速度波动范围大致相同的情况下,第二种方案的延迟明显较小。&/p&&p&第二种方案由于自行计算了目标在x、y方向的速度,然后利用已有的先验知识对速度跳变进行抑制,有效的排除了噪声数据对滤波结果的影响,所以得到的效果较好。&/p&&h2&&b&4.4 运动预测&/b&&/h2&&p&到目前为止,我们已经利用卡尔曼滤波将云台的控制信号优化到一个令人满意的地步了,但是在实际测试过程中发现在打击动态目标时的命中率还是很低,具体表现是子弹始终落在移动目标后方 ,究其原因就是因为没有考虑到系统的延迟。&/p&&p&最简单的运动预测就是认为目标是匀速移动,用速度乘上系统的延迟时间,就得到了超前量,然后加到云台角度的设定上。在我们刚才设置的运动模型中,包含有速度状态,因此可以直接从卡尔曼的输出结果中调用。&/p&&p&实际平台跑出来的结果如下所示&/p&&figure&&img src=&https://pic2.zhimg.com/v2-8afbfbc8a86b61_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1339& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1339& data-original=&https://pic2.zhimg.com/v2-8afbfbc8a86b61_r.jpg&&&/figure&&p&蓝色线为加了简单的运动预测后结果,可以看出确实做到了超前原始控制信号的,但是在目标转向出不可避免的产生了超调,这也是运动预测最容易产生的后果,所以实际效果还需要进行取舍和优化。&/p&&h2&&b&4.5 相机转移到云台上&/b&&/h2&&p&前面所有的测试都是把相机放在底盘上进行的,这是为了保持相机相对稳定,能够很简单的获取目标相对于地面的真实运动情况,但是在实战中,不仅要求能够准确命中目标,还要能够有效的躲避敌人的攻击,例如最常用的扭腰,在这种情况下,底盘的运动幅度甚至会远大于云台;此外,为了保证相机视角的迅速切换,也要求相机被安装在云台上。&/p&&p&相机跟随云台一起运动,最本质的区别就是去掉了相机相对于地面静止不动的前提。根据之前的推论,想要准确的跟踪目标就需要在绝对坐标系下进行计算,因此需要利用云台的姿态和与云台上相机获取的目标坐标进行处理,得到其在绝对坐标系下的位置和速度。但是该方案需要对机器人自身做出准确迅速的定位,难以实现。&/p&&p&一种可行的方案是将相机坐标系下计算出的目标位置(角度量)加到云台自身实际角度上(考虑到延迟,需要使用几十ms前的历史数据),然后进行卡尔曼滤波,再超前推算一小段时间得到云台的目标位置。实测该方案能够取得比较好的控制效果。&/p&&p&附两段测试视频:&/p&&p&第一个是四月份的第一版效果,没有加入射击时机的控制&/p&&p&第二个是接近完成的版本,敌我双方互相移动的情况下打击效果几乎一致。&/p&&a class=&video-box& href=&http://link.zhihu.com/?target=https%3A//www.zhihu.com/video/821504& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic1.zhimg.com/v2-92aeb65345ddab2666184.jpg& data-lens-id=&821504&&
&img class=&thumbnail& src=&https://pic1.zhimg.com/v2-92aeb65345ddab2666184.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/821504&/span&
&a class=&video-box& href=&http://link.zhihu.com/?target=https%3A//www.zhihu.com/video/101568& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic1.zhimg.com/80/v2-eeccb24f226e7040ee77bcc_b.jpg& data-lens-id=&101568&&
&img class=&thumbnail& src=&https://pic1.zhimg.com/80/v2-eeccb24f226e7040ee77bcc_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/101568&/span&
&h2&&b&5. 卡尔曼滤波器在STM32平台的实现和MATLAB仿真代码&/b&&/h2&&p&由于卡尔曼滤波运算过程涉及到大量的矩阵运算,有多种实现方法:&/p&&ol&&li&调用开源的矩阵运算库,效率较低&/li&&li&将矩阵运算拆开成基本的四则运算,扩展性很差,例如改变矩阵阶数就没办法用了,而且在遇到例如求逆运算的时候比较麻烦&/li&&li&调用STM32自带的DSP库中的矩阵运算功能,可以根据需求自行添加,简单高效。&/li&&/ol&&p&具体使用方法很简单,开启stm32的FPU,然后把需要用到的运算库文件包含到工程里面,然后就可以调用相应的函数进行运算了。&/p&&p&附录1:在stm32平台上运行的二阶卡尔曼滤波器&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&/* second-order kalman filter on stm32 */
#include &stm32f4xx_hal.h&
#include &arm_math.h&
#define mat
arm_matrix_instance_f32
#define mat_init
arm_mat_init_f32
#define mat_add
arm_mat_add_f32
#define mat_sub
arm_mat_sub_f32
#define mat_mult
arm_mat_mult_f32
#define mat_trans
arm_mat_trans_f32
#define mat_inv
arm_mat_inverse_f32
typedef struct
float raw_
float filtered_value[2];
mat xhat, xhatminus, z, A, H, AT, HT, Q, R, P, Pminus, K;
} kalman_filter_t;
typedef struct
float raw_
float filtered_value[2];
float xhat_data[2], xhatminus_data[2], z_data[2],Pminus_data[4], K_data[4];
float P_data[4];
float AT_data[4], HT_data[4];
float A_data[4];
float H_data[4];
float Q_data[4];
float R_data[4];
} kalman_filter_init_t;
void kalman_filter_init(kalman_filter_t *F, kalman_filter_init_t *I)
mat_init(&F-&xhat,2,1,(float *)I-&xhat_data);
mat_init(&F-&HT,2,2,(float *)I-&HT_data);
mat_trans(&F-&H, &F-&HT);
float *kalman_filter_calc(kalman_filter_t *F, float signal1, float signal2)
float TEMP_data[4] = {0, 0, 0, 0};
float TEMP_data21[2] = {0, 0};
mat TEMP,TEMP21;
mat_init(&TEMP,2,2,(float *)TEMP_data);
mat_init(&TEMP21,2,1,(float *)TEMP_data21);
F-&z.pData[0] = signal1;
F-&z.pData[1] = signal2;
//1. xhat'(k)= A xhat(k-1)
mat_mult(&F-&A, &F-&xhat, &F-&xhatminus);
//2. P'(k) = A P(k-1) AT + Q
mat_mult(&F-&A, &F-&P, &F-&Pminus);
mat_mult(&F-&Pminus, &F-&AT, &TEMP);
mat_add(&TEMP, &F-&Q, &F-&Pminus);
//3. K(k) = P'(k) HT / (H P'(k) HT + R)
mat_mult(&F-&H, &F-&Pminus, &F-&K);
mat_mult(&F-&K, &F-&HT, &TEMP);
mat_add(&TEMP, &F-&R, &F-&K);
mat_inv(&F-&K, &F-&P);
mat_mult(&F-&Pminus, &F-&HT, &TEMP);
mat_mult(&TEMP, &F-&P, &F-&K);
//4. xhat(k) = xhat'(k) + K(k) (z(k) - H xhat'(k))
mat_mult(&F-&H, &F-&xhatminus, &TEMP21);
mat_sub(&F-&z, &TEMP21, &F-&xhat);
mat_mult(&F-&K, &F-&xhat, &TEMP21);
mat_add(&F-&xhatminus, &TEMP21, &F-&xhat);
//5. P(k) = (1-K(k)H)P'(k)
mat_mult(&F-&K, &F-&H, &F-&P);
mat_sub(&F-&Q, &F-&P, &TEMP);
mat_mult(&TEMP, &F-&Pminus, &F-&P);
F-&filtered_value[0] = F-&xhat.pData[0];
F-&filtered_value[1] = F-&xhat.pData[1];
return F-&filtered_
&/code&&/pre&&/div&&p&附录2:一阶卡尔曼滤波与低通滤波器对比&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&%% 一阶卡尔曼滤波与低通滤波器对比
% 初始化参数
ts = 0.001;
% 采样时间
% 实际信号帧率
noise_mag = 1;
% 设置噪声幅度为1
t = 0:ts:2-
t2 = 0:delta_t:2-delta_t;
N = length(t);
% 序列的长度
sz = [1,N];
% 信号需开辟的内存空间大小
x = 20*sin(2*pi*t);
% 真实位置
noise = noise_mag*randn(1,N*ts/delta_t);
% 测量白噪声
z = interp1 (t2,20*sin(2*pi*t2)+noise,t,'previous');
% 信号叠加噪声后重新采样
% 假设建立的模型噪声方差
% 位置测量方差估计
n=size(Q);
m=size(R);
% 分配空间
xhat=zeros(sz);
% 后验估计
% 后验方差估计
xhatminus=zeros(sz);
% 先验估计
Pminus=zeros(n);
% 先验方差估计
K=zeros(n(1),m(1));
% Kalman增益
% 估计的初始值都为默认的0,即P=[0 0;0 0],xhat=0
for k = 2:N
% 时间更新过程
xhatminus(:,k) = A*xhat(:,k-1)+B;
Pminus= A*P*A'+Q;
% 测量更新过程
K = Pminus*H'/( H*Pminus*H'+R );
xhat(:,k) = xhatminus(:,k)+K*(z(k)-H*xhatminus(:,k));
P = (I-K*H)*P
F = filter_
z_lp = filter(F,z);
x_k = cat(1,x(1:1950),xhat(1:1950));
distance_k = pdist(x_k); % 计算两个向量的欧氏距离作为偏差的判定
x_lp = cat(1,x(1:1950),z_lp(1:1950));
distance_lp = pdist(x_lp);
x_z = cat(1,x(1:1950),z(1:1950));
distance_z = pdist(x_z);
plot(t,x(1,:),'g-');
plot(t,z);
plot(t,xhat(1,:),'r-')
plot(t,z_lp,'k-');
legend('truth',['measurement ',num2str(distance_z)], ['kalman filter ',num2str(distance_k)], ['lowpass ',num2str(distance_lp)]);
xlabel('time(s)');
function Hd = filter_custom
% Chebyshev Type II Lowpass filter designed using FDESIGN.LOWPASS.
% All frequency values are in Hz.
Fs = 1000;
% Sampling Frequency
Fstop = 20;
% Stopband Frequency
Astop = 80;
% Stopband Attenuation (dB)
% Construct an FDESIGN object and call its CHEBY2 method.
= fdesign.lowpass('N,Fst,Ast', N, Fstop, Astop, Fs);
Hd = design(h, 'cheby2');
&/code&&/pre&&/div&&p&&/p&
0. 前言 背景在5月份结束的ICRA RoboMaster人工智能挑战赛中,大疆创新机器人队几乎横扫所有参赛队伍,取得优异成绩。自动机器人凝聚了算法组在定位、导航、决策、目标识别等各个方面无数心血。作为一个嵌入式软件组的成员,今天我来谈谈我在云台控制和目标…
&p&谢邀,加班无聊,答题磨洋工。&/p&&p&我觉得PID美就美在它不仅是一种常用的控制器,更是一种普适的控制思想。就连很多所谓“先进”控制方法,里面都有PID的影子。&/p&&p&比如全状态反馈。如果受控对象是2阶系统,最后控制器的实现就是PD;如果再加个补偿静差的积分环节,咦,变成了PID!(ˊo????o???`)&/p&&p&还是全状态反馈,如果受控对象是高阶的,那么它常和串级PID是等价的。比如无人机就有电流环转速环姿态环位置环等等多个PID,就是为了去把这个5阶的系统分解开来控制。化繁为简,调试方便。&/p&&p&再比如你有被控对象的模型,所以你不再用I去积分整体的跟踪误差,而只积分受控对象和模型之间的残差,PID就升级为了传说中的自抗扰控制(ADRC),响应速度更上一层楼。&/p&&p&比如MPC,在没有“硬约束”的条件下,最终控制器形式和状态反馈是等价的,其实也就是个(串级)PID。甚至一般的MPC建模都不考虑补偿扰动,就是一个(串级)PD。。&/p&&p&再比如MRAC,其实是个自适应的PD。实际用的时候怕外扰让自适应不收敛,还得再加积分,尽可能把外扰补偿掉。你看,又回到了PID!&/p&&p&研究了一大圈,你发现不光是工业界搞PID,搞控制理论的人也不过是在搞PID,这大概就是它的美吧。?( ? )?&/p&
谢邀,加班无聊,答题磨洋工。我觉得PID美就美在它不仅是一种常用的控制器,更是一种普适的控制思想。就连很多所谓“先进”控制方法,里面都有PID的影子。比如全状态反馈。如果受控对象是2阶系统,最后控制器的实现就是PD;如果再加个补偿静差的积分环节,…
&p&但凡您有点理想有点报复,家里又无法在大城市买房对你给予很大帮助,自己又希望能在一二线城市混下去,当年又稀里糊涂选了这个专业能早点去转就转了吧,就这行业一定会让您失望,您要在四五线小城混个维护小差朝九晚五老婆孩子有滋有味当我没说&/p&&p&。。。。。。。。。。。。。。。。&/p&&p&今天大学宿舍的同学聚会,坐一起聊了好多,决定更新一波,再跟大家说说吧,坐标帝都。大家都已是职场老鸟了,基本分两拨,一波毕业转IT的,一波我这样本行电气自动化的,大家上学时候水平都差不多,但是眼前已经被IT的同学干成了渣,我们做电气的基本月薪均值在一万到一万五(我们这几个要不是帝都土著估计早租不起房了),IT的月收入均值三万左右,当然这是毕业多年后,一开始我三千他们也就五千。一个做手机的同学说现在他们公司招聘面试基本一个本科生一张口就是一万五的月薪,硕士都要两万,当然人家是比较好的学校,有时候他说自己都觉得这行业好虚,一两年不跳槽都会发现新来的员工工资好高,但是事实就是这样,公司也同意给这样的高薪。电气自动化是不是到了末路,自己判断吧,盗用一张各大互联网公司起薪。您要搞比较热门的方向研究算法,AI啥的起薪比这个多得多,多到贫穷限制了我的想象力&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-11aa312f82cc536d16bb1b_b.jpg& data-rawwidth=&428& data-rawheight=&424& data-size=&normal& data-default-watermark-src=&https://pic3.zhimg.com/50/v2-11aa312f82cc536d16bb1b_b.jpg& class=&origin_image zh-lightbox-thumb& width=&428& data-original=&https://pic3.zhimg.com/50/v2-11aa312f82cc536d16bb1b_r.jpg&&&/figure&&p&………………………以下是原答案……………………………分割线。。。。。。。&/p&&p&&br&&/p&&p&身为一个自动化屌丝,入坑多年,看完几千赞的答案表示不服,前面几位拔的还不够彻底,毕竟好几位都是食物链中上游的大神985研究僧,目前电气自动化这行业确实算不上什么末路但是也不会有大发展,进入稳定期了而且随时会被一个人划时代的玩意取代,什么特高压输电啥高大上的玩意儿,和绝大多数本科生根本没半毛钱关系?进电网啥的倒是不错,问题是您也得进得去,先有个有权势的爹,或者念个985的研究僧再说吧。然后绝大多数人都会从事电气应用设计,画个图盘个柜,弄个PLC啥的,不巧我就是干这个的,这行业苦逼又不赚钱,跑个现场出差好几个月,回不了家,女朋友都没一个,再说现场的环境也比较糟糕,有的时候凳子都没一把,线盘子凑和来,一家世界500强企业,产品相当贵哦&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-e24fcbfb90d_b.jpg& data-rawwidth=&1280& data-rawheight=&1707& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/50/v2-e24fcbfb90d_r.jpg&&&/figure&&p&&br&有的项目零下20多度外面工作一整天,累了就坐地上,查线测试IO,改两颗线手都要冻掉了&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-7d92b4e7fddfe6da8a72_b.jpg& data-rawwidth=&1707& data-rawheight=&1280& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic4.zhimg.com/50/v2-7d92b4e7fddfe6da8a72_r.jpg&&&/figure&&p&&br&&/p&&p&下过煤矿,地下几千米,每次一开采煤机,头顶掉下点煤,胆都吓破了,只想干完赶紧跑,还有一般煤矿都在一些鸟不拉屎的地方,干完活附近村里一住,30一晚,小强老鼠陪你睡不会寂寞喔&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-fdaaaa3bf15fff1fa9e28fd9_b.jpg& data-rawwidth=&1280& data-rawheight=&1707& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/50/v2-fdaaaa3bf15fff1fa9e28fd9_r.jpg&&&/figure&&p&&br&有一次和一个老外检查液压站,差点被上面的工作人员掉下来的管钳子砸死,现在想想当时再往前一米不死也残废。&/p&&p&来看看现场的饭菜,有的地方就一个菜,辣椒炒洋葱,再发一个馒头。别嫌不好,饿着肚子加班到半夜也是有的。&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-0a9ce0f22cf881b32a4d5_b.jpg& data-rawwidth=&1707& data-rawheight=&1280& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic1.zhimg.com/50/v2-0a9ce0f22cf881b32a4d5_r.jpg&&&/figure&&p&&br&我们公司没西门子ABB什么的名气大,但是西&br&门子,ABB工资也比我们高不了哪里去,500强电气公司offer我也拿过,工程师年薪15W一大关,如今帝都一个计算器应届本科生起薪都8-10K了,3年后分分钟教我怎么做人,现在靠干电气的收入在帝都买房,那是做梦,跟我念,做!梦!!现在互联网是风口,风来了猪都能飞,当然我不是说说搞互联网的都是猪,我只是希望后来人能乘着这股风混的好一些,至少能在办公室吃着外卖喝着咖啡体面的加班。不要以为互联网才996,我们出差工作原则上也是要一周工作6天,我说原则上是因为电气这块现场调试经常会加班,一个月不休息也是有的,因为基建,机械,之前各种扯皮耽误的时间都要压到最后环节电气头上,甲方一群大boss站你后面看着你调试,那压力可想而知,就高赞张工那个答案,配图看了我都想笑,有一张调试开关柜的,那哥们跟我一样惨逼,蹲着干活您膝盖疼么?再看那个三峡水坝的图,干水利的同学都是驴友,住工棚,吃大锅饭这是基本生存能力,一个项目一干几年希望你女友等得起你,你的孩子慢点长大,配的电网那图输送电设计发电啥的跟你一个小本科生有啥关系,您先打破头能进电网电力设计院再说,一般您就是设备供应商,或者干个电力维护,希望爬塔架,架线,送高压电时候注意安全。&br&再来看看别人的回答,看第一次想笑,再看想哭&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-26cdce84f4cbbb0c71e5f0ff06dbfcb2_b.jpg& data-rawwidth=&1242& data-rawheight=&1113& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1242& data-original=&https://pic4.zhimg.com/50/v2-26cdce84f4cbbb0c71e5f0ff06dbfcb2_r.jpg&&&/figure&
但凡您有点理想有点报复,家里又无法在大城市买房对你给予很大帮助,自己又希望能在一二线城市混下去,当年又稀里糊涂选了这个专业能早点去转就转了吧,就这行业一定会让您失望,您要在四五线小城混个维护小差朝九晚五老婆孩子有滋有味当我没说。。。。。。…
&p&第一个问题:是有较大差距。&/p&&p&ABB 2009年放出的视频:&/p&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/926080& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic4.zhimg.com/80/v2-ae6e25e06a1bc8a1cb007b_b.jpg& data-lens-id=&926080&&
&img class=&thumbnail& src=&https://pic4.zhimg.com/80/v2-ae6e25e06a1bc8a1cb007b_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/926080&/span&
&/a&&p&Yaskawa 2012年放出的视频:&/p&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/145088& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic1.zhimg.com/80/v2-5afb92eafbd6caf6555f0dc_b.jpg& data-lens-id=&145088&&
&img class=&thumbnail& src=&https://pic1.zhimg.com/80/v2-5afb92eafbd6caf6555f0dc_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/145088&/span&
&/a&&p&这两个视频,都是一样,高速情况下的多轴同步运动控制,任何一轴速度没跟上,就没法完成这个任务。国内的话,随便看看各种机器人展就知道差距了。&/p&&p&&br&&/p&&p&第二个问题:这个差距主要是控制技术,因为电机、减速器大家都可以买一样的。&/p&&p&&br&&/p&&p&造成这种现状的原因有很多,要想立马追上也不容易,国内本体商只能一步步艰难地发展吧。希望国内机器人未来能够凭借市场优势慢慢追上,不能浮躁,更不可能弯道超车。&/p&&p&&br&&/p&&p&原来说的是七轴,没看清题目。但是我认为结论是一样的,七轴相对于六轴没有太多区别。能做好六轴的,要做好七轴也没太大壁垒。&/p&
第一个问题:是有较大差距。ABB 2009年放出的视频:Yaskawa 2012年放出的视频:这两个视频,都是一样,高速情况下的多轴同步运动控制,任何一轴速度没跟上,就没法完成这个任务。国内的话,随便看看各种机器人展就知道差距了。 第二个问题:这个差距主要是…
&figure&&img src=&https://pic2.zhimg.com/v2-00ad2f0f4f43_b.jpg& data-rawwidth=&1619& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1619& data-original=&https://pic2.zhimg.com/v2-00ad2f0f4f43_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-72bfee6443aacfeb77e9546_b.jpg& data-rawwidth=&500& data-rawheight=&334& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic1.zhimg.com/v2-72bfee6443aacfeb77e9546_r.jpg&&&/figure&&p&
YUMI 装配, ABB
&/p&&p&现代工业社会,几乎每一个产品都是由多个零件组装而来。拿大家比较熟悉的苹果手机举个例子,里面大的模块有34个,这些模块来自多个不同的国家,见下图。那大家有没有留意过绝大多数的iphone上都有Made
in China或者Assembled
对的,因为最后的一个步骤组装是在中国完成的(苹果手机的组装都是交由富士康代加工),这也是我们今天要谈的主题:柔性装配。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5ba66eb88ac28d46f65004e_b.jpg& data-rawwidth=&1070& data-rawheight=&5349& class=&origin_image zh-lightbox-thumb& width=&1070& data-original=&https://pic3.zhimg.com/v2-5ba66eb88ac28d46f65004e_r.jpg&&&/figure&&p&苹果手机分解图(来自SCMP,&a href=&https://link.zhihu.com/?target=http%3A//www.scmp.com/infographics/article/2017191/iphone-sum-parts& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&scmp.com/infographics/a&/span&&span class=&invisible&&rticle/2017191/iphone-sum-parts&/span&&span class=&ellipsis&&&/span&&/a&)&/p&&p&首先,可能有人要问了:苹果逼格这么高的公司,对产品质量把控这么严格,为啥要让富士康代工手机的装配呢?为什么不搞个黑科技直接自动化装配呢?这得从装配的逼格说起了,首先推荐大家看一篇公差与配合100问(&u&&a href=&https://link.zhihu.com/?target=http%3A//chuansong.me/n/9& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&公差与配合为何是机械行业最重要的,看了这100问就知道了!满满的干货!_金属加工_传送门&/a&&/u&),了解下为什么公差与配合是如此重要。下面的图是一些典型的插销入孔的示意图,看起来也平淡无奇对不对。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-c95d0c8e5ee4dfda26c99455_b.jpg& data-rawwidth=&264& data-rawheight=&98& class=&content_image& width=&264&&&/figure&&br&&p&但是如果我们放大了看,每一个装配基本上差不多都是“round
peg in square hole”,具体是啥意思,可以从下图体会下。如果还不能体会,放慢动作看下你插USB到电脑时的手部调整动作。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-166f10b8ca76_b.jpg& data-rawwidth=&500& data-rawheight=&375& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic4.zhimg.com/v2-166f10b8ca76_r.jpg&&&/figure&&p&为什么会发生这样情形呢?主要有两个原因:1.
本身每个零件制造加工都有误差,很多装配又是过盈配合,这就需要很高的装配精度。2.
在装配时,无论是人还是机器,都有一定的定位误差。所以就经常发生“卡死”的现象,为了解决这个问题,N(30)多年前的MIT
&a href=&https://link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/Charles_Stark_Draper_Laboratory& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Charles
Stark Draper Laboratory&/a&
提出了设计了一种RCC装配(柔顺中心装置),长得像下图这样,当装配的两个零件发生偏差时,该装置可以被动柔顺的调整装配中心位置,从而完成装配。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d6b983a7e2_b.jpg& data-rawwidth=&420& data-rawheight=&210& class=&content_image& width=&420&&&/figure&&p&
Center Compliance&/p&&p&但是显然RCC也有缺点,它是被动的调整装置,只能对一部分的装配零件有效果,换了一个产品,就需要重新选择一个RCC。这在大规模生产时代是可以接受的,但是目前的制造也越来越朝着小规模定制的方向发展,每一个产品的生命周期越来越来,显然我们需要更加柔性的装配方式,能够快速适应不同的零件装配。&/p&&p&柔性装配方案的一个自然选择就是人工装配了,人是会根据装配时的手部的感觉来调整装配零件的位置和方位的,应该很多人有这个体会。富士康选择的是这个方案,这是建立在便宜的劳动力的基础上的,而且产品一致性的确是个大问题,显然不是长久之路。从成本角度,富士康每一个手机的成本被压缩到7美元,随着人力成本的升高,机器人成本的降低,这部分终将被机器人取代。&/p&&p&“The
average sale price of Apple's iPhone 4 is $560. Of that, $7 covers
the cost of manufacturing, $178 goes to components, $7 is taken by
Foxconn, and Apple walks away with the rest, or $368.”
(&a href=&https://link.zhihu.com/?target=http%3A//www.theatlantic.com/technology/archive/2011/08/infographic-how-much-does-each-piece-of-apples-iphone-cost/243709/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Infographic: How Much Does Each Piece of Apple's iPhone Cost?&/a&)&/p&&p&另外一个方案就是机器人柔性装配了,如果我们看下RCC,
它的核心作用就是根据作用力来被动调整装配中心。那么有没有办法让机器人主动调整呢?这时该我们的机器人力控算法华丽登场了,力控算法本身不是那么炫酷,但是怎么让力控具有智能性才是核心。小孩子也可以把积木塞到孔里面,但是显然智能性不够;普通人也可以去打磨航空叶片,但是显然也不可能是符合要求的。怎么样从任务的要求,生成最智能的力控算法,这是我们一直在追求的“大道”。此处可以毕业一群博士和硕士,如果你需要实习,请与我们联系。如果感兴趣,请继续关注我们接下来的工作。&/p&&p&下面我们给个简单的例子,首先要说明一点,目前大部分的工业机器人都是没有“感觉的”,
插销入孔这个动作,本来机器人只需要沿着规划的轨迹(途中粉红虚线)向下运动即可,但是如果由于定位或者加工误差,发生了一个很小的角度或者几何误差(图中为了说明将误差进行了放大),销可能首先与孔的某一个侧内壁接触,发生了上面所说的“卡死”现象,这个时候如果强行装配,通常会破坏工件或者对机器人造成不可逆的伤害。这个时候力控的作用就显现出来了,核心思想直观的表白就是:&b&当发生图中红色箭头的力,就进行蓝色箭头的角度调整&/b&。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-c79dbea885f5bd5f32d852f_b.jpg& data-rawwidth=&239& data-rawheight=&190& class=&content_image& width=&239&&&/figure&&p&
但是,我们都知道但是之后才是最重要的。&/p&&p&但是图中红色箭头所表达的力是无穷中情况的,对每一个情况我们都要对应写一个if
else吗?即如果发生了X力,就做Y调整。(目前很多厂家真是这么做的,俗称hard
code或者hacking)。&/p&&p&现在我们换个角度想想,人的大脑是怎么工作的,我们显然没有写下这么多if
else。(虽然有时候我们也用这种方式,比如如果我有一个亿,我就干点啥。)人在做这些事情的时候,通常是一个基于经验的过程(experience-based),
遇到一个新的情况,通常会在已知的数据库(大脑记忆经验)中&b&搜索&/b&一下,套一下已有的经验。所以装配过程就这样装换成了一个搜索问题,也就是机器学习擅长的领域了。到底怎么去建立这个数据库,怎么去有效搜索,还是有很多工作要做的,感兴趣的可以去慢慢领悟琢磨。&/p&&p&如果你或者你的朋友对机器人感兴趣, 欢迎关注武汉库柏特科技。如果你对机器人的种种开脑洞的应用感兴趣,特别是目前其他人还做不了的应用,欢迎跟我们联系。&/p&&p&我们诚挚的欢迎每一个有激情的青年的加入!&/p&
YUMI 装配, ABB 现代工业社会,几乎每一个产品都是由多个零件组装而来。拿大家比较熟悉的苹果手机举个例子,里面大的模块有34个,这些模块来自多个不同的国家,见下图。那大家有没有留意过绝大多数的iphone上都有Made
in China或者Assembled
&figure&&img src=&https://pic2.zhimg.com/v2-fc5afc071a676a91da4a2df9_b.jpg& data-rawwidth=&883& data-rawheight=&680& class=&origin_image zh-lightbox-thumb& width=&883& data-original=&https://pic2.zhimg.com/v2-fc5afc071a676a91da4a2df9_r.jpg&&&/figure&&p&交流异步电动机在当今的工业生产中起着重要的作用,而对电机的调速与控制往往使用变频器来完成。在日常生产中,我们希望电机的性能是安全的、可靠的。这种安全可靠表现在两个方面:1)在紧急情况下能够迅速制动;2)当不满足安全条件时不能启动。由于电机的控制来自变频器,因此变频器必须满足相应的安全要求。在变频器的调试或使用过程中,有时候会发现变频器处于“安全停止”的状态。什么是“安全停止”呢?在什么情况下变频器会处于“安全停止”的状态呢?今天这篇文章,我们就以SEW公司的MDX60B/61B系列变频器为例,来谈谈变频器的“安全停止”。 &/p&&p&“安全停止”的英文名称是“Safe Torque OFF(STO)”,字面翻译为“安全转矩关断”。“安全停止”是一种状态,而非故障。当安全停止(STO)功能被激活时,变频器切断对电机的电能供给,电机失去电能因而无法向外输出转矩,也就无法启动。&/p&&p&在SEW的MDX60B/61B系列变频器中,若其安全停止功能被激活,7段数码管会显示&U&,并且在手柄的面板会显示“安全停止”字样,如下图:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-f72cd70f5a168d0b3e7d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&313& data-rawheight=&685& class=&content_image& width=&313&&&/figure&&p&变频器的7段数码管的含义如下表:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-84922ffccaf06dfa16f0ad4a1822107c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&403& data-rawheight=&495& class=&content_image& width=&403&&&/figure&&p&那么,安全停止功能是怎样被激活的呢?&/p&&p&SEW的MDX60/61B系列变频器内部集成了安全继电器(Safety contact),可以用来禁止或激活安全停止功能。安全继电器的接线端子为X17。当X17的4号端子(X17:4)连接DC 24V的正极,并且3号端子(X17:3)连接DC 24V的负极时,安全停止功能&b&被禁止&/b&。如果X17:4没有DC +24V的输入,则安全停止功能&b&被激活&/b&。&/p&&p&也就是说,在变频器正常工作之前,必须给X17:4提供DC 24V的输入信号,否则变频器就会处于安全停止状态而无法工作。&/p&&p&安全继电器X17的端子定义见下面的表格:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d3d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&642& data-rawheight=&233& class=&origin_image zh-lightbox-thumb& width=&642& data-original=&https://pic4.zhimg.com/v2-d3d_r.jpg&&&/figure&&p&除了使用变频器自带的安全继电器,MDX60B/61B还提供专用安全模块:MOVISAFE DCSxB系列。专用安全模块可以提供满足不同安全等级的选项,有诸多安全功能,比如:STO(Safe Torque Off)、SS1(Safe Stop 1)、SS2(Safe Stop 2)、SOS(Safe Operating Stop)、SLS(Safely Limited Speed)等等,有机会我们详细聊聊。&/p&&p&绝大多数的变频器其实都具有安全停止的功能,比如西门子G120系列就可以通过故障安全(fail-safe)输入的端子或者PROFIsafe来激活安全停止功能。不过安全停止功能的配置需要使用操作面板或者STARTER软件,相对复杂一些。&/p&&p&好了,关于变频器安全停止(安全转矩关断,STO)就先聊到这里,欢迎登陆官网(&a href=&https://link.zhihu.com/?target=http%3A//www.founderchip.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&founderchip.com&/span&&span class=&invisible&&&/span&&/a&)浏览更多技术类文章。&/p&&p&&/p&
交流异步电动机在当今的工业生产中起着重要的作用,而对电机的调速与控制往往使用变频器来完成。在日常生产中,我们希望电机的性能是安全的、可靠的。这种安全可靠表现在两个方面:1)在紧急情况下能够迅速制动;2)当不满足安全条件时不能启动。由于电机的…
&p&是否浓厚很难说,不过我在年工余时间做了一个写生机器人,你坐在前面,就会观察你,然后埋头苦干地用笔为你画一张素描。&/p&&p&它用 Intel RealSense 做脸部追踪,Intel Edison 控制云台和机器臂,机器臂也是自己设计的。当然,绘画算法和机器臂的运作也是自己实现的。&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-2227224aab303f50deea51da1e4ff436_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1191& data-rawheight=&842& class=&origin_image zh-lightbox-thumb& width=&1191& data-original=&https://pic3.zhimg.com/50/v2-2227224aab303f50deea51da1e4ff436_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/50/v2-94d3f07bb2b88e7efa9f615d3b4d7996_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&4160& data-rawheight=&3120& class=&origin_image zh-lightbox-thumb& width=&4160& data-original=&https://pic4.zhimg.com/50/v2-94d3f07bb2b88e7efa9f615d3b4d7996_r.jpg&&&/figure&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/804288& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic1.zhimg.com/80/v2-c19bbcd23f97d4a4883860_b.jpg& data-lens-id=&804288&&
&img class=&thumbnail& src=&https://pic1.zhimg.com/80/v2-c19bbcd23f97d4a4883860_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/804288&/span&
&/a&&figure&&img src=&https://pic3.zhimg.com/50/v2-1cac90ae2f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&4160& data-rawheight=&3120& class=&origin_image zh-lightbox-thumb& width=&4160& data-original=&https://pic3.zhimg.com/50/v2-1cac90ae2f_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/50/v2-1e5a3ea9c918d76b4707fbfb210c25ad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&4160& data-rawheight=&3120& class=&origin_image zh-lightbox-thumb& width=&4160& data-original=&https://pic1.zhimg.com/50/v2-1e5a3ea9c918d76b4707fbfb210c25ad_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/50/v2-30c051e39f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1185& data-rawheight=&495& class=&origin_image zh-lightbox-thumb& width=&1185& data-original=&https://pic4.zhimg.com/50/v2-30c051e39f_r.jpg&&&/figure&&p&虽然和最初的构想还有不少距离,但能完成到这程度我也满足了。&/p&&p&我从中自学了不少新知识和技能,第一次学习使用 SolidWorks,第一次设计机械,第一次组装,第一次使用微控制器等等??&/p&&p&此小项目获得公司一个内部比赛的几个奖项,最近获邀撰文回顾,写好后也放到&a href=&https://zhuanlan.zhihu.com/milocode& class=&internal&&专栏&/a&吧。&/p&&hr&&p&更新1:兑现承诺,在飞机上先写了上篇 &a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&《写生机器人》制作经验分享(上)&/a&。&/p&
是否浓厚很难说,不过我在年工余时间做了一个写生机器人,你坐在前面,就会观察你,然后埋头苦干地用笔为你画一张素描。它用 Intel RealSense 做脸部追踪,Intel Edison 控制云台和机器臂,机器臂也是自己设计的。当然,绘画算法和机器臂的运作也…
&figure&&img src=&https://pic2.zhimg.com/v2-d1d140dc1bec8eb9738a99_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic2.zhimg.com/v2-d1d140dc1bec8eb9738a99_r.jpg&&&/figure&&h2&人型机器人的未来与标杆&/h2&&p&日,机器人学界在英国开着所谓的&b&Humanoids&/b&学术会议,Boston Dynamics又站出来狠狠地打了整个学术界的脸:&b&其实我想说,在座的各位都是垃圾&/b&。。&/p&&hr&&p&回顾一下新的Atlas的视频有什么:&/p&&p&Youtube视频链接如下:(&a href=&http://link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3DfRj34o4hN4I& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&youtube.com/watch?&/span&&span class=&invisible&&v=fRj34o4hN4I&/span&&span class=&ellipsis&&&/span&&/a&)&/p&&p&(&b&文章最后也插入了视频,方便那些不便翻墙的&/b&)&/p&&p&先来看看最精彩的:一个作为正常人且不怎么锻炼的我,做不到的漂亮后空翻:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-1dfa2c814c2db737bc2f271d6c917bbc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic1.zhimg.com/v2-1dfa2c814c2db737bc2f271d6c917bbc_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-189e4f789a314e12f6ede825c542f2bf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic4.zhimg.com/v2-189e4f789a314e12f6ede825c542f2bf_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-6f0a6b9aeedea0a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic3.zhimg.com/v2-6f0a6b9aeedea0a_r.jpg&&&/figure&&p&&b&你还想让我说什么。。。&/b&&/p&&p&再来看看开胃菜:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-f038ea4d1eb41865dcc30aede28400ea_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic3.zhimg.com/v2-f038ea4d1eb41865dcc30aede28400ea_r.j

我要回帖

更多关于 减小随机误差的方法 的文章

 

随机推荐