Robotics Library项目代码分析(1)开始

开始

博客故事

这是一个关于Robotics Library项目源码解析的博客,我写这个博客的意义一部分在于督促我学习吸收怎么使用C++进行项目的开发和构建,一部分是因为我对于机器人或多或少有点感兴趣,一次偶然的机会看了一下这个项目的源代码,后面就萌生出想要进行源码分析的一个尝试。我从来没有接触过机器人学以及其相应的知识,有的只是一些大学期间学的不是很好的高等数学和一些薄弱的计算机基础,再加上一些C++的知识,这一个源码分析或许将是一个对我的极大挑战,我会尽量不断地更新博客。

编译环境

我采用的是Ubuntu22.04,准确的说是WSL2的Ubuntu22.04系统,编译器我选择是clang18,文本编辑器我采用的是vscode+wsl插件+cmake扩展+clangd扩展。基础的代码开发环境,不同的读者也有适合自己的不同的配置。
重点说一下编译Robotics Library的要求:

  • 需要安装一个编译器(例如 GNU 编译器集合)和跨平台构建系统 CMake(版本 ≥ 2.8.11)。使用以下命令在 Ubuntu 上安装它们:

    sudo apt-get install build-essential cmake
    
  • 构建所有组件需要一些第三方库。直接使用apt安装,先把官方的存储库加上:

    sudo add-apt-repository ppa:roblib/ppa
    sudo apt-get update
    

    然后执行:

    sudo apt-get install libboost-all-dev libbullet-dev libdc1394-dev libeigen3-dev libnlopt-dev libode-dev libsimage-dev libsolid3d-dev libsoqt520-dev libxml2-dev libxslt1-dev
    
  • 安装生成文档的包:

    sudo apt-get install doxygen graphviz
    
  • 安装boost 1.8.2
    Robotics Library构建时候会用到boost,在其0.7.0源代码中,指定了一个boost区间版本,最高到1.6.4, 我采用1.7.4版本的boost会编译报错,但是在boost1.8.2版本无报错,且可以成功运行,所有我们手动编译boost版本。

    wget -O boost_1_82_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.82.0/boost_1_82_0.tar.gz/download
    tar xzvf boost_1_82_0.tar.gz
    cd boost_1_82_0/
    

    获取编译所需要的库

    sudo apt-get update
    sudo apt-get install build-essential g++ python3-dev autotools-dev libicu-dev libbz2-dev 
    

    设置boost的引导

    ./bootstrap.sh --prefix=/usr/local
    

    开始并行安装boost,其中$n为你电脑的最大线程数,建议你几核电脑就设置n为几,如果绝对麻烦直接把-j $n去掉或者直接-j 4,一般现在买的电脑最少也有4线程。

    sudo ./b2 --with=all -j $n install 
    

    将 /usr/local/lib 目录添加到动态链接库的搜索路径中,并更新动态链接库缓存

    sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf'
    sudo ldconfig
    

编译流程

  • 下载源码,并解压
    wget -O https://github.com/roboticslibrary/rl/archive/0.7.0.tar.gz
    tar -xvzf rl-0.7.0.tar.gz
    tar -xvzf rl-0.7.0-examples.tar.gz
    cd rl-0.7.0
    
  • 进入build文件夹
    mkdir build
    cd build
    
  • 执行编译并安装
    cmake -D CMAKE_BUILD_TYPE=Release ..
    make
    sudo make install
    sudo ldconfig
    
  • 验证安装
    /usr/local/bin/rlPlanDemo /usr/local/share/rl-0.7.0/examples/rlplan/unimation-puma560_boxes_rrtConCon.xml
    
    如果这里没有效果,改成
    /usr/bin/rlPlanDemo /usr/lshare/rl-0.7.0/examples/rlplan/unimation-puma560_boxes_rrtConCon.xml
    
    效果图
    在这里插入图片描述

开始部分结束了,下次我们开始逐步抽离分析源码

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值