
聯(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-506P-F16 |
| AS-506P-F16 |
五、結(jié)束語
控制系統(tǒng)中的干擾是一個(gè)十分復(fù)雜的問題,只有設(shè)計(jì)工程師在設(shè)計(jì)過程中做到“未雨綢繆,防微杜漸”,堅(jiān)持“預(yù)防是最有效、最經(jīng)濟(jì)的方法”的準(zhǔn)則,來綜合和全面的考慮各方面的因素,才能夠有效地避免系統(tǒng)干擾的的發(fā)生,從而保證設(shè)備穩(wěn)定可靠的運(yùn)行。
ROS(Robot OperatingSystem)是開源的機(jī)器人系統(tǒng)平臺(tái)。使用這個(gè)之后,機(jī)器人就可以看見東西、測繪、導(dǎo)航,或是以最新的算法作用于周圍的環(huán)境當(dāng)中。假如想要制造復(fù)雜的機(jī)器人,已經(jīng)準(zhǔn)備好的ROS程序代碼就能派上用場。ROS能在最低限度下運(yùn)用。這可以透過Raspberry Pi等級(jí)的計(jì)算機(jī)安裝。
做為ROS的入門篇我們來看看如何控制伺服機(jī)。伺服機(jī)的缺點(diǎn)是會(huì)盡快遵照指令運(yùn)轉(zhuǎn),因此頭部常常會(huì)突然活動(dòng),以至于失去平衡。不過使用ROS之后,就可以進(jìn)行正弦曲線運(yùn)動(dòng),讓機(jī)器人保持穩(wěn)定。由于可以在ROS當(dāng)中進(jìn)行這項(xiàng)操作,因此無須改寫控制用的程序代碼。另外,連接伺服機(jī)和ROS的程序代碼,以及伺服機(jī)的硬件都無須變更。再者,程序代碼還可以任意使用。
ROS很適合用在Ubuntu或Debian上,無須編譯。建置時(shí)要在Linux機(jī)器上執(zhí)行Ubuntu,使用業(yè)余用伺服機(jī)、Arduino和普通的導(dǎo)線。ROS要在Ubuntu機(jī)器上啟動(dòng),訊息則透過USB傳送到Arduino。只要安裝二進(jìn)制的ROS套件,就會(huì)在主控臺(tái)程序(像是gnome-terminal或konsole)追加以下指令,這樣Arduino系統(tǒng)就能辨識(shí)ROS函式庫。
接下來要將程序代碼上傳到Arduino當(dāng)中,執(zhí)行低階的伺服機(jī)控制,以便能從Linux機(jī)器操作。這時(shí)要以限制范圍內(nèi)的百分比(0.0~1.0)指定伺服機(jī)的位置。之所以使用百分比而不是寫明角度,是因?yàn)锳rduino的程序代碼限制了正確的角度,要避免在指定角度時(shí)發(fā)生沖突。
就如各位所見,使用ROS之后,一般的循環(huán)函數(shù)就會(huì)變得相當(dāng)簡單。循環(huán)函數(shù)只會(huì)訂閱(subscribe)數(shù)據(jù),任何Arduino循環(huán)都一樣。設(shè)定時(shí)要將ROS初始化,將各個(gè)ROS訊息訂閱者的訂閱叫出來。每個(gè)訂閱者會(huì)占據(jù)Arduino的RAM,數(shù)量取決于要用程序代碼做什么,以6個(gè)到12個(gè)為限。
#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ī)器人啟動(dòng)檔。雖然以下的檔案內(nèi)容非常簡單,但是這里要追加啟動(dòng)檔,如此一來即使是非常復(fù)雜的機(jī)器人,也能用一個(gè)指令啟動(dòng)。
.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