首先,将我参考的大神文章放在开头,没有这些大神也就没有这篇笔记。
接下来是环境配置过程:
一.
首先打开Terminal,输入下列命令
sudo apt install mesa-common-dev freeglut3-dev coinor-libipopt-dev libblas-dev liblapack-dev gfortran liblapack-dev coinor-libipopt-dev cmake gcc build-essential libglib2.0-dev
其中,下载的时候,出现了下面两个错误(实际上是三个错误,但解决前两个错误,第三个也就解决了),无法连接到两个网站。
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/universe/f/freeglut/freeglut3_2.8.1-3_amd64.deb Connection failed [IP: 91.189.91.38 80]
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/universe/f/freeglut/freeglut3-dev_2.8.1-3_amd64.deb Connection failed [IP: 91.189.91.39 80]
多次尝试也没有办法, 尝试过更换镜像源,但会出现其它问题,所以还是放弃更换,使用了默认的镜像源。后来发现就是国外的网站被屏蔽了,使用特殊的技巧在windows上登进去了这两个网站,然后下载了两个文件,一个是freeglut3_2.8.1-3_amd64.deb,另一个是freeglut3-dev_2.8.1-3_amd64.deb,下面附上下载链接,可以直接下载。
链接:https://pan.baidu.com/s/1I0xqG9WVCtJ2x9JR4lAN9Q
提取码:194w
下载下来以后,直接复制粘贴到ubuntu里面,然后cd到粘贴到的文件夹,使用
sudo dpkg -i 安装包名称.deb
就可以安装成功,然后再次使用上面一开始的sudo apt...命令就可以完成这一步了。
其实中间还出现了下面这一个问题,应该就是这一部分出现的,但是我忘了具体是在哪里出现了。如果出现这个问题,直接使用sudo apt install -f,就可以安装缺少的依赖,解决下面这个error了。
dpkg: error processing package ***(--install): dependency problems - leaving unconfigured
二. 下载安装git,使用下列命令就可。
sudo apt-get update
sudo apt-get install git
三. 依次进行下列命令,前面没问题的话基本不会出什么问题
git clone https://github.com/lcm-proj/lcm.git
cd lcm
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
四. 下载Qt
这一部分算是比较重要,首先下载Qt文件到自己的电脑上,下载链接如下。
链接:https://pan.baidu.com/s/1p3-hBYNUcVbnMrUCQLJvRQ
提取码:kj6x
然后,使用虚拟机与主机共享文件夹的方法(上述参考文章3)把文件加入到虚拟机中。
接下来我使用转移文件的命令(上述参考文章5),把下载好的文件转移到了虚拟机的文件夹中,然后cd到转移后的文件夹中,使用下述命令就可下载成功。
sudo chmod -R 755 qt-opensource-linux-x64-5.10.0.run
./qt-opensource-linux-x64-5.10.0.run
接下来就是安装Qt,基本就是点next过就行,出现下面这个页面时,记得把Qt5.10.0勾选上,然后还是直接next到最后,把安装完弹出来的Qt页面关掉。
(借用一下一镜到底大神的截图)
五. 安装Eigen库
sudo apt-get install libeigen3-dev
六. 克隆cheetah代码
git clone https://github.com/mit-biomimetics/Cheetah-Software.git
cd Cheetah-Software
cd scripts
./make_types.sh
cd ..
mkdir build
cd build
上面进行完以后,接下来需要改一个文件,先找到下载下来的Qt文件夹的名字,复制文件夹名;
然后,找到/Cheetah-software/scripts/find_qt_path.sh,将里面的Qt改成刚刚自己复制的文件夹名字,要改两个地方的Qt,我的文件夹名字是Qt5.10.0,然后保存文件退出,下面的是更改前的内容。
QT_VER=”$(ls /opt/Qt/ | grep 5 -m1)”
printf “${home}/opt/Qt/${QT_VER}/gcc_64/”
下面的是更改后的
QT_VER=”$(ls /opt/Qt5.10.0/ | grep 5 -m1)”
printf “${home}/opt/Qt5.10.0/${QT_VER}/gcc_64/”
接下来,回到Terminal中,使用cd回到初始路径。
七. 提升Cmake处理速度(参考了上述参考文章6)
输入下示代码。
sudo cp -r /usr/include/eigen3 /usr/local/include/eigen3
八. 继续输入代码,进行Cmake
cd Cheetah-Software
cd build
cmake ..
九. 接下来重要的一步,也是我出错误最多的地方。
使用代码
make -j4
出现的第一个错误,提示
error: ‘char* __builtin_strncpy(char*, const char*, long unsigned int)’ specified bound 2056 equals destination size [-Werror=stringop-truncation]
这个问题其实很好解决,但就是想不到,直接在Cheetah software文件夹下找到Cmake文件;
然后把里面的两个-Werror删掉就可以,保存文件再执行一次make -j4命令(具体原理应该是gcc把所有的warning当作error看了,所以遇到warning也会暂停,删除以后就会无视warning)。
接下来可能会出现第二个问题,提示缺少stropts.h文件,这个也好解决,首先我参考的是参考文章7。先cd到一个可以创建文件的文件夹,使用runch stropts.h命令,创建stropts.h文件,然后编辑文件,写入
#if HAVE_STROPTS_H
#include
#endif
保存文件,接着使用上面的参考文章5的方法,把stropts.h文件移动到/usr/include中,就可以了。
然后在Terminal回到/Cheetach-software/build路径中,再一次使用make -j4命令,基本就可以到最后了。
十. 到现在配置就完成了,可以进行测试了
首先输入 ./sim/sim 打开控制器
然后另开一个Terminal,同样把路径调到/Cheetah-Software/build,输入下面的命令
./user/MIT_Controll/mit_ctrl m s
(一镜到底大神的操作,但具体没有搞懂这一步的作用)
接下来,打开控制器
接下来在第二个打开的Terminal中再一次输入
./user/MIT_Controll/mit_ctrl m s
弹出
然后修改参数就可以动了