| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 《动手学ROS2》9.5为FishBot添加添加激光雷达传感器 -> 正文阅读 |
|
[人工智能]《动手学ROS2》9.5为FishBot添加添加激光雷达传感器 |
《动手学ROS2》9.5为FishBot添加添加激光雷达传感器
9.5为FishBot添加添加激光雷达传感器本节我们来认识一个新的传感器,该传感器在自动驾驶、室内导航等应用非常多,比如扫地机器人上就是用的它作为感知环境的重要工具,该传感器是激光雷达。 1.激光雷达介绍激光雷达(Light Detection And Ranging),缩写 1.1 激光雷达原理介绍激光雷达的原理也很简单,就像蝙蝠的定位方法一样,蝙蝠定位大家都知道吧,像下面这样子的回声定位。 普通的单线激光雷达一般有一个发射器,一个接收器,发射器发出激光射线到前方的目标上,物品会将激光反射回来,然后激光雷达的接受器可以检测到反射的激光。 通过计算发送和反馈之间的时间间隔,乘上激光的速度,就可以计算出激光飞行的距离,该计算方法成为TOF(飞行时间法Time of flight,也称时差法)。 除了TOF之外还有其他方法进行测距,比如三角法,这里就不拓展了放一篇文章,大家自行阅读。 目前市面上的激光雷达,几乎都是采用三角测距,比如思岚的: 需要注意的是虽然只有一个发射器和一个接受器,激光雷达通过电机可以进行旋转,这样就可以达到对周围环境360度测距的目的。 1.2 激光雷达大赏五位数的长这样 四位数的长这样 三位数的长这样 两位数的长这样 不要钱的长这样 仿真的,不要钱 2.Gazebo激光雷达插件因为激光雷达是属于射线类传感器,该类传感在在Gazebo插件中都被封装成了一个动态库 接着我们来看看LiDAR的话题消息接口
雷达的数据结构有些复杂,但通过注释和名字相信你可以看的七七八八,看不懂也没关系,一般情况下我们不会直接的对雷达的数据做操作。小鱼这里也就先skip。 3.为FishBot添加雷达插件有了前面的经验,我们需要在URDF添加以下内容即可
可以看到:
4.编译测试编译
运行
CLI看话题
接着我们尝试使用rviz2进行可视化激光雷达数据 添加和修改RVIZ2的如下:(通过LaserScan插件可以看到激光数据) 相信你改完之后依然是看不到任何激光雷达的数据的,反看topic的echo出来的数据,不是0就是inf(无限大),再看看gazebo你会发现,激光雷达并没有达到任何一个物体上。 所以我们可以手动的给激光雷达周围添加一下东西,点击Gazebo工具栏的正方体,圆球或者圆柱,随意放置几个到我们激光雷达的最大扫描半径内。 接着我们再看一下RVIZ2,这里小鱼把size改大了10倍0.01->0.1。 5.总结到这里我们就把fishbot的各个传感器都仿真出来了,第九章的内容也暂且告一段落,迎接我们的是第十章,也就是fishbot的导航仿真,nav2了。 如果你想先本教程一步学习Nav2,可以到nav2中文网哦~ 技术交流&&问题求助:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 2:50:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |