本文主要介绍使用Qt调试Cheetah-Software的环境搭建步骤。
一、安装Cheetah-Software开源项目所需依赖包
sudo apt-get install -y mesa-common-dev freeglut3-dev coinor-libipopt-dev libblas-dev liblapack-dev gfortran cmake gcc g++ build-essential libglib2.0-dev
sudo apt-get install -y default-jdk python-all-dev liblua5.1-dev golang doxygen python-epydoc
二、安装轻量型通信库lcm
mkdir -p ~/opensource/
cd ~/opensource
git clone https://github.com/lcm-proj/lcm.git
cd lcm
mkdir build
cd build
cmake ..
make -j4
sudo make install
配置动态库
三、安装配置Qt5.14.0和libqt5gamepad库
1、下载Qt5.14.0
cd ~/opensource
wget https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.14/5.14.0/qt-opensource-linux-x64-5.14.0.run
2、安装Qt5.14.0
cd ~/opensource
chmod +x qt-opensource-linux-x64-5.14.0.run
sudo ./qt-opensource-linux-x64-5.14.0.run
在图形界面中安装Qt5.14.0。
3、配置Qt5.14.0环境变量
sudo gedit /etc/profile
在编辑器最后添加如下几行:
export PATH="/opt/Qt5.14.0/Tools/QtCreator/bin:$PATH"
export PATH="/opt/Qt5.14.0/5.14.0/gcc_64/bin:$PATH"
export LD_LIBRARY_PATH="/opt/Qt5.14.0/5.14.0/gcc_64/lib:$LD_LIBRARY_PATH"
export QT_PLUGIN_PATH="/opt/Qt5.14.0/5.14.0/gcc_64/plugins:$QT_PLUGIN_PATH"
export QML2_IMPORT_PATH="/opt/Qt5.14.0/5.14.0/gcc_64/qml:$QML2_IMPORT_PATH"
保存/etc/profile文件,退出。
source /etc/profile
四、安装配置libeigen3-dev
sudo apt-get install libeigen3-dev
sudo ln -s /usr/include/eigen3 /usr/local/include/eigen3
五、下载和修改Cheetah-Software开源项目
cd ~/opensource
git clone https://github.com/mit-biomimetics/Cheetah-Software.git
gedit common/CMakeLists.txt
将编辑器中30行的“master”修改为“main”,保存并退出。原因是不存在“master”分支,存在“main”分支。
./scripts/make_types.sh
生成基于LCM通信的消息C++类。
六、Qt Creator加载Cheetah-Software开源项目
1、运行Qt Creator,如图1所示。
图1
2、通过菜单【文件-->打开文件或项目】,弹出图2所示选择文件对话框,选择开源项目Cheetah-Software目录下的CMakeLists.txt文件,进入Configure Project界面,如图3。
图2
图3
在图3中勾选Desktop Qt5.14.0 GCC 64bit,点击按钮【Configure Project】进入图4界面。
图4
第一次加载Cheetah-Software项目中的CMakeLists.txt文件需要等待一段时间,其原因是从github.com网站下载googletest开源项目。当加载成功后如图5所示。
图5
3、配置项目,点击左侧【项目】切换到配置项目界面,如图6所示。
图6
在图6中的【构建目录】编辑框中编辑编译目录,如在Cheetah-Software目录下新建的out子目录,见图7所示。
图7
此时修改了构建目录后,需要重新下载googletest开源项目到构建目录下,请耐心等待,成功后如图8所示。
图8
七、调试Cheetah-Software开源项目
Cheetah-Software开源项目不适合在Qt Creator中调试,一旦执行,立即崩溃,其原因是加载参数时使用了相对路径,有两处需要修改。
1、修改Cheetah-Software开源项目下/common/src/Utilities/utilities.cpp中的std::string getConfigDirectoryPath()函数。
这个函数中使用的是相对路径,可以修改为
std::string getConfigDiretoryPath()
{
return THIS_COM “/config/”;
}
并在该文件include部分添加#include "Configuration.h"。
2、修改Cheetah-Software开源项目下/sim/include/DrawList.h文件中DrawList::_baseFileName的初始值修改为:
std::string _baseFileName = THIS_COM"./resources/";
再在文件include部分添加#include "Configuration.h"。
再次编译即可,通过修改,可直接执行sim命令,mit_ctrl命令有选项,需在图9中配置。
图9
通过此设置,相当于在终端输入mit_ctrl m s。
八、小结
MIT Cheetah-Software开源项目通过以上配置可以在Qt Creator环境中进行调试,后续会有源码分析。