#include "path_searching/dyn_a_star.h" using namespace std; using namespace Eigen; AStar::~AStar() { for (int i = 0; i < POOL_SIZE_(0); i++) for (int j = 0; j < POOL_SIZE_(1); j++) for (int k = 0; k < POOL_SIZE_(2); k++) delete GridNodeMap_[i][j][k]; } void AStar::initGridMap(GridMap::Ptr occ_map, const Eigen::Vector3i pool_size) { POOL_SIZE_ = pool_size; CENTER_IDX_ = pool_size / 2; GridNodeMap_ = new GridNodePtr **[POOL_SIZE_(0)]; for (int i = 0; i < POOL_SIZE_(0); i++) { GridNodeMap_[i] = new GridNodePtr *[POOL_SIZE_(1)]; for (int j = 0; j < POOL_SIZE_(1); j++) { GridNodeMap_[i][j] = new GridNodePtr[POOL_SIZE_(2)]; for (int k = 0; k < POOL_SIZE_(2); k++) { GridNodeMap_[i][j][k] = new GridNode; } } }
时间: 2024-04-27 12:20:59 浏览: 9
这段代码实现了A*算法中的地图初始化部分。首先定义了一个AStar类,其中定义了一个析构函数,在析构函数中释放了GridNodeMap_中的每个节点。
接着,定义了一个initGridMap函数,用于初始化地图。该函数接受一个occ_map指针,表示输入的障碍物地图,和一个pool_size向量,表示地图节点池的大小。函数首先将pool_size赋值给类中的POOL_SIZE_和CENTER_IDX_变量,然后根据POOL_SIZE_的大小分配GridNodeMap_的内存空间。接着,使用三重循环遍历GridNodeMap_中的每个节点,并将其初始化为一个GridNode类型的对象,该对象包含了该节点的坐标、状态等信息。
总之,这段代码的作用是初始化A*算法中的地图,将障碍物地图转化为一个三维的节点池,并将每个节点初始化为一个GridNode对象。
相关问题
:-1: error: skipping incompatible /home/forlinx/CMymp3player/../ffmpeg_build/lib//libavcodec.so when searching for -lavcodec
这个错误通常是由于链接时使用了不兼容的库文件引起的。在你的项目中,可能使用了不兼容的版本的libavcodec.so库文件。你可以尝试以下解决方法:
1. 确保你使用的是与你的项目兼容的ffmpeg版本。你可以尝试更新或重新编译ffmpeg库。
2. 检查你的链接器设置,确保链接器能够找到正确版本的libavcodec.so库文件。你可以检查链接器的搜索路径,或者手动指定正确的库文件路径。
3. 如果你的项目依赖于其他库文件,也要确保这些库文件与ffmpeg库文件兼容。有时候不同版本的库文件之间可能存在冲突。
希望以上方法能够帮助你解决问题。如果问题仍然存在,请提供更多关于你的项目和环境的信息,以便我可以更好地帮助你。
WARNING! libcudart.so not found in any environmental path. Searching /usr/local/cuda/lib64...
这是一个关于环境变量的错误提示。您需要在系统环境变量中添加 CUDA 的 lib64 路径,以便找到 libcudart.so 文件。如果您需要更具体的帮助,请提供您的操作系统和具体的 CUDA 版本号。说到笑话,有一个程序员决定让他的电脑运行得更快,于是他把电脑搬到了冰箱里,结果什么也没发生,因为他忘记了开机。哈哈哈~