补充“MIT Cheetah 完整开源代码仿真环境”搭建过程中文资料的细节

走远了吗. 提交于 2020-03-02 10:24:46

引言

作为世界上最先进四足之一的MIT Cheetah在2019年底被其团队开源了所有软硬件设计。针对此次开源的代码环境搭建过程,虽然该团队给出了非常详尽的安装调试过程,但是在自己安装过程中仍然有许多问题出现。所以在国内还没有详尽的资料的情况下,作者写下这篇博客。最主要目的是结合前人的工作,做具体操作过程的补充,所以读者需要结合文中所引用的资料完成自己环境的搭建。

背景介绍

当然,具作者了解到,国内首先针对该项目给出简介的是:

《廖洽源:MIT Cheetah 完整开源代码与论文简介》
文章给出了四足机器人的软硬件下载地址连接,具体介绍了软件算法的控制架构以及开源代码的结构组成,但是针对安装过程有所省略。最后给出仿真环境的操作过程及效果展示。

随后另一位复现者华北舵狗王在上文的基础上给出了更多的安装指导:

华北舵狗王带你一起做四足机器人9 (MIT Cheetah 开源 代码 仿真器编译)
文章详细说明了仿真环境在虚拟机ubuntu14.04下的安装过程,甚至给出了其自己的虚拟机镜像。

作者非常感谢上述两个作者做的前期工作,为自己环境的搭建做出的重要指导作用。由于安装过程以及程序架构已被详细讲述,所以本文不讲述详细的安装过程,仅根据个人经验补充在安装过程中可能遇到的问题。为更多对该开源项目感兴趣的腿足机器人工作者提供可参考的资料。
另外还有名为深圳机擎科技的人提供了机器人的三维结构模型有兴趣的可以查看。

具体方法

作者是在VMware Workstation Pro 15.5.1中搭建的Ubuntu 18.04系统安装了仿真环境。

前期工具的准备

问题No.1:关于install无法获得前端锁的问题

在作者安装过程中经常会出现这个问题:在ubuntu系统中我们经常会使用软件安装命令:

sudo apt install

如果你出现了下面的错误提示,请查看作者的另一篇博文寻找解决方案

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

问题No.2:关于GitHub仓库git工具下载的提醒

我们会经常下载GitHub上的仓库作为项目的依赖,所以安装一个git是非常有必要的,具体的安装过程你可以参考这里。而且有时候你会出现一个错误提示该文件夹不是git库,所以要养成一个使用git工具下载仓库的习惯,这样还可以解决国内下载时网速的问题。经常用到的命令:

git clone https://******************************

问题No.3:关于CMake工具的相关问题

CMake编译工具作为连接代码与操作系统的桥梁,在ubuntu中的地位更加突出,通过学习这个工具你就可以读懂CMakeList.txt里面的相关配置过程,从而理解项目的编译过程。你可以参考这篇进行CMake的安装
在代码编译时你经常会使用下面的几个命令语句:

cmake .. //表示运行上一级目录下的CMakeList.txt文件

运行完上面没有问题后,运行编译语句:

make -jn //表示并行n个进程编译代码

当你的虚拟机分配内存不够时,它会出现这个错误:

c++: internal compiler error: 已杀死 (program cc1plus)

解决办法就是扩展虚拟机的内存,这里强烈建议在安装虚拟机时操作,因为之后再该会出现虚拟机打不开的情况(我的教训请看图,重新安装的虚拟机)。
虚拟机崩坏效果
所以我的虚拟机分配了50G的内存,运行make -j8都没有问题。当然你可以使用make编译,但是时间长到你怀疑人生。
还有最后一个命令语句:

make install //安装已经编译好的程序

最好是前面加上sudo避免有一些安装需要安装在root目录下导致权限不够。

相关依赖的安装

问题No.1 关于LCM安装的问题

首先需要安装一个JAVA编译器:

可以这样安装:

sudo apt install default-jdk

但是编译LCM库时出现了版本不够的错误,改成了8版本,更高的也会出错

sudo apt install openjdk-8-jdk //8版本

不建议去官网下载LCM1.3.1(项目推荐的),因为安装不方便。建议:

git clone https://github.com/lcm-proj/lcm.git 

最后使用CMake编译安装。

问题No.2 关于QT5安装包.run安装的问题

ubuntu18.10可以直接apt安装(但我的是18.04):

sudo apt install libqt5 libqt5gamepad5

作者使用了项目推荐的5.10.0版本。你会发现去官网下载linux系统的安装包后缀是.run,你可以在文件目录下终端执行命令:

sudo chmod -R 777 qt-opensource-linux-x64-5.10.1.run
sudo ./qt-opensource-linux-x64-5.10.1.run

之后开始你熟悉的软件安装界面,我将其安装在了/opt/Qt5.10.0目录下。

问题No.3 关于Eigen3库的安装问题

这个安装包比较特殊,官方也说了你不需要编译,只需要将它的eigen文件夹放到你的工程头文件中。这里想说的是,你放在/usr/local/include/usr/include文件中都是可以的。

源代码修改

项目的地址在GitHub中【https://github.com/mit-biomimetics/Cheetah-Software】,但是作者最终编译出来无法运行。通过下载华北舵狗王提供的网盘版编译运行才成功,具体原因未知。

问题No.1 关于sim/CMakeList.txt修改

根据廖洽源的建议,需要修改sim/CMakeList.txt中的Qt5路径,结合华北舵狗王的文章正确的版本应该是:

set(CMAKE_PREFIX_PATH opt/Qt5.10.0/5.10.0/gcc_64)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)

# Instruct CMake to run moc automatically when needed
set(CMAKE_AUTOMOC ON)
# Create code from a list of Qt designer ui files
set(CMAKE_AUTOUIC ON)

set(Qt5Core_DIR opt/Qt5.10.0/5.10.0/gcc_64/lib/cmake/Qt5Core)
set(Qt5Widgets_DIR opt/Qt5.10.0/5.10.0/gcc_64/lib/cmake/Qt5Widgets)
set(Qt5Gamepad_DIR opt/Qt5.10.0/5.10.0/gcc_64/lib/cmake/Qt5Gamepad)

这样cmake不会报QT5的错误,会有其他的warning,不过没有影响。

问题No.2 关于./make_types.sh的运行

针对ubuntu18.04一定要进入到scripts文件加下再运行,项目开发者在项目中有声明,要是在build文件中运行./../scripts/make_types.sh会删除scripts文件中关于python的代码。
运行完这条命令后会有错误提示:

rm: cannot remove...
NOTICE:**************

不用理会这个问题。

问题No.3 关于joystick即手柄问题

其他人的资料也已经说明了在运行mini cheetah时不插手柄会反关节物理引擎报错,作者测试确实是这样的。所以你想运行这个控制器必须有一个手柄,我买的是开发者推荐的罗技F310手柄。当你运行.user/MIT_Controller/mit_ctrl m s控制器时会报错:

Error opening /dev/ttyUSB0: No such file or directory

不用管这个错误,手柄依然能够控制机器人

问题No.4 关于control_mode及cmpc_gait的切换

control_mode的切换需要在运行控制器后,从0切换到10,当机器人不动后再切换成1,狗会站立起来,再切换成4即运行trot步态,此时通过手柄摇杆你可以控制机器人。
cmpc_gait的切换初始为9,你可以从1开始测试,4会让机器人倒下四脚朝天,使引擎崩溃。

其他问题持续更新中

如果对你有用,请支持我。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!