
聯(lián)系人:藍(lán)小姐
手機(jī):15359298293
QQ:2259678687
郵箱:lanlan@szcxdcs.com
地址:深圳市寶安區(qū)西鄉(xiāng)街道臣田社區(qū)寶民二路東方雅苑2層B39
分類: 施耐德Schneider
聯(lián)系人:藍(lán)小姐
手機(jī):15359298293
QQ:2259678687
郵箱:lanlan@szcxdcs.com
地址:深圳市寶安區(qū)西鄉(xiāng)街道臣田社區(qū)寶民二路東方雅苑2層B39
| AS-C484-265 |
| AS-C484-265 |
五、結(jié)束語
控制系統(tǒng)中的干擾是一個十分復(fù)雜的問題,只有設(shè)計工程師在設(shè)計過程中做到“未雨綢繆,防微杜漸”,堅持“預(yù)防是最有效、最經(jīng)濟(jì)的方法”的準(zhǔn)則,來綜合和全面的考慮各方面的因素,才能夠有效地避免系統(tǒng)干擾的的發(fā)生,從而保證設(shè)備穩(wěn)定可靠的運(yùn)行。
ROS(Robot OperatingSystem)是開源的機(jī)器人系統(tǒng)平臺。使用這個之后,機(jī)器人就可以看見東西、測繪、導(dǎo)航,或是以最新的算法作用于周圍的環(huán)境當(dāng)中。假如想要制造復(fù)雜的機(jī)器人,已經(jīng)準(zhǔn)備好的ROS程序代碼就能派上用場。ROS能在最低限度下運(yùn)用。這可以透過Raspberry Pi等級的計算機(jī)安裝。
做為ROS的入門篇我們來看看如何控制伺服機(jī)。伺服機(jī)的缺點是會盡快遵照指令運(yùn)轉(zhuǎn),因此頭部常常會突然活動,以至于失去平衡。不過使用ROS之后,就可以進(jìn)行正弦曲線運(yùn)動,讓機(jī)器人保持穩(wěn)定。由于可以在ROS當(dāng)中進(jìn)行這項操作,因此無須改寫控制用的程序代碼。另外,連接伺服機(jī)和ROS的程序代碼,以及伺服機(jī)的硬件都無須變更。再者,程序代碼還可以任意使用。
ROS很適合用在Ubuntu或Debian上,無須編譯。建置時要在Linux機(jī)器上執(zhí)行Ubuntu,使用業(yè)余用伺服機(jī)、Arduino和普通的導(dǎo)線。ROS要在Ubuntu機(jī)器上啟動,訊息則透過USB傳送到Arduino。只要安裝二進(jìn)制的ROS套件,就會在主控臺程序(像是gnome-terminal或konsole)追加以下指令,這樣Arduino系統(tǒng)就能辨識ROS函式庫。
接下來要將程序代碼上傳到Arduino當(dāng)中,執(zhí)行低階的伺服機(jī)控制,以便能從Linux機(jī)器操作。這時要以限制范圍內(nèi)的百分比(0.0~1.0)指定伺服機(jī)的位置。之所以使用百分比而不是寫明角度,是因為Arduino的程序代碼限制了正確的角度,要避免在指定角度時發(fā)生沖突。
就如各位所見,使用ROS之后,一般的循環(huán)函數(shù)就會變得相當(dāng)簡單。循環(huán)函數(shù)只會訂閱(subscribe)數(shù)據(jù),任何Arduino循環(huán)都一樣。設(shè)定時要將ROS初始化,將各個ROS訊息訂閱者的訂閱叫出來。每個訂閱者會占據(jù)Arduino的RAM,數(shù)量取決于要用程序代碼做什么,以6個到12個為限。
#include
#include
#include
#include
#define SERVOPIN 3
Servo servo;
void servo_cb( const std_msgs::Float32& msg )
{
const float min = 45;
const float range = 90;
float v = msg.data;
if( v > 1 ) v = 1;
接下來要設(shè)法透過Arduino在ROS的世界說話。最簡單的方法是使用機(jī)器人啟動檔。雖然以下的檔案內(nèi)容非常簡單,但是這里要追加啟動檔,如此一來即使是非常復(fù)雜的機(jī)器人,也能用一個指令啟動。
.jpg)
Kohler Courage 23 23hp vert shaft motor engine SV720
Omron Laser Displacement Sensor Z4M-W40RA
Miller 178098 Wire Feed Motor Drive AMD-4GR with gas va
GE Fanuc A16B-2201-0311 PC Power Supply
Square D KAL-36225 Circuit Breaker KAL36225 225a 225 am
SMC LC1-1B2H1-N5 Controller LC Linear Actuator Construc
Toshiba 2J3K2313-C DIT-543 NAS-433A 2N3K2313-C2 TY9ZDA0
Square D 400a Mag-Gard 400 Motor Circuit Protector
Allen Bradley 20AD3P4A3AYNNNC?0 PF70 480v 20A Motor
AC Tech Q14005B Variable Speed Motor Drive 5hp 460v 3p
GE Fanuc IC693CMM321-DE Ethernet Controller
Bosch 0 608 701 003 590000031 Servo Motor EC-4E510 510
Vigodrive reducer planetary R380-7Y0028 RV-380-141 gear
Kohler Courage Pro 20 20hp engine sv810
Bosch CNC 052910-306110 PS200 PS Power Supply
ABB EHW250WC-1L11 Contactor welding spot weld
Yaskawa ServoPack SGDS-01A72A motoman Servo d
Balluff RGPE-9012-V2430?P Output sensor G-power
Fanuc A20B-1000-0950 input output card board pcb
Mitsubishi MR-J2-10A1 MR-J Series AC Servo
Allen Bradley 1336S-BRF10-AA-?EN5-HA2-L6 AC
Allen Bradley 20AD8P0A0YNNNNN Power Flex 70
Fanuc A06B-6058-H004 A20B-1003-0090 Servo D
Okuma Opus 5000 SVP board E4809-045-109-C 1911-1533 153
15B10505 G3 15B10505G3 505G3 Transformer Board 30-75kva
Allen Bradley 2711P-K4M20DX Panelview Plus 400
Guzik SCB-01 spin stand controller hard
Fanuc A16B-1210-0230/?01A PCB-AEC board
SBS Technologies 601060 85853436 ethernet f
Bosch Rexroth Indramat TBM124-10038 Bleeder
Square D Circuit Breaker FHL360201212 20a 20 amp
Tsubaki Nicetop ENH015-S27 tsubakimoto Chain
Mitsubishi AC Servo Amplifier MR-J100A J
Advantech FPM-3120G-RAE Touchscreen Monitor O
Fireye EPD170 Programmer Module e110 0134-04