树莓派4B(Ubuntu22.04)配置MIT的mini cheetah环境

MIT的mini cheetah通常是在UP board(4-core Intel Atom x5-Z8350 processor, 4 gb RAM, and roughly 5 W peak power consumption)(X86架构)上运行的,是否可以移植到树莓派4B(ARM架构)上?摸索了一段时间,成功了。将今天的方法贴出来,供大家学习。

一、环境配置过程,首先打开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

二、下载安装git,使用下列命令就可。
sudo apt-get update
sudo apt-get install git

三、依次进行下列命令,安装lcm
git clone https://github.com/lcm-proj/lcm.git 

cd lcm 
mkdir build 
cd build 

cmake .. 
make 
sudo make install 
sudo ldconfig

如cmake ..出现问题:
解决办法:
安装lcm-1.4.0是有一些依赖需要安装的,安装完这些依赖,上述三个报错都可以解决。这些依赖罗列如下:
Required packages:
 
sudo apt-get install build-essential
sudo apt-get install libglib2.0-dev
sudo apt-get install cmake
 
Optional packages (e.g., for language-specific support or building documentation):
 
sudo apt-get install default-jdk
sudo apt-get install python-all-dev
sudo apt-get install liblua5.1-dev
sudo apt-get install golang
sudo apt-get install doxygen
sudo apt-get install python-epydoc

四、树莓派4B(Ubuntu22.04)安装QT5(https://blog.csdn.net/qq_38228260/article/details/126314109)
1、安装Qt组件
sudo apt-get install qtbase5-dev qtbase5-dev-tools qtchooser qt5-qmake qtcreator qtbase5-examples qtbase5-doc-html

sudo apt-get install libqt5gamepad5-dev libudev-dev             // ------安装qt5gamepa组件

2、安装编译环境,gcc、g++、gdb(调试器)
// 该句执行后同时安装gcc g++ gdb
sudo apt install build-essential gdb

3、安装clang(编译器)、llvm(编译器)、lldb(调试器)
sudo apt install clang llvm lldb

4、安装cmake编译工具
// 安装cmake
sudo apt install cmake

5、查看
g++ --version
gcc --version
gcc --version
cmake --version


五、安装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


七、提升Cmake处理速度(参考了上述参考文章6)
    输入下示代码。
sudo cp -r /usr/include/eigen3  /usr/local/include/eigen3


八、继续输入代码,进行Cmake
cd Cheetah-Software
cd build
cmake ..


九、接下来重要的一
首先输入   
make -j4

十、错误,提示处理(https://zhuanlan.zhihu.com/p/537013183)
1、打开Cheetah-Software/common文件夹下的CmakeLists.txt文件,修改master为main,保存后退出,重新执行cmake。
2、找到/Cheetah-software/scripts/find_qt_path.sh,将里面的Qt改成如下,主要是树莓派tq5.15.3的位置
QT_VER="$(ls /usr/lib/aarch64-linux-gnu | grep 5 -m1)"

printf "${HOME}/usr/lib/aarch64-linux-gnu${QT_VER}/gcc_64/"

3、打开mit主文件夹下的sim文件夹下的CMakeLists.txt文件,(https://zhuanlan.zhihu.com/p/537013183)
添加:
set(CMAKE_PREFIX_PATH /usr/lib/aarch64-linux-gnu/qt5)
set(QT5Core_DIR /usr/lib/aarch64-linux-gnu/cmake/Qt5Core)
set(QT5Widgets_DIR /usr/lib/aarch64-linux-gnu/cmake/Qt5Widgets)
set(QT5Gamepad_DIR /usr/lib/aarch64-linux-gnu/cmake/Qt5Gamepad)

注释掉
,即删除SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH_1})


------执行 make -j4可能会出现如下错误,
4、sse指令集------(https://blog.csdn.net/chiyiwei7384/article/details/119248072)
    /Cheetah-Software/third-party/JCQP/CholeskyDenseSolver.cpp:11:10: fatal error: immintrin.h: No such file or directory
    /Cheetah-Software/third-party/JCQP/CholeskySparseSolver.cpp:11:10: fatal error: immintrin.h: No such file or directory
a、将sse2neon文件拷贝到树莓派p4(ubuntu22.04)的文件夹:/usr/include/
   或 直接        sudo git clone https://github.com/jratcliff63367/sse2neon.git
b、拷贝sse2neon.h到 /usr/include/文件夹
    sudo cp -r /usr/include/sse2neon/SSE2NEON.h  /usr/include/sse2neon.h
c、用:
    #include "sse2neon.h"

     代替源文件CholeskyDenseSolver.cpp;CholeskySparseSolver.cpp中的:
    #include <immintrin.h>


5、-Werror,解决:warning当作error了,打开Cheetah-Software/文件夹下的CMakeLists.txt文件里的2个“-Werror”删除掉。

6、提示缺少stropts.h文件:fatal error: stropts.h: No such file or directory
    
    解决:在/usr/include/下新建文件      ----(https://blog.csdn.net/weixin_41106948/article/details/128779123)
sudo touch stropts.h 
打开 
sudo nano stropts.h 
复制写入如下内容
#if HAVE_STROPTS_H
#include <stropts.h>
#endif

6、error: ‘ioctl’ was not declared in this scope
解决:修改robot/src/rt/rt_serial.cpp,将17-20行改为:  

// #include <asm/termios.h>

#include <asm/ioctls.h>
#include <asm/termbits.h>

#undef termios

#include <sys/ioctl.h>
 

---------------------------------------------------------
仿真运行:Run simulator

cd Cheetah-Software/build

./sim/sim     // 打开控制器

./user/MIT_Controller/mit_ctrl m s


3: Cheetah 3, m: Mini Cheetah
s: simulation, r: robot

mini cheetah仿真


-----------------------------------------------------
测试通信库(To test the common library)
./common/test-common
---------------------------------------------------------

运行机器狗代码(run the robot code) 
./robot/robot
./user/MIT_Controller/mit_ctrl m r
 

树莓派4b+spine时spi需要开通才能正常通信,具体做法是:

sudo nano /boot/firmware/config.txt

添加:

dtparam=spi=on
dtoverlay=spi2-2cs

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值