首页 关于
树枝想去撕裂天空 / 却只戳了几个微小的窟窿 / 它透出天外的光亮 / 人们把它叫做月亮和星星
目录

demo仓库

        $ tree gazebo_demos -L 2
        gazebo_demos
        ├── bin
        │   └── vel
        ├── demos
        │   └── velodyne
        ├── lib
        │   └── libvelodyne_plugin.so
        ├── models
        │   └── velodyne_hdl32
        ├── README.md
        └── setup.sh

为了方便Gazebo仿真系列文章的写作,我们特意在Github上创建一个demo仓库。 本文介绍该仓库的组织、编译、运行的方式方法。

右边是gazebo_demos的目录结构。其中子目录bin用于存放各个demo编译生成的可执行文件。demos放置各个demo的源文件和编译脚本。lib存储运行demo所需的动态链接库,它们通常是Gazebo的各种插件。 models中保存了各种仿真模型。

比如说,这里第6行中的velodyne就是一款激光雷达的仿真demo,"velodyne"是这款雷达的牌子。第4行和第8行中的文件vel和libvelodyne_plugin.so,分别是该demo编译生成的可执行文件和动态链接库。 第10行的velodyne_hdl32则是存储了描述该雷达的SDF文件和纹理文件。

文件README.md就是一些简单的说明文本。不说。

在运行各个demo之前,我们需要通过如下的指令加载脚本setup.sh。

        $ source setup.sh

脚本setup.sh的内容如下,我们在其中声明了一些环境变量。第5到7行的三个GAZEBO_DEMO_*前缀的变量主要用于在各个demo的编译脚本中指引可执行文件和链接库的存储路径的。 第9行的$LD_LIBRARY_PATH是Linux系统加载动态链接库时的搜索路径,而$PATH则是Linux查找可执行文件的搜索路径。这里将lib和bin两个子目录分别添加到这两个环境变量中。 最后的GAZEBO_MODEL_PATH是gazebo用于查找模型文件的路径,这里添加了model子目录。

        #!/usr/bin/env bash
        
        WS_PATH=`pwd`
        
        export GAZEBO_DEMO_PATH=${WS_PATH}
        export GAZEBO_DEMO_LD=${WS_PATH}/lib
        export GAZEBO_DEMO_BIN=${WS_PATH}/bin
        
        export LD_LIBRARY_PATH=${GAZEBO_DEMO_LD}:${LD_LIBRARY_PATH}
        export PATH=${GAZEBO_DEMO_BIN}:${PATH}
        export GAZEBO_MODEL_PATH=${WS_PATH}/models:$GAZEBO_MODEL_PATH

各个demo都使用CMake进行编译,在其对应的子目录下都有一个脚本build.sh,用于一键编译。该脚本的内容如下,所作的工作就是创建build子目录,然后进入该子目录中完成编译操作, 最后将编译生成的可执行文件和动态链接库搬运到bin和lib目录下。

        #!/usr/bin/env bash
        if [ ! -d build ]; then
            mkdir build
        fi
        cd build
        cmake ..
        make
        mv libvelodyne_plugin.so ${GAZEBO_DEMO_LD} 
        mv vel ${GAZEBO_DEMO_BIN}



Copyright @ 高乙超. All Rights Reserved. 京ICP备16033081号-1