联系人:蓝小姐
手机:15359298293
QQ:2259678687
邮箱:lanlan@szcxdcs.com
地址:深圳市宝安区西乡街道臣田社区宝民二路东方雅苑2层B39
分类: 施耐德Schneider
联系人:蓝小姐
手机:15359298293
QQ:2259678687
邮箱:lanlan@szcxdcs.com
地址:深圳市宝安区西乡街道臣田社区宝民二路东方雅苑2层B39
AS-J146-000 |
AS-J146-000 |
五、结束语
控制系统中的干扰是一个十分复杂的问题,只有设计工程师在设计过程中做到“未雨绸缪,防微杜渐”,坚持“预防是最有效、最经济的方法”的准则,来综合和全面的考虑各方面的因素,才能够有效地避免系统干扰的的发生,从而保证设备稳定可靠的运行。
ROS(Robot OperatingSystem)是开源的机器人系统平台。使用这个之后,机器人就可以看见东西、测绘、导航,或是以最新的算法作用于周围的环境当中。假如想要制造复杂的机器人,已经准备好的ROS程序代码就能派上用场。ROS能在最低限度下运用。这可以透过Raspberry Pi等级的计算机安装。
做为ROS的入门篇我们来看看如何控制伺服机。伺服机的缺点是会尽快遵照指令运转,因此头部常常会突然活动,以至于失去平衡。不过使用ROS之后,就可以进行正弦曲线运动,让机器人保持稳定。由于可以在ROS当中进行这项操作,因此无须改写控制用的程序代码。另外,连接伺服机和ROS的程序代码,以及伺服机的硬件都无须变更。再者,程序代码还可以任意使用。
ROS很适合用在Ubuntu或Debian上,无须编译。建置时要在Linux机器上执行Ubuntu,使用业余用伺服机、Arduino和普通的导线。ROS要在Ubuntu机器上启动,讯息则透过USB传送到Arduino。只要安装二进制的ROS套件,就会在主控台程序(像是gnome-terminal或konsole)追加以下指令,这样Arduino系统就能辨识ROS函式库。
接下来要将程序代码上传到Arduino当中,执行低阶的伺服机控制,以便能从Linux机器操作。这时要以限制范围内的百分比(0.0~1.0)指定伺服机的位置。之所以使用百分比而不是写明角度,是因为Arduino的程序代码限制了正确的角度,要避免在指定角度时发生冲突。
就如各位所见,使用ROS之后,一般的循环函数就会变得相当简单。循环函数只会订阅(subscribe)数据,任何Arduino循环都一样。设定时要将ROS初始化,将各个ROS讯息订阅者的订阅叫出来。每个订阅者会占据Arduino的RAM,数量取决于要用程序代码做什么,以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;
接下来要设法透过Arduino在ROS的世界说话。最简单的方法是使用机器人启动档。虽然以下的档案内容非常简单,但是这里要追加启动档,如此一来即使是非常复杂的机器人,也能用一个指令启动。
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 20AD3P4A3AYNNNC0 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-V2430P 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