之前我采用树莓派4B构建了一个高性能、低成本的运动控制器,同时设计了一个基于STM32的伺服驱动载板来实现CAN伺服和IMU采集,最终驱动ODrive实现四足机器人的步态与力控,相关资料如下:
上述的控制器存在如下几个问题:
1)首先树莓派4B发热很严重,导致板载IMU温飘严重,需要频繁标定陀螺仪偏差;
2)树莓派4B莫名重启,不知道是由于发热还是震动,有时候树莓派4B会死机;
3)树莓派4B算力不足,之前运行MIT QP足力分解算法在仿真中完全没问题,但是在实物运行时出现抖动发散。
综上,急需寻找一个低成本的新主控替代方案,当然最主要的是其具有RT实时补丁的官方生态。
今年又出了很多兼容树莓派IO的ARM控制器,这样可以继续使用MOCO-Pihat来实现伺服控制,如Tinkerboard-S2和RK3399等开发板,在上学时我一直想使用VIO来实现无人机的视觉里程计,在参考他们的论文中发现其机载处理器采用了韩国Odroid-XU4,之后我许多视觉应用都基于该开发板,其成本不贵但是性能和稳定性都很高,如KCF跟踪算法在720P下能到30Fps,ArUco二维码识别更是能到实时,但是由于其不是标准树莓派引脚就没考虑采用其来设计运动控制器,而采用MIT方案的upboard目前其价格很高基本需要上千元。
好在今年Odroid 官方推出了Odroid C4系列,通过在其论坛查找,发现有人给他打了RT补丁,另外它的IO与树莓派兼容,价格500RMB左右性能也比树莓派强,因此其成为了下一个主控的首选,下面就介绍如何采用Odroid改装一个运动控制器。
Hardkernel最新推出的Odroid C4单板电脑採用与Raspberry Pi Model B相同的尺寸设计,并搭载效能更高的Amlogic S905X3 SoC,不但支持Android、Ubuntu、CoreELEC等作业系统,甚至能够播放4K超高解析度影片。
Odroid C4搭载Amlogic S905X3 SoC,具有4个最高时脉为2.016GHz的Arm Cortex-A55处理器核心,采用ARMv8-A架构并支援Neon与Crypto延伸指令集,并内建具有4个运算单元且时脉高达650MHz的Mali-G31MP绘图处理器,支援OpenGL ES 1.1/2.0/3.0、Vulkan 1.0、OpenCL 2.0等API,记忆体部分则搭载容量为4GB的DDR4-2640。与Hardkernel先前介绍的Odroid N2相比,Odroid N2因搭载较高阶的Amlogic S922X SoC,具有4个运作时脉为1.8GHz的Cortex-A73处理器核心与2个1.9GHz Cortex-A53处理器核心,搭配具有6个运算单元且时脉高达846MHz的Mali-G52绘图处理器,因此有著较出色的效能表现。相较之下Raspberry Pi 4的Broadcom BCM2711 SoC,具备4个最高时脉为1.5GHz的Arm Cortex-A72处理器核心与VideoCore VI绘图处理器,虽然也有2GB、4GB的记忆体选项,但整体效能却比较低。
在综合效能表现部分,Odroid C4都能赢过Raspberry Pi 4,但不及先前推出的Odroid N2,由于Odroid C4的绘图处理器规格落后Odroid N2很多,所以效能表现也被甩开。
Odroid C4的记忆体效能也是介于Odroid N2与Raspberry Pi 4之间。
Odroid C4在运作时温度大约为摄氏75度左右。
电力消耗方面无论是运作中、閒置、关机都比Raspberry Pi 4省电,最终集成MOCO-pihat的Odroid C4如下:
安装RT实时补丁我参考了官方论坛的这个帖子:
https://forum.odroid.com/viewtopic.php?f=55&t=41129
由于其需要5.10内核版本需要从如下网址下载1218镜像(原始帖子里给的链接是5.11版本,而RT补丁目前只支持5.10,我只能全部一个一个测试好在找到了对应的版本)
http://ppa.linuxfactory.or.kr/images/raw/arm64/focal/
之后就比较简单了由于其系统是服务器版本,安装好后啥也没有,无法联网也没有任何文本编辑器。因此首要是更新系统,安装基本的开发编辑环境,由于Odroid C4没有WIFI而网线直连在没有ifconfig工具支持下是没办法查看其的IP,更无法实现上网,因此这里我采用路由器中继的方案。这里我采用了OpenWrt的路由器。
在登录后首先使用手机建立热点,让路由器中继该WIFI实现上网:
之后查看对应的Odroid板子IP:
在ssh远程连接后,按教程联网进行更新:
$ sudo apt update
$ sudo apt dist-upgrade
直接安装对应RT补丁:
$ sudo apt install linux-image-5.10.0-odroid-rt-arm64
$ sudo reboot
安装后重启使用uname -a查看是否具有RT提示
$ uname -a
Linux focal-server 5.10.0-odroid-rt-arm64 #1 SMP PREEMPT_RT Ubuntu 5.10.0-202012062208~focal (2020-12-06) aarch64 aarch64 aarch64 GNU/Linux
之后安装对应的编译环境包括nano、ifconfig工具、cmake等。
sudo apt install net-tools
sudo apt-get install cmake
sudo apt-get install g++
下载eigen,yaml进行编译与安装
下载代码后配置自启动:
sudo nano /etc/rc.local加入
sudo /home/odroid/MOCO_ML_CROSS/hardware_task &
#sudo /home/odroid/MOCO_ML/hardware_task/build/hardware_task &
sleep 1
#sudo /home/odroid/MOCO_ML_CROSS/control_task &
#sudo /home/odroid/MOCO_ML/control_task/build/control_task &
sleep 1
sudo /home/odroid/MOCO_ML_CROSS/navigation_task &
#sudo /home/odroid/MOCO_ML/navigation_task/build/navigation_task &
最后配置控制器为固定IP:
sudo nano /etc/netplan/50-cloud-init.yaml
ifconfig查看网卡名字,加入:
network:
ethernets:
eth0:
addresses:
- 192.168.1.119/24 # IP及掩码
gateway4: 192.168.1.1 # 网关
nameservers:
addresses:
- 8.8.8.8 # DNS
version: 2
评论(0)
您还未登录,请登录后发表或查看评论