ROS Noetic下warehouse_ros_mongo编译失败求助及MongoDB与RVIZ/MoveIt连接功能包推荐
Hey there, let's break down how to fix that CMake error you're seeing, and then I'll share some recommended packages for integrating MongoDB with ROS, RViz, and MoveIt.
First, the root issue here is that the warehouse_ros package (which warehouse_ros_mongo depends on) is either missing from your catkin workspace or wasn't built correctly. The error message is telling you that the include directory specified in warehouse_rosConfig.cmake doesn't exist—this usually happens when the dependency package isn't present or its build artifacts are broken.
Step 1: Add warehouse_ros to your workspace
warehouse_ros_mongo can't build without warehouse_ros, so let's clone the correct version for Noetic:
cd ~/catkin_ws/src git clone https://github.com/ros-planning/warehouse_ros.git cd warehouse_ros git checkout noetic-devel
Step 2: Clean and rebuild your workspace
Your existing devel folder likely has broken configuration files from the failed build. Let's start fresh:
cd ~/catkin_ws catkin clean -y # Wipes build and devel directories to eliminate stale files catkin_make # Use `catkin build` instead if you prefer catkin tools source devel/setup.bash
Step 3: Verify the fix
After rebuilding, the error should be gone—warehouse_ros will now have its include directory properly generated, and warehouse_ros_mongo can find it.
Here are some go-to packages for this use case:
- warehouse_ros_mongo: The package you're already working with—it provides a MongoDB backend for
warehouse_ros, the core ROS package for storing robot data like MoveIt scenes and robot models. - moveit_warehouse: Part of the MoveIt suite, this uses
warehouse_rosto save/load planning scenes, robot states, and trajectories. You can visualize stored scenes directly in RViz using MoveIt's built-in tools. - rviz_warehouse_plugin: An RViz plugin that lets you browse, load, and save warehouse data (like scenes) right from the RViz interface—often included with
warehouse_rosormoveit_warehousefor Noetic. - mongodb_store: A general-purpose package for storing any ROS message type in MongoDB, great if you need to log sensor data or custom messages to visualize later in RViz.
For Noetic, always ensure packages are checked out to their noetic-devel branches to avoid compatibility hiccups.
内容的提问来源于stack exchange,提问作者zelix

