octomap(3):搭建一个完整的octomap建图工作空间

本文详细指导如何下载Octomap源码、octomap_mapping及配套包,移除系统默认版本,创建专属工作空间,并修改头文件,便于查看和编译。包括下载、搭建步骤和编译运行,适合深入研究和开发者使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        说明:下面的步骤将octomap、octomap_server、octomap_ros、octomap_msgs等功能包的源码(cpp、.h等)进行了集中,使其在一个工作空间中(并与ros系统的功能包不冲突),这样就能够方便点击查看任何函数、任何变量的定义了(如,用vscode点击函数可以看到其定义并可以跳转)

目录

1 下载备用

(1)下载octomap源码:

(2)下载octomap_mapping源码:

(3)下载octomap的其他包

(4)移除系统自带的octomap_server

2 搭建octomap工作空间

(1)创建工作空间

(2)放入octomap_mapping包

 (3)放入octomap、octomap-msgs、octomap-ros包的头文件

 (4)拷贝octomap的源码

 3 修改头文件名称

 4 编译运行:


1 下载备用

(1)下载octomap源码:

        参考之前写的:

        这里需要注意一下octomap版本问题,具体看链接

        octomap(0):octomap源码编译安装与demo运行_biter0088的博客-CSDN博客

(2)下载octomap_mapping源码:

        github链接为octomap_mapping:https://github.com/OctoMap/octomap_mappingoctomap_server包含在octomap_mapping里面:

        官方给的版本参考如下,这里我用的是ubuntu18,对应下载kinetic-devel版本

ROS stack for mapping with OctoMap, contains the octomap_server package.

The main branch for ROS1 Kinetic, Melodic, and Noetic is kinetic-devel.####我的版本meng

The main branch for ROS2 Foxy and newer is ros2.

 下载:

git clone https://github.com/OctoMap/octomap_mapping.git

(3)下载octomap的其他包

sudo apt-get install ros-melodic-octomap \
    ros-melodic-octomap-msgs \
    ros-melodic-octomap-ros \
    ros-melodic-octomap-rviz-plugins

(4)移除系统自带的octomap_server

        下面这条命令只移除octomap_server这个包,如果没有安装可以包可以不用管(保险起见还是运行一下)

sudo apt-get remove ros-melodic-octomap-server

2 搭建octomap工作空间

(1)创建工作空间

        工作空间名称自拟,这个名称表明是用octomap进行建图

cd xx
mkdir -p octomap_mapping_ws/src

(2)放入octomap_mapping包

        将1下载的(2)octomap_mapping 放入src中:

 (3)放入octomap、octomap-msgs、octomap-ros包的头文件

        在目录:/opt/ros/melodic/include下找到这三个包

 可以看出这三个目录下都是.h的头文件

直接将这三个文件夹拷贝到:xxx/octomap_mapping_ws/src/octomap_mapping/octomap_server/include目录下,并改名称,这里在后面加上了_move

 (4)拷贝octomap的源码

        将1(1)中下载的源码(xxx/octomap/octomap/src)中的所有内容,如下:

 拷贝到octomap_server源码处(/octomap_mapping_ws/src/octomap_mapping/octomap_server/src),拷贝后的效果如下

 3 修改头文件名称

        用vscode打开整个工作空间,进行全部替换,使用

"<octomap_move/"替换"<octomap/";

"<octomap_msgs_move/"替换"<octomap_msgs/";

"<octomap_ros_move/"替换"<octomap_ros/";

一个示例如下:

 4 编译运行:

cd xxx/octomap_mapping_ws
catkin_make
roslaunch octomap_server octomap_mapping.launch

 注:箭头指的地方只是传感器数据还没有进来,一般情况下不影响程序使用

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值