我发现已经有人在室内做了基于激光雷达的无人机的定点,TBUS

我发现已经有人在室内做了基于激光雷达的无人机的定点,TBUS,这个我之前在B站看过,而且他们还配了实际无人机用激光雷达定点的效果视频

 

他们也有个TB店,不过都巨贵无比,基本没有买的可能性。

 

 

下面摘自:https://blog.csdn.net/LINGTUO_TBUS/article/details/105507741

 

室内无源定位—激光SLAM无人机上的飞行测试

 

L菌的小跟班 2020-04-14 12:23:20 258 收藏 1

分类专栏: 激光SLAM

最后发布:2020-04-14 12:23:20首发:2020-04-14 12:23:20

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/LINGTUO_TBUS/article/details/105507741

版权

 

室内无源定位—激光SLAM无人机上的飞行测试

 

开篇

关于无人机、无人车的室内定问题一直是一个老大难问题,目前的定位方案分为外部定位自主定位,其中,外部定位方案已经相对成熟,例如UWB、wifi、蓝牙等都是非常稳定的,但是对于自主定位技术,主要包括激光SLAM、视觉SLAM(VSLAM)、超声波等其他测距仪,这些技术相对还不够成熟稳定,应用的也不多。

SLAM是近几年来大热的话题,其中激光SLAM更是在智能机器人领域得到了相对广泛的应用,比如扫地机器人,无人车等。但是,对于无人机这种非二维平面的运动物体来讲,要做到稳定的SLAM定位就比较难了(我们曾花费大量时间尝试运用开源算法实现,从环境搭建开始一步步······后面会介绍为什么不用),鉴于此,我们跳脱出目前的开源SLAM,从0开始构建自己的激光SLAM算法——TSLAM。

关于开源SLAM-Cartographer的无人机飞行测试总结

先说一下目前市面上比较出名的开源slam项目吧:

  • Cartographer
  • Hectorslam
  • Gmapping

首先,Gmapping是基于EKF滤波的slam算法,而Cartographer和Hectorslam都是基于非线性优化的,现在用EKF来做slam的已经很少了,绝大多数还是使用最小二乘。

Cartographer是有后端的slam算法,而Hectorslam是无后端的,前者更适用于以建图为重点的应用,后者更适合以定位为重点的应用。

我们早些时候就使用Cartographer在无人机上做过很多实验了,但是却存在下面这些问题,各位有时间可以自己测试下:

  • 定位飘移,在无人机悬停不动的情况下,会有大概一分米的左右摇晃
  • 定位错误,在快速移动和大角度倾斜的时候会出现匹配错误,坐标狂飙10m以上(在融合了imu的情况下)
  • 效率太低,比如在我们的Alice飞控板卡上跑cartographer时常达到400%的cpu负载(一个核是100%)
  • 通讯受阻,在高CPU负载的情况下,ros系统的topic基本就全挂啦,这里也说明了ros其实就是一个垃圾东西,不要跟我谈构架,一切的构架都建立在有良好效率的前提下。本来一个指针传递数据就可以了,在ros topic中却使用tcp本地传输数据,数据从用户层进入内核然后啥都没做又出来,这无疑就是在作死。(日常吐槽,仅代表个人观点,大家自行体会)
  • 其它的就是些小问题了,大家可以评论补充

飞行测试视频:
1、开源Cartographer无修改测试
https://www.bilibili.com/video/BV1QE411b7tR/

这就是目前的情况,所以现在直接用开源算法应用于无人机上是不行的,那么我们现在要争取创造一个比他们都好的slam,听起来跟google怼好像不是很现实啊- -。。。但是实际上我只需要在无人机slam上超越他们就可以了,Cartographer是一个针对通用性的slam,而我们需要构建的TSLAM是一个专注于无人机slam,在这一点上发力,其实还是会很有效果的。

从0开始构建激光SLAM

针对开源算法测试遇到的种种问题,我们现在需要构建的的TSLAM需做到这些:

  • 准确的同步定位,累计误差更小
  • 专门对无人机姿态做出研究,融合ekf滤波以后的imu数据,让无人机至少在30度倾斜角时,仍然良好建图定位
  • 专门对激光匹配做出优化,让速度在很快的情况下也能良好定位
  • 抛弃不需要的组件,让slam更快
  • 一定要抛弃ros,让整个系统轻巧到飞起来

网上搜索一下,slam大概可以分为3个子组件:匹配定位、建图、闭环检测。我们目标是设计一个为无人机打造的SLAM,我们无法把一个I7电脑扛到无人机上(功耗大,体积大),所以尽量轻量级一点,我们可以抛弃掉闭环检测,让slam能够实时的在一个ARM板上运行

其实闭环检测就是所谓的slam后端,用来生成全局一致性地图,激光雷达再准也会产生累计误差,如果不闭环会造成累计误差越来越大,地图变形,定位飘移。

不过我们可以采取一点技巧来克服这个问题,尽量让误差少少少!正如Gmapping和Hectorslam,如此出名的SLAM其实也是无回环的。

我们创造了一种全新的算法来解决定位漂移和大速度下匹配失败的问题,以下是算法实测对比,我们真正解决了概率均匀问题

  • 开源cartographer双三次插值
    BY凌拓智能
  • Tbus-tslam模糊插值
    BY凌拓智能
  • 无人机建图起飞效果图
    BY凌拓智能
    TSLAM在ALICE飞控板卡上的运行cpu占用,可以看到tslam只占用了cpu四核之中一个核心的7%,完全实现了realtime)

下面我们来测试下新构建的激光SLAM算法实际飞行效果:
2、TSLAM室内飞行测试
https://www.bilibili.com/video/BV1QE411b7tR/

3、TSLAM室内自主导航测试(气压计定高会有些掉高)
https://www.bilibili.com/video/BV19E411i79a/

BY L君
编辑:L菌的小跟班

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在MATPOWER中,branch数据中每一列的含义如下: 1. fbus:该支路的起始节点编号。 2. tbus:该支路的终止节点编号。 3. r:该支路的电阻。 4. x:该支路的电抗。 5. b:该支路的电纳。 6. rateA:该支路的额定容量。 7. rateB:该支路的第二额定容量。 8. rateC:该支路的第三额定容量。 9. ratio:该支路的变比。 10. angle:该支路的相位角。 11. status:该支路的运行状态。 12. angmin:该支路的最小相位角。 13. angmax:该支路的最大相位角。 14. Pf:该支路的有功功率流。 15. Qf:该支路的无功功率流。 16. Pt:该支路的有功功率流。 17. Qt:该支路的无功功率流。 18. mu_SF:该支路的有功功率流的拉格朗日乘子。 19. mu_ST:该支路的有功功率流的拉格朗日乘子。 20. mu_AngF:该支路的相位角的拉格朗日乘子。 21. mu_AngT:该支路的相位角的拉格朗日乘子。 需要注意的是,这些列的含义可能会略有不同,具体取决于你使用MATPOWER时所使用的版本和具体的设置。 ### 回答2: matpower计算完成后,branch数据是关于电力系统中分支或线路的信息。每一列的含义如下: 1. 列1:起始节点编号(from_bus)- 这是分支的起始节点在电力系统中的编号。 2. 列2:终止节点编号(to_bus)- 这是分支的终止节点在电力系统中的编号。 3. 列3:分支电阻(R)- 这是分支的电阻值,以欧姆(Ω)为单位。 4. 列4:分支电抗(X)- 这是分支的电抗值,以欧姆(Ω)为单位。 5. 列5:分支导纳(B)- 这是分支的导纳值,以兆欧(MΩ)为单位。 6. 列6:额定功率(Rate A)- 这是分支的额定功率容量,以兆瓦(MW)为单位。 7. 列7:上限功率(Rate B)- 这是分支的上限功率容量,以兆瓦(MW)为单位。 8. 列8:下限功率(Rate C)- 这是分支的下限功率容量,以兆瓦(MW)为单位。 9. 列9:分支电流上限(Tap)- 这是分支的电流上限值,一般用于控制变压器的变比。 10. 列10:潮流开关状态(Shift)- 这是线路的潮流开关状态,0表示断开,1表示闭合。 通过这些数据,可以对电力系统中的分支进行潮流分析和稳定性分析,计算分支的功率流和电流。此外,还可以通过设定分支的功率限制和状态,对电力系统进行运行状态的控制和优化。 ### 回答3: matpower中的branch数据包含了电力系统中不同支路的信息。branch数据的每一列代表了不同的属性或含义。 1. 第一列“From bus”表示支路的起始节点编号。起始节点是支路的起点,在电力系统中通常是发电机或变电站。 2. 第二列“To bus”表示支路的终止节点编号。终止节点是支路的终点,在电力系统中通常是负荷或其他发电机。 3. 第三列“R”表示支路的电阻。电阻是支路中电流通过时产生的损耗。单位是欧姆(Ω)。 4. 第四列“X”表示支路的电抗。电抗是支路对电流的阻碍作用。单位是欧姆(Ω)。 5. 第五列“B”表示支路的电纳。电纳是支路对电压的调节作用。单位是兆欧(μΩ)。 6. 第六列“RateA”表示支路的额定容量。额定容量是支路能够承受的最大电流或功率。单位是安培(A)。 7. 第七列“RateB”表示支路的第二额定容量。有些支路可能有两个额定容量,RateB是其中一个。 8. 第八列“RateC”表示支路的第三额定容量。有些支路可能有三个额定容量,RateC是其中一个。 9. 第九列“Ratio”表示支路的变压器变比。变压器是一种用于调节电压的设备,Ratio表示变比值。 10. 第十列“Angle”表示支路的变压器相移角。相移角是变压器在电压调节时所引入的相位差。 11. 第十一列“Status”表示支路的运行状态。0表示支路离线或断开,1表示支路在线或连接。 通过对这些列的解释,可以理解matpower计算完成后branch数据每一列的具体含义和作用。这些信息对于电力系统的分析和优化非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值