linux cnc 树莓派,谈谈LinuxCNC
8種機械鍵盤軸體對比
本人程序員,要買一個寫代碼的鍵盤,請問紅軸和茶軸怎么選?
背景
? 在最開始打算摸索一下LinuxCNC是因為ROS一般用于科研,工業上較少使用,究其根本是因為其實時性與穩定性達不到工業標準。而LinuxCNC項目本身就是向工業方向發展,其可靠性與穩定性應該是沒有問題的。故希望從LinuxCNC項目學習,主要包括保證系統實時性的方式、系統架構(整個控制系統中各個模塊的解耦方式)、以及在線實時軌跡規劃算法。在搜索資料發現,LinuxCNC項目原名EMC2,同時有另外一個分支叫Machinekit.
直到目前為止(2018年8月16日),LinuxCNC的官方穩定版本號為2.7.14,Machinekit沒有明確的版本號,但從推薦的鏡像介紹里面,使用的是基于3.8內核的Debian with xenomai kernel ,同時也表示,基于rt-preempt 4.x.x kerneled versions將會很快推出。
? 在這里先介紹一下Machinekit的背景,Machinekit項目最開始是希望在BeagleBoneBlack(俗稱BBB,TI發布的一款嵌入式板,類似于樹莓派,但是性能比樹莓派稍弱,但是畢竟是TI出品,元器件與Layout都是工業級別的,穩定性有保證,相比之下,樹莓派性能是比較強,但是貌似穩定性跟BBB不是一個級別,無法應用在工業領域)上移植LinuxCNC實現3D打印,無奈LinuxCNC項目最初使用的實時方案是RTAI,而RTAI不支持ARM平臺,無奈之下Machinekit的作者只好自己移植其他的實時內核。所以總結起來就是 Machinekit更像是針對BBB這款硬件使用的移植版LinuxCNC。
LinuxCNC與Machinekit的實時方案比較
查閱兩者官網可知,目前LinuxCNC項目支持的實時方案為
Machinekit項目支持的實時方案為:support for Xenomai and RT-PREEMPT realtime threads besides RTAI
There should be minimal user configuration changes for using the new RT options.
kernel autodetection
The ‘unified build’ branch will detect the RT features of the running kernel and choose an appropriate thread flavor.
runtime loading of support modules
All thread-specific code has been wrapped into shared objects and libraries which are loaded on demand. This enables fixes, upgrades or tests by just exchanging a file.
總結一下就是
LinuxCNC支持Ubuntu 與Debian,實時方案選擇Preempt-RT和RTAI
Machinekit對操作系統沒有明確的限制,但是官方在Debian上測試沒問題,相比之下,Machinekit支持Xenomai 、RT-PREEMPT實時方案。
對比LinuxCNC與Machinekit發現,Machinekit更致力于一套代碼在多套平臺上使用,其實現方式為抽象RTAPI層作為實時方案的抽象,在運行時動態加載對應的庫文檔。
個人感覺,Machinekit的格局比LinuxCNC要大,支持面更廣。但又因為其通用性,可能在穩定性上比不上LinuxCNC,當然這只是個人推測,并沒有實際測試。當然,假如只是為了學習,那么Machinekit應該更有意思。
軟件架構
大概瀏覽了一下LinuxCNC 與 Machinekit的開發文檔,發現兩者的整體架構非常一致(那當然啦,畢竟本是一家),而LinuxCNC 的文檔看起來好像比Machinekit更加詳細。下面就先以LinuxCNC 的軟件架構進行分析,最后在對比Machinekit,看看Machinekit是如何在LinuxCNC的基礎上做到多平臺兼容的。
軟PLC Classic Ladder
總結
以上是生活随笔為你收集整理的linux cnc 树莓派,谈谈LinuxCNC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux搭建Discuz论坛
- 下一篇: linux 嵌入式开发常用网站整理