从零开始学习cartographer源码 | 番外:如何在wsl内使用clion阅读cartographer源码

安装WSL2及Clion

wsl2和clion不是本文重点,csdn上有大量文章介绍如何安装相关内容我暂时略写。

安装WSL2-Ubuntu20.04

参考Windows官方文档安装wsl2,建议安装wsl2,wsl2默认支持wslg,支持ros的各种可视化工具,如rqt,Rviz等。
适用于 Linux 的 Windows 子系统文档
如果从win10升级win11启动wsl2,可能无法使用wslg启动gui应用程序,建议别折腾了,重装win11系统吧。
同样的安装步骤笔者笔记本电脑安装毫无问题,从win10升级的win11就无法使用GUI的应用程序,笔者翻遍了CSDN,GitHub都没有解决。

安装Clion

引用CLion安装、配置、使用、调试,按照对应的步骤安装即可。
推荐一下我个人使用的几个Clion插件

  1. Chinese (Simplified) Language Pack/中文语言包
    Clion汉化包,本人英文水平不好,有能力的同学建议使用英文原版

  2. Indent Rainbow
    彩色空格对齐的插件,辅助代码阅读

  3. Rainbow Brackets Lite-Free and OpenSource
    彩虹括号对齐插件,辅助代码阅读

  4. Json Parser
    Json数据格式化阅读插件,辅助Json数据阅读

  5. Translation
    翻译工具,可以在百度翻译官网上注册key后配置(原谅我英语无能)

  6. XML Layout Extractor
    XML格式高亮显示

安装ROS

安装ROS是为了要ROS的各种工具链及开发环境,非必须。建议使用鱼香ROS的一键安装超级省事,感谢小鱼大神给我们提供的便利工具地址如下
鱼香ROS主页
一键安装工具
在终端输入一键安装指令输入1回车

wget http://fishros.com/install -O fishros && . fishros

在这里插入图片描述
连续2次输入1,回车。更换系统源并清理第三方源
在这里插入图片描述
笔者选择自己比较熟悉的ROS1进行安装,ROS2在阅读cartographer源码上应该影响不大
在这里插入图片描述

安装Cartographer

一键安装Cartographer

使用一键安装安装Cartographer
在这里插入图片描述
完成安装后在终端输入命令,等待编译完成

 cd cartographer_ws/
 catkin_make_isolated

在这里插入图片描述

在Clion打开cartographer工程

安装gdb

在终端中键入以下命令安装gdb

sudo apt-get install gdb

在这里插入图片描述

手动创建CMakeLists.txt

进入cartographer_ws/src目录下,使用vim创建CMakeList.txt

 cd src
 vim CMakeList.txt

将下面内容复制粘贴进去,注意这两行对应自己的ros版本,:wq保存退出(不了解的朋友直接使用gedit也可以)
set(CMAKE_PREFIX_PATH “/opt/ros/noetic” )
set(CMAKE_MODULE_PATH “/opt/ros/noetic/share/catkin/cmake”)

cmake_minimum_required(VERSION 3.1.0)
project(cartographer_ws)
set(CMAKE_CXX_STANDARD 11)

# catkin sets this to "on" by default, which causes linking problems
set(CMAKE_PREFIX_PATH "/opt/ros/noetic" )

set(CMAKE_MODULE_PATH "/opt/ros/noetic/share/catkin/cmake")
set(BUILD_SHARED_LIBS OFF)
file(GLOB GLOG_LIBRARIES /usr/local/lib/libglog.so)
set(GLOG_INCLUDE_DIRS /usr/include)
# find GMock globally from here, or else it will complains about duplicated GTest/GMock targets
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/src/cartographer/cmake/modules/")


# use configuration files from the source location instead of the install location
set(CARTOGRAPHER_CONFIGURATION_FILES_DIRECTORY "${CMAKE_SOURCE_DIR}/src/cartographer/configuration_files"
  CACHE PATH ".lua config file directory")

# add the libcartographer directory

# point the catkin packages to the special Findcartographer.cmake module which is run when find_package(cartographer)
# is called; this module just checks if libcartographer is in the build tree at this point
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/src/cmake/modules/")

# add catkin packages
add_subdirectory(cartographer_ros/cartographer_ros_msgs)
add_subdirectory(cartographer_ros/cartographer_ros)

# The rviz plugin has to be built as a shared library
set(BUILD_SHARED_LIBS ON)
add_subdirectory(cartographer_ros/cartographer_rviz)
add_subdirectory(cartographer_ros/docs)

打开项目

打开Clion,点击打开,找到wsl目录内 home/用户名/cartographer_ws/src
作为项目打开,信任项目
在这里插入图片描述
在这里插入图片描述

配置wsl工具链

在弹出的窗口中点击管理工具链,增加wsl。系统会自动识别各种所需的路径。点击确定。
在这里插入图片描述
在这里插入图片描述

配置CMake选项

在Cmake配置页面修改构建类型CMake 选项构建目录,注意将下面的用户名替换成你自己的用户名。

  • 构建类型:Release
  • CMake 选项:-DCMAKE_INSTALL_PREFIX=/home/用户名/cartographer_ws/devel_isolated/cartographer
  • 构建目录:\wsl$\Ubuntu-20.04\home\ 用户名\cartographer_ws\build_isolated(不用自己输入,直接点击尾部的文件夹可以选)

在这里插入图片描述

处理报错

笔者在安装的时候遇到报错找不到Sphinx,查了一下是一个文档生成的工具,我安装后也无法加载到clion的环境变量内,不装它也不影响我们正常学习cartographer源码。在我们使用命令编译的时候也没有报错,那找到它的位置把它注释掉就行。
注释过后刷新Cmake即可。
在这里插入图片描述
在这里插入图片描述

完成

这样我们就完成了在clion内配置阅读cartographer源码的工作,后面我们还可以在Clion里面进行单独编译一个节点,快速跳转代码位置,打断点进行调试等工作。
在这里插入图片描述

相关推荐

  1. 开始学习cartographer之01.gflags与glog

    2024-07-17 03:34:02       15 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 03:34:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 03:34:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 03:34:02       58 阅读
  4. Python语言-面向对象

    2024-07-17 03:34:02       69 阅读

热门阅读

  1. hexdump -C 实现

    2024-07-17 03:34:02       24 阅读
  2. 掌握Conda包管理:精通版本控制的艺术

    2024-07-17 03:34:02       20 阅读
  3. 【ubuntu】没有声音??连不上网络???

    2024-07-17 03:34:02       17 阅读
  4. bat 设置防火墙指定ip范围 指定时间段放行访问

    2024-07-17 03:34:02       18 阅读
  5. 微信小程序实现省市区级联选择组件

    2024-07-17 03:34:02       21 阅读
  6. Linux硬件中断(IRQ)的基础知识

    2024-07-17 03:34:02       19 阅读
  7. AI问答-供应链管理:WMS / 仓储管理

    2024-07-17 03:34:02       19 阅读