CMU-FAR Planner 规划算法官方社区问答汇总

参考引用

首先感谢 CMU 团队的开源工作,本博客是为了方便在实车部署时遇到问题后查找相关思路用,相关问答全部来自 TARE机器人自主导航系统社区-CSDN社区云,问答汇总截止到 2024年3月25日,后面不定期更新

1. far planner 存储和读取Visibility Graph的问题

  • :我在使用far planner的存储和读取Visibility Graph的功能时,发现只有部分路线和图可以被存储下来,大部分内容都缺失了,以至于先验地图并不能提供路线

    • 这是我实际测试时的地图
      在这里插入图片描述

    • 这是我存储,读取后的地图
      在这里插入图片描述

    • Thanks for the report. Yes, it only saves graph nodes with certain characters. Please refer to the code here. https://github.com/MichaelFYang/far_planner/blob/melodic-noetic/src/far_planner/include/far_planner/graph_msger.h#L38
    • (Particularly, you may want to check the “is_finalized” flag for the graph nodes you want to save. https://github.com/MichaelFYang/far_planner/blob/melodic-noetic/src/far_planner/include/far_planner/node_struct.h#L80)

2. FAR Planner 无法设置 goalpoint 的问题

  • :能够正常rviz,但是设置goalpoint时无反应,即不开始explore,小车停留在原地无反应。之后尝试运行tare,能够通过tare生成waypoint,但是只能通过FAR内自己用鼠标控制运动控件来使小车根据tare算法生成的局部路径运动
    • 你好,你可以试一下只启动roslaunch vehicle_simulator system_indoor.launch,然后用rviz上的waypoint插件单独发送waypoint,看看车是否运动。如果车运动,你再运行tare看看能否自行探索。如果你同时启动tare和far而且发布了goal point的话,两者输出的waypoint可能会互相冲突
    • 至于far planner无法执行goal point以及出错的问题,你可以按照上述方式一步一步尝试,先只运行vehicle simulator看看是否能动,然后运行far planner,并且发布goal point,把运行之后的far planner的rviz截图以及终端截图贴进来,我们根据具体的信息才能够给出判断

3. far_planner 功能包更新机器人位置函数问题

  • :far_planner 代码中的这段三个 for 循环嵌套是干嘛的
    在这里插入图片描述

  • :更新机器人周围的obstacle grids, 以机器人位置为中心,在x, y方向上加入周围N个grid, 在z 方向上加入周围H个grid

4. farplanner 的 rviz 没有点云图,goalpoint 也无法使用

    • 你好,尝试了一下将far planner部署到小车上,传感器是32线雷达,建图算法用的是lio-sam,启动autonomous_exploration_development_environment的算法,运行farplanner.launch,waypoint可以正常使用,但farplanner的rviz界面里一片黑,没有点云图,goalpoint也无法使用,右边的运动控件可以使用。请问中间是缺了什么步骤吗?具体如何操作才能把FAR Planner部署到车上呢?
    • 你好同学,可以看一下tf是否发送正确,terminal中tf是否有报错。其次,可以尝试打开config文件中的is_debug_output参数,看一下系统的报错
    • 请检查一下terrain_map是否正确发送,以及发送的cloud是否为empty。 同时查看一下odometry是否初始化成功,具体对应程序中这两个变量是否正确初始化:https://github.com/MichaelFYang/far_planner/blob/melodic-noetic/src/far_planner/src/far_planner.cpp#L652; 以及:https://github.com/MichaelFYang/far_planner/blob/melodic-noetic/src/far_planner/src/far_planner.cpp#L558

5. 有图有定位,怎么用 far planner 自动规划路径到我想去的位置

  • :你好,如果有图有定位的话,按照你上面做的,运行loam_noted,roslaunch vehicle_simulator system_real_robot.launch以及roslaunch far_planner far_planner.launch,然后发布目标点就可以了

6. far_planner 如何基于已有地图导航

    • 请教一下大佬,我们在机器人人已经成功的部署了far_planner,但是在跑完实际环境后我们想将跑完的地图保存起来,下次再继续使用,实现一个在一直地图上的一个导航的功能
    • 保存三维的地图,下次直接导入该地图,只需进行定位就可以使用的功能
    • 是的,现在应该就已经具备这个功能了。将已知地图导入,far_planner会自动生成visibility graph并在graph上导航

7. Far planner 部署真实小车 & 树莓派部署lego_loam

  • https://blog.csdn.net/weixin_39977764/article/details/125751532?spm=1001.2014.3001.5502

8. 关于far_planner地图保存,读取和将点云地图转化为v-graph的问题

    • 1.我用自己的数据包跑了一遍far_planner,然后将建立好的v-graph保存下来,出现一个问题就是,地图只会保存机器人附近的图和路线,机器人之前走过的部分的路线和图大部分都会消失,请问这是为什么呢
    • 2.我使用了boundary_handler将lio_sam建立的点云文件转化为v-graph, 其形式是3d的,加载很慢,并且似乎没法用于导航,用自己包跑保存下来的和仿真保存下来的都是2d的,请问该怎么修改呢
    • 3.boundary_handler中用到的trajectory.text对于地图的转化是否有影响呢,如果有影响又该如何得到适配我自己地图的trajectory.text呢,我看代码中用于判断是否在多边形内和显示起始点的位置,不知是否理解有问题,还是boundary_handler并不能用于地图转换
      在这里插入图片描述

在这里插入图片描述

    • 同学你好, 在graph_msger 检测了一个变量is_finalized用来筛选去除一些还没有完成位置优化的node, 可能是slam的noise过大,造成了node position优化缓慢,你可以尝试去除这个变量检查,https://github.com/MichaelFYang/far_planner/blob/melodic-noetic/src/far_planner/include/far_planner/graph_msger.h#L38 看有没有变化

9. 关于far_planner中动态障碍物的处理

  • :我在仿真环境中加入了移动的行人作为动态障碍物并且沿y轴运动,但是far_planner规划器一直没有去除动态障碍物且将其视为一堵墙,之后构建的拓扑地图就乱了,请问far_planner不能处理这种情况吗
    在这里插入图片描述

  • :你好,在far planner的配置文件里有一个参数is_static_env,这个参数设置成true就是静态环境,设置成false,就是动态环境,才会清楚动态障碍物。你可以看一下是不是这个参数没有设置成false导致的。另外,如果环境过于狭窄,放置行人同样有可能导致认为不可通行,这种情况可以调整Util/obs_inflate_size参数,将障碍物影响降低

10. 关于/navigation_boundary话题的发布

  • :我想输出话题navigation_boundary的数据,在代码中已设置is_pub_boundary为true,可是local_boundary一直是空的,请问这是怎么回事,谢谢!
  • :同学你好,生成navigation_boundary需要使用boundary_handler package

11. 实车部署 far-planner 遇到的问题

    • 感谢大佬提供的开发环境,最近在实车实验时发现一个问题,运行环境autonomous_exploration_development_environment,运行far-planner,在地图定位完成,加载之前跑bag包时存储的vgh文件后,小车随意跑,但这期间我并没有给定Goalpoint,后来我关闭小车底盘,其他都照样开着查看了速度消息,速度是0,不知道这是什么情况,请问这种情况该怎么解决呢?
    • 你好,可以再复现一次,然后查看一下是不是有waypoint发出来,以及是不是有joy信息进来。另外,在这之前启动底盘之后可以把模式调到smart joystick模式,至少保证车不会自己动。根据你描述的现象,有两个可能的原因,第一个是我上面说的这两个来源,错误的waypoint以及错误的joy信息(如果你其他没做错的情况下几率小),如果有可以查看一下来源是哪里。第二是定位不准,导致机器人总想维持在原点,不过你问题里没提到,那应该是没有

12. far planner 把整个走廊内部都当成了障碍物

  • :有可能是走廊过于狭窄,far planner认为走廊是不可通行的,这个你可以尝试使用matterport的参数,如果不行的话,可以试着调一下far planner里关于机器人尺寸以及障碍物尺寸的相关参数。另外,如果你是希望机器人在非常狭窄的空间探索或者行走,可以试着调一下terrain_map的分辨率以及far planner中地图的分辨率,值调的小一些

13. 自己在仿真环境中添加了障碍物,用 far planner 进行导航不能避障直接撞上了

  • :你可以看一下你程序里设置的车辆大小是不是太小了,这也有可能造成车辆认为自己可以通过。调整车辆大小的方式除了设置程序里的search_radius这个变量外,还需要重新生成对应这个变量的trajectory library,也就是修改local planner里paths文件夹里的m文件中的相应变量,重新生成paths文件夹里的library文件

14. 对于障碍物数量很少的空旷场地,far planner是如何规划的?

    • 拜读了far planner的论文,有一个疑问就是如果障碍物很少那么v-graph就会很稀疏,这时候far planner应该怎样规划呢,如果还是依赖v-graph会不会造成绕远或者规划不出有效路径呢?希望有大佬可以解答一下我的困惑!
    • 比如一个空旷的地图里只有一个障碍物,那么根据v-graph规划出的路径是不是会优先经过障碍物的角点,这样的话不就绕远了么?谢谢您的解答!
    • 如果目标点是在障碍物的后面,只有绕过才可以的话,就必须绕。但是如果目标点与当前机器人之间是没有障碍物的,并且当前目标点没有被看到过(看到过会直接到目标点,不绕路),就需要分两种情况,这也是farplanner的两个模式,第一个是优先在已知区域规划,那么会先绕到graph上离目标点最近的角点,第二种是优先规划可能的最短路径,这时就会直接前往目标点,不过这种情况如果在去往目标点途中发现新的障碍物就有绕远的风险
    • 只要视觉能够提供定位以及环境地形信息,这种情况正常规划就可以了,并没有特殊的地方
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值