1、编译安装内核
参考Raspberry Pi官方文档选择相应的内核版本进行编译安装,这里不多介绍
2、编译IgH
把IgH主站代码放到开发板上,进行配置编译(配置和编译可以参考网上ubuntu下安装IgH的文章),如果遇到报错可以参考网上相关解决办法。
编译出 ec_master.ko ec_generic.ko, 不过这里不会使用ec_generic.ko驱动文件,这个通用的驱动文件是在TCP/IP协议栈接口之上进行调用的,所以会走TCP/IP协议栈,会影响实时性。下面优化网卡驱动,会在网卡驱动上直接支持IgH接口。
3、实时网卡优化
树莓派上使用的bcmgenet网卡,在网卡驱动中加上对应的IgH功能支持,编译成ec_genet.ko。
4、编写测试demo
在examples添加编写测试程序
5、运行程序
需要先卸载掉系统自带的genet网卡驱动,以便加载实时网卡驱动
加载完成后可以看到正常识别出了6轴伺服。
进行各种优化之后,运行100小时,周期4ms,无负载下,控制6轴伺服周期任务抖动在12us左右
网络无丢包(相差一个包是因为发送出去还没有接收)
6、总结
上面测试结果可以看到还有一些地方实时性不好,这个RT-linux本身的实时性有一定的关系,需要后续进行继续优化。