Ubuntu20.04 FUEL与MARSIM实验复现与协同过程记录

目录

  • [Ubuntu20.04 FUEL与MARSIM实验复现与协同过程记录](#Ubuntu20.04 FUEL与MARSIM实验复现与协同过程记录)
    • FUEL环境以及MARSIM运行
    • [2. FUEL运行](#2. FUEL运行)
    • [3. FUEL探索](#3. FUEL探索)
    • [4. 保存地图](#4. 保存地图)
    • [5. FUEL与MARSIM联合仿真](#5. FUEL与MARSIM联合仿真)

Ubuntu20.04 FUEL与MARSIM实验复现与协同过程记录

FUEL环境以及MARSIM运行

shell 复制代码
sudo apt-get install libarmadillo-dev ros-melodic-nlopt

catkin_make 报错一大片:

疑似PCL版本问题

解决

再次报错

shell 复制代码
sudo apt install libdw-dev
shell 复制代码
sudo apt-get install libglfw3-dev libglew-dev

开始报错点

能够看出来,都是因为OpenMP的default(none)报错

https://github.com/open-mpi/ompi/issues/3150

eigen错误直接添加目录即可。

https://blog.csdn.net/holly_Z_P_F/article/details/121238604

删除掉是不是很暴力

https://www.cnblogs.com/tao-gak567/p/18075816

尝试一下改为default(shared)或者删除,按说效果是一样的

还是不管用,修改路径后会报路径错误,说明并不是路径问题。除此之外还有too many的错误

set3D点是没问题的

打开GPU的参数

确实没有opengl_render_node

查看CMakelists,确实有生成语句

也确实生成了。

找到了

明明是有的

注释掉pcl,pcl仍然在,这里确实有些离谱注释掉仍然可以找到pcl_render的节点,不合逻辑

破案了,通过roscd roscd local_sensing_node/发现是~/ROS_WS/FUEL/src/FUEL/uav_simulator/local_sensing

source M仍然是FUEL的路径

source M之后FUEL一块出现,这不应该

解决方案一:功能包路径每次在bashrc中替换(麻烦)

解决方案二:每次unset环境变量,重新source M

为了避免路径混乱,查看了源码,两者的local_sensor并不相同,所以直接将M中的功能包重新命名,解决

3D point nav正常

2. FUEL运行

shell 复制代码
  source devel/setup.bash && roslaunch exploration_manager exploration.launch

出现问题

查看rviz的话题

仅打开第一个launch的时候,可以看到world是有的

这两个都没有什么问题

运行第二个launch,可以看到飞机起飞,然后world坐标系丢失

robot报错

For frame [/world]: Frame [/world] does not exist

trajectory和froniter报错如下:

Points should not be empty for specified marker type.

Points should not be empty for specified marker type.

使用2D point nav 工具会报错

所以本质并不是world坐标系的问题。

感觉问题出在了机器人的mesh上了,与world无法转换,导致了轨迹和边界点错误

修改源码,将/world改为world,robot报错消失,无人机模型出现

3. FUEL探索

目前报错是边界点和执行轨迹

frontier一直有数据接收,只是数组为空,所以,这个报错应该是暂时定为未运行,轨迹同理

wait for trigger

根据源码状态有这些"INIT", "WAIT_TRIGGER", "PLAN_TRAJ", "PUB_TRAJ", "EXEC_TRAJ", "FINISH"

程序一直WAIT_TRIGGER

/waypoint_generator/waypoints 这个话题触发trigger

关键在于这个话题

接收goal

2D point nav 设置就是为了给这个话题发数据,发了之后,程序崩掉

这是最后的输出

能够验证,waypoints也生成成功了,但是没有处理好,所以崩掉了。因为能产生这个说明waygenerator没问题。

事实证明,触发已经触发了,边界点回调也回调了

问题出现的位置是312行


定位到了,报错的一行是169行

通过注释验证,是B样条代价函数的问题

手动编译安装nplot,CMakeList找不到

安装提示是

修改CMakelist指向后成功跑起来

跑一段距离仍然会崩

检查过了,边界点数据正常

报错是段错误,那么是运行时的,可能是索引超界.

根据上面的信息,一旦调用这个Kino就会报错

问题出现在了search的api上

主要报错原因:

Eigen::internal::throw_std_bad_alloc()

terminate called after throwing an instance of 'std::bad_alloc'

这个报错主要是因为矩阵运算超限

暴力一点,修改为定值

解决,但没有完全解决,先留着这个问题。

4. 保存地图

保存地图

权限问题,直接修改为有读写权限的目录,解决

5. FUEL与MARSIM联合仿真

指标不治本

这是M的setup python文件

这是FUEL的setup python文件

看来与么melodic不太相同,这个路径是累加的,当我把自己本地的路径管理器屏蔽掉,然后catkin_make,发现(FUEL)

说明这个catkin_make是生成路径时看当时的环境变量复制取值的.

联合成功

相关推荐
xiaoshiguang32 小时前
LeetCode:222.完全二叉树节点的数量
算法·leetcode
爱吃西瓜的小菜鸡2 小时前
【C语言】判断回文
c语言·学习·算法
别NULL2 小时前
机试题——疯长的草
数据结构·c++·算法
TT哇2 小时前
*【每日一题 提高题】[蓝桥杯 2022 国 A] 选素数
java·算法·蓝桥杯
我爱C编程3 小时前
基于Qlearning强化学习的机器人路线规划matlab仿真
matlab·机器人·强化学习·路线规划·qlearning·机器人路线规划
野蛮的大西瓜3 小时前
开源呼叫中心中,如何将ASR与IVR菜单结合,实现动态的IVR交互
人工智能·机器人·自动化·音视频·信息与通信
yuanbenshidiaos4 小时前
C++----------函数的调用机制
java·c++·算法
唐叔在学习4 小时前
【唐叔学算法】第21天:超越比较-计数排序、桶排序与基数排序的Java实践及性能剖析
数据结构·算法·排序算法
ALISHENGYA4 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(switch语句)
数据结构·算法
chengooooooo4 小时前
代码随想录训练营第二十七天| 贪心理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
算法·leetcode·职场和发展