首页 > 其他分享 >ROS机器人虚拟仿真挑战赛持续学习笔记-20240619

ROS机器人虚拟仿真挑战赛持续学习笔记-20240619

时间:2024-06-20 12:27:38浏览次数:10  
标签:仿真 20240619 地图 算法 建图 SLAM 挑战赛 ROS

cartographer

需要全手工编译……比较麻烦。

如果使用新版ceres-solver,版本2.x,需要修改源码,部分“接口代码”有改动。

稳妥使用ceres-solver-1.13.0,且需要安装abseil-cpp。

验证是否成功,使用roscd或roslaunch,查看一下是否有对于功能包:


map

只有room_mini和tianracer_racetrack.pgm提供了“原装”地图。

没有提供地图的world需要建图之后才能更好的导航,或者选用行为式控制器,而非路径算法类规划器。跑圈算法可分为有地图和无地图两种:

  1. 有地图-需要SLAM了……/(ㄒoㄒ)/~~
  2. 无地图-后续有空再写

 /(ㄒoㄒ)/~~

此处省略……

原版参数:

image: room_mini.pgm
resolution: 0.050000
origin: [-50.000000, -50.000000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196
image: tianracer_racetrack.pgm
resolution: 0.025000
origin: [-12.200000, -12.500000, 0.0000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

新环境均为大图,参考tianracer_racetrack.yaml参数。


源码地址:

要注意使用raicom分支。

过往学习笔记:

ROS机器人虚拟仿真挑战赛学习笔记_无人车竞速仿真-CSDN博客


SLAM

为了使用ROS Racecar仿真更好地建立SLAM地图以用于导航,可以按照以下步骤进行:

  1. 准备工作
    • 确保已经正确安装了ROS和相关的依赖包。
    • 创建一个ROS工作空间,并下载或编写所需的Racecar仿真代码。
  2. 启动仿真环境
    • 设置环境变量,确保ROS环境能够正确运行。
    • 使用roslaunch命令启动Racecar的仿真环境。
  3. 启动SLAM建图
    • 在仿真环境中,启动SLAM算法(如gmapping)来构建地图。这通常涉及运行一个SLAM节点,该节点将使用激光雷达(或其他传感器)数据来创建环境的2D地图。
    • 同时,启动rviz(ROS Visualization)来可视化建图过程。
  4. 控制车辆进行建图
    • 通过键盘控制或其他控制方式(如遥控器、游戏手柄等)手动驾驶Racecar在仿真环境中移动。
    • 确保车辆遍历整个环境,以便SLAM算法能够捕捉到所有必要的特征并构建完整的地图。
  5. 保存和优化地图
    • 当车辆遍历完整个环境后,停止SLAM建图过程,并保存生成的地图文件。
    • 可以使用地图优化工具(如map_server的map_saver节点)来保存和优化地图,以提高其质量和准确性。
  6. 验证和使用地图
    • 加载保存的地图到导航系统中,并进行测试以验证其准确性和可用性。
    • 如果地图质量不佳或存在错误,可以重复上述步骤进行修正和优化。
  7. 注意事项
    • 在建图过程中,确保仿真环境的设置与实际环境相匹配,包括传感器配置、障碍物布局等。
    • 调整SLAM算法的参数以适应不同的环境和传感器特性,以获得最佳的建图效果。
    • 定期更新和维护地图,以适应环境中的变化。

通过以上步骤,你可以更好地在ROS Racecar仿真中建立SLAM地图,并将其用于导航任务。

当提到建图算法时,虽然Gmapping在某些情况下可能表现不够理想,但确实存在其他更先进的建图算法可供选择。以下是一些推荐的建图算法,它们在不同的环境和应用场景下具有出色的性能:

  1. Cartographer
    • 特点:基于图优化的激光SLAM算法,能够生成高质量的二维和三维地图。
    • 优势:通过扫描匹配(scan-matching)和子图(submaps)的概念,Cartographer能够在实时性和准确性之间取得良好的平衡。它适用于各种室内和室外环境,并且具有较低的计算资源需求。
    • 应用场景:广泛应用于机器人导航、无人驾驶等领域。
  2. Hector SLAM
    • 特点:一种适用于激光扫描仪的SLAM算法,它基于高斯-牛顿法解决scan-matching问题。
    • 优势:Hector SLAM不需要依赖里程计数据,因此在某些没有准确里程计信息的应用场景中表现出色。它使用多分辨率地图来避免局部最小解,并提高建图精度。
    • 注意事项:对传感器噪声和机器人速度有一定要求,需要在相对静态和特征丰富的环境中进行建图。
  3. ORB-SLAM
    • 特点:一种基于视觉的SLAM算法,使用ORB(Oriented FAST and Rotated BRIEF)特征点进行定位和建图。
    • 优势:ORB-SLAM能够在室内外环境中工作,并且具有较高的鲁棒性和准确性。它支持单目、双目和RGB-D相机,并且支持回环检测和重定位功能。
    • 应用场景:适用于需要视觉信息的导航和定位任务。
  4. LSD-SLAM
    • 特点:一种直接法的视觉SLAM算法,基于半稠密地图表示。
    • 优势:LSD-SLAM能够在光照变化较大的环境中工作,并且能够处理动态物体。它生成的地图包含丰富的几何信息,适用于需要高精度导航的应用场景。
    • 注意事项:计算资源需求较高,实时性可能受到一定影响。
  5. DSO(Direct Sparse Odometry)
    • 特点:一种基于稀疏直接法的视觉里程计算法,它直接对图像像素进行操作,不需要特征点提取和描述子匹配。
    • 优势:DSO具有较高的鲁棒性和准确性,能够在纹理较少或光照变化较大的环境中工作。它适用于高速运动和动态环境下的视觉定位。
    • 应用场景:无人机、自动驾驶汽车等需要高速、准确视觉定位的应用场景。

总结

在选择建图算法时,需要根据具体的应用场景和需求进行权衡。对于需要高精度定位和导航的应用场景,Cartographer和ORB-SLAM是不错的选择。对于没有准确里程计信息或需要处理动态物体的场景,Hector SLAM和LSD-SLAM可能更适合。而对于需要高速、准确视觉定位的应用场景,DSO可能是一个更好的选择。同时,还需要考虑计算资源的需求和实时性的要求。

标签:仿真,20240619,地图,算法,建图,SLAM,挑战赛,ROS
From: https://blog.csdn.net/ZhangRelay/article/details/139795172

相关文章

  • 【教学类-64-04】20240619彩色鱼骨图(一)6.5*1CM 6根棒子720种
    背景需求:幼儿益智早教玩具❗️鱼骨拼图-小红书在家也能自制的木棒鱼骨拼图,你也收藏起来试一试吧。#母婴育儿#新手爸妈#玩具#宝宝玩具怎么选#早教#早教玩具#幼儿早教#益智早教#玩具#宝宝早教#益智拼图#宝宝拼图#玩不腻的益智玩具#儿童益智桌游#早教日常#益智......
  • 20240619打卡-个人总结博客
    个人总结1.回顾课程计划完成情况在第一周制定的课程计划中,我列出了具体的目标和期望,并计划通过一系列的学习和实践活动来实现这些目标。具体数据和实际例子如下:目标1:掌握SpringBoot和Vue框架的基本使用。完成情况:通过老师的指导和多次实践,我成功地完成了一个基于SpringB......
  • Microsoft.AspNetCore.Identity 的使用记录
    使用Cookie,在发起请求时从浏览器附加Cookie的示例图:请求后自动生成Cookie,缓存保存于浏览器中以后每次发起请求时浏览器都会自动为请求附加其缓存的Cookies使用访问令牌bearertoken,在发起请求时附加了Authorization请求头,示例注意,如果手动传参,Head中Authorizaion的值要......
  • 20240619打卡-结课博客
    本学期总结博客个人成长与反思随着本学期的结束,我在石家庄铁道大学软件工程专业的学习之旅也迈上了一个新的台阶。回顾这段时间,我不仅在理论知识方面有所提升,更重要的是通过实战项目积累了宝贵的经验。这些经历使我更加认识到,作为一名未来的软件工程师,实操能力和团队合作精神是......
  • docker(ubuntu18.04) + 宿主机(ubuntu20.04) + ROS + 乐视三合一体感摄像头LeTMC-520
    参考链接:https://blog.csdn.net/weixin_45225720/article/details/1144642441.准备docker环境dockerpullhyeonjaegil/vins-monodockerrun-it--privileged--networkhost--gpusall\-v/tmp/.X11-unix:/tmp/.X11-unix\-eDISPLAY-eNVIDIA_VISIBLE_DEVIC......
  • CrossOver 2024软件安装包下载
    CrossOver不像Parallels或VMware的模拟器,而是实实在在MacOSX系统上运行的一个软件。CrossOvers能够直接在Mac上运行Windows软件与游戏,而不需虚拟机。它为Windows软件提供所需的资源,以达到在MacOSX系统上运行Windows程序的目的。安装包获取地址:CrossOverlinux(其......
  • 超声波传感器在ROS中的使用代码示例
     代码展示了一个ROS节点,它会模拟超声波传感器数据的发布。在实际应用中,你需要替换模拟数据生成的部分,使用你的微控制器提供的真实数据。#include"ros/ros.h"#include"sensor_msgs/Range.h"//这个函数将被定时器调用,用于发布超声波数据voidpublishUltrasonicData(cons......
  • ROS1迁移到ROS2
    在将ROS1迁移到ROS2的过程中,需要考虑以下几个重要的注意事项:1.**先决条件**:在开始迁移之前,请确保ROS1包的所有依赖项在ROS2中都是可用的。2.**包规范格式**:ROS2不支持ROS1的包规范格式1,只支持较新的格式版本(2及更高版本)。如果`package.xml`文件使用的是格式1,需要至少......
  • Ubuntu 使用Vscode的一些技巧 ROS
    UbuntuVSCode的一些设置(ROS)导入工作空间推荐只导入工作空间下的src目录如果将整个工作空间导入VSCode,那么这个src就变成了次级目录,容易在写程序的时候把本应该添加到具体工程src目录里的代码文件给误添加到这个catkin_ws下这个src目录里Ctrl+Shift+B快捷编译设置......
  • ROS实验课(三)
    writeinadvance此次实验课给我的生活来了沉重的一击,不单单是因为没有做出来,还因为我卡在了插件缺失而无法解决。之前对待实验课,能在操作流程之外有暇思考具体的实现,此次只能记录简单的操作流程部分。老规矩,基于同样的《ROS机器人开发技术基础》教材。以下是实验内容,要......