ROS-learning-CartoGrapher Installation Steps

本文详细介绍了一种在Ubuntu环境下快速安装谷歌Cartographer SLAM系统的步骤。包括安装依赖项、ceres-solver及Cartographer核心组件的方法,并通过catkin_make_isolated构建Cartographer ROS模块。

Reference :

  1. 谷歌Cartographer学习(1)-快速安装测试

  2. Cartographer ROS Integration

Steps:

  1.   安装所有依赖项

    sudo apt-get install -y google-mock libboost-all-dev  libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev  libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler python-sphinx  ros-indigo-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev

    1.首先安装ceres solver,选择的版本是1.11,路径随意

    1.     git clone https://github.com/hitcm/ceres-solver-1.11.0.git

    2.      cd ceres-solver-1.11.0

    3.      cmake .

    4.      make -j

    5.      sudo make install

     

    2.然后安装 cartographer,路径随意

    1.      git clone https://github.com/googlecartographer/cartographer.git

    2 .     cd cartographer

    3.       cmake .

    4.       make

    5.       sudo make install

    3.安装cartographer_ros。( Create a new workspace to build this package because of using catkin_make_isolated rather than catkin_make)
    # Install wstool and rosdep.
    sudo apt-get update
    sudo apt-get install -y python-wstool python-rosdep ninja-build
    
    # Create a new workspace in 'catkin_ws_new'.
    mkdir catkin_ws_new
    cd catkin_ws_new
    wstool init src
    
    # Merge the cartographer_ros.rosinstall file and fetch code for dependencies.
    wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
    wstool update -t src  #This command will install three packages (ceres solver , cartographer ,cartographer_ros),we only use cartographer_ros others could be deleted
    
    # Install deb dependencies.
    # The command 'sudo rosdep init' will print an error if you have already
    # executed it since installing ROS. This error can be ignored.
    sudo rosdep init
    rosdep update
    rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y # here ROS_DISTRO is indigo
    
    # Build and install.
    catkin_make_isolated --install --use-ninja
    source install_isolated/setup.bash

<think>好的,我现在需要解决用户提出的问题:在Ubuntu上找不到ros-humble-cartographer-ros包的问题,包括检查源配置和安装依赖。首先,我应该回忆一下用户提供的引用内容,特别是引用[2]中的安装命令。用户提到他们尝试安装ros-humble-cartographerros-humble-cartographer-ros,但后者找不到。这可能涉及到软件源配置的问题,或者包名是否正确。 首先,我应该考虑软件源是否配置正确。ROS的Humble版本需要Ubuntu Jammy(22.04),所以用户需要确认自己的系统版本是否正确。如果系统版本不对,软件源可能不可用。接下来,用户需要确保已经添加了ROS 2的官方软件源,特别是正确的main、universe和multiverse仓库。有时候,用户可能忘记更新软件源缓存,导致找不到包,所以运行sudo apt update是必要的。 然后,检查包是否存在。用户可以通过apt search命令来查找ros-humble-cartographer-ros是否存在。如果找不到,可能需要确认包的正确名称,或者该包是否被移动或废弃。此外,有时候包可能存在于其他仓库,比如ROS的测试仓库或第三方PPA,但通常建议使用官方源。 如果软件源没问题,但包仍然找不到,可能需要安装依赖项。Cartographer可能依赖其他ROS包,如navigation2或其他相关库,用户需要安装这些依赖。此外,构建Cartographer可能需要从源代码安装,特别是如果二进制包不可用的情况下。这时需要按照官方文档的指导,克隆仓库并构建。 另外,用户的问题可能涉及到ROS 2的工作空间是否正确配置,或者是否在正确的环境中执行命令。例如,需要确保ROS 2的环境变量已经设置,比如通过source /opt/ros/humble/setup.bash。如果用户在一个没有正确配置环境的新终端中运行安装命令,可能会遇到问题。 总结一下,可能的解决步骤包括:检查系统版本、确认软件源配置、更新软件列表、搜索包名、安装依赖、尝试源码安装。需要一步步引导用户排查每个可能性,确保他们能够找到问题所在并解决。</think>### 逐步解决方案 1. **确认系统版本与ROS版本匹配** ROS Humble Hawksbill 要求 Ubuntu 22.04(Jammy Jellyfish)[^2]。若系统版本不符,需升级或更换系统。 2. **检查ROS软件源配置** 确保已正确添加ROS 2的官方源和必要的仓库: ```bash sudo apt update sudo apt install curl sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null sudo apt update ``` 若缺少 `universe` 或 `multiverse` 仓库,需启用: ```bash sudo add-apt-repository universe sudo add-apt-repository multiverse sudo apt update ``` 3. **搜索软件包是否存在** 使用以下命令确认包是否在可用列表中: ```bash apt search ros-humble-cartographer-ros ``` 若未找到,可能是包名错误或未包含在官方源中。 4. **安装依赖项** Cartographer依赖部分ROS 2导航工具链,建议先安装基础依赖: ```bash sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup ``` 5. **尝试从源码构建** 若二进制包不可用,需从源码编译: ```bash mkdir -p ~/cartographer_ws/src cd ~/cartographer_ws/src git clone https://github.com/ros2/cartographer.git git clone https://github.com/ros2/cartographer_ros.git cd .. rosdep install --from-paths src --ignore-src -y colcon build --symlink-install ``` 6. **验证环境变量** 确保在安装后激活ROS环境: ```bash source /opt/ros/humble/setup.bash # 若从源码构建,还需激活工作空间 source ~/cartographer_ws/install/setup.bash ``` ### 常见问题排查 - **错误提示 `E: Unable to locate package`**:软件源未正确配置或包名错误。 - **依赖冲突**:使用 `rosdep` 自动解决依赖关系。 - **构建失败**:检查CMake日志,确认缺少的库或头文件。 ### 相关问题 1. 如何升级Ubuntu系统以匹配ROS版本要求? 2. ROS 2中如何管理多工作空间的依赖冲突? 3. Cartographer在SLAM中的具体应用场景有哪些?[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值