cyberdog_occmap基于输入的位置和姿态实时生成相应栅格地图,基于查表更新和Protobuf等技术,实现了非常轻量化的实时栅格建图算法。
cyberdog_occmap在Ubuntu 20.04和ROS2 galactic上进行了测试,其他环境运行可能会遇到一些依赖问题。
cyberdog_occmap是一个ROS2程序,依赖geometry_msgs
, nav_msgs
, sensor_msgs
, std_msgs
, message_filters
, std_srvs
等ROS2相关库,采用以下方式进行安装:
sudo apt install ros-galactic-geometry-msgs ros-galactic-nav2-msgs ros-galactic-sensor-msgs ros-galactic-std-msgs ros-galactic-message-filters ros-galactic-std-srvs -y
cyberdog_occmap依赖Boost处理文件的读取、写入和删除,基于以下方式进行安装:
sudo apt install libboost-dev
cyberdog_occmap依赖Eigen进行矩阵运算,采用以下方式安装:
sudo apt install libeigen3-dev
cyberdog_occmap依赖OpenCV对发布后的栅格地图进行去噪和美化处理,使用ROS2自带的OpenCV版本即可。
cyberdog_occmap依赖Yaml-cpp读取参数文件,采用以下方式安装即可:
sudo apt install libyaml-cpp-dev
cyberdog_occmap依赖Ceres对位置姿态进行二次优化,要求Ceres为源码编译安装,版本1.14.0,基于Ceres官方提供方式进行编译安装Ceres-install
cyberdog_occmap依赖Protobuf对栅格地图的子图进行序列化存储,从而大大节省了内存和处理器的使用。要求Protobuf为源码编译安装,版本为3.19.2
cyberdog_occmap是在occmap基础之上编写的ROS2接口库,为方便代码和接口分离,此程序已将occmap放置在3rdparty内,无需开发者手动编译。但开发者如需更改occmap程序,需要在更改后对occmap依照以下方式进行重新编译安装,即可使得更改内容生效。
cd 3rdparty/occmap
bash install.sh
cyberdog_occmap依赖cyberdog_visions_interfaces和cyberdog_common来与其他cyberdog程序进行交互,开发者如需单独使用cyberdog_occmap,需要对接口进行重写。