ROS很适合用在Ubuntu或Debian上,无须编译。建置时要在Linux机器上执行Ubuntu,使用业余用伺服机、Arduino和普通的导线。ROS要在Ubuntu机器上启动,讯息则透过USB传送到Arduino。只要安装二进制的ROS套件,就会在主控台程序(像是gnome-terminal或konsole)追加以下指令,这样Arduino系统就能辨识ROS函式库。
cd~/sketchbook/libraries
rm-rf ros_libIC600PM502RR常规IC600PM502RR常规IC600PM502RR常规
rosrunrosserial_arduino make_l ibraries.py .
Arduino的程序
接下来要将程序代码上传到Arduino当中,执行低阶的伺服机控制,以便能从Linux机器操作。这时要以限制范围内的百分比(0.0~1.0)指定伺服机的位置。之所以使用百分比而不是写明角度,是因为Arduino的程序代码限制了正确的角度,要避免在指定角度时发生冲突。
就如各位所见,使用ROS之后,一般的循环函数就会变得相当简单。循环函数只会订阅(subscribe)数据,任何Arduino循环都一样。设定时要将ROS初始化,将各个ROS讯息订阅者的订阅叫出来。每个订阅者会占据Arduino的RAM,数量取决于要用程序代码做什么,以6个到12个为限。
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;
if( v < 0 ) v = 0;
float angle = min (range * v);
SIEMENS5136-DNS-200S
SIEMENS6ES7321-1BH01-0AA0模块
SIEMENS235-0KD22-0XA0
SIEMENS6ES7 214-1AD23-0XB0模块
SIEMENS6ES7 235-0KD22-0XA0模块
SIEMENS6ES7 232-0HB22-0XA0模块
SIEMENS6SE7024-1EP85-0AA1板卡
SIEMENS1FK6083-6AF71-1TH0电机
SIEMENS3TB40 22-OXMO配件
SIEMENS6ES5466-3LA11输入模块
SIEMENS5136-DNS-200S
SIEMENS6ES7151-3AA23-0AB0配件
SIEMENS6ES7151-3BA23-0AB0配件
Siemens3ZX1012-0RT04-1AA1配件
SIEMENS5136-DNS-200S
SIEMENS6AV6542-0CA10-0AX0触摸屏
SIEMENS3ZX1012-0RT02-1AA1配件
SIEMENS6EP1437-3BA00配件
SIEMENS6EP1437-2BA20配件
SIEMENS6EP1436-3BA00配件
SIEMENS6EP1333-3BA00配件
SIEMENS6ES5095-8MD01CPU模块
SIEMENS6ES7972-0CB20-0XA0线
SIEMENS6ES7331-7KF02-0AB0模块
SIEMENS6ES5318-8MB13变频模块
SIEMENS6SE7090-OXX84-OKBO板子
SIEMENS6ES7331-7KF02-0AB0模块
SIEMENS6ES7331-7KF02-0AB0模块
SIEMENS6EP1436-3BA00模块