servo.write(angle);
}
ros::Subscriber
ros::NodeHandle nh;
void setup()
IC600PM503RR常规IC600PM503RR常规IC600PM503RR常规
{
servo.attach(SERVOPIN);
nh.initNode();
nh.subscribe(sub);
}
void loop()
{
nh.spinOnce();
delay(1); }
接下来要设法透过Arduino在ROS的世界说话。最简单的方法是使用机器人启动档。虽然以下的档案内容非常简单,但是这里要追加启动档,如此一来即使是非常复杂的机器人,也能用一个指令启动。
$ cat rosservo.launch
$ roslaunch ./rosservo.lanch
rostopic指令可以看出ROS讯息传送到机器人的哪个部位。看了下面的程序代码就会发现,「/head/tilt」可以透过Arduino使用。讯息要使用「rostopic」传送。-1的选项只会发布(publish)讯息一次,通知/head/tilt传送一个浮点数。
$ rostopic list
/diagnostics
/head/tilt
/rosout
/rosout_agg
$ rostopic pub -1 /head/tiltstd_msgs/Float32 0.4
SIEMENS6EP1436-3BA00模块
SIEMENS6ES7331-7KF02-0AB0模块
SIEMENS6ES7322-5HD01-0AB0模块
SIEMENS6ES7307-1KA01-0AA0模块
SIEMENS6ES7315-2EH14-0AB0模块
SIEMENS6ES7321-1BH02-0AA0模块
SIEMENS6ES7365-0BA01-0AA0模块
SIEMENS6ES7331-7KF02模块
SIEMENS6ES7390-1AF30-0AA0导轨
SIEMENS6ES7315-2EH14-0AB0模块
SIEMENS6ES7953-8LJ32-0AA0储存卡
SIEMENS6ES7322-1BL00模块
SIEMENS6ES7321-1BL00模块
SIEMENS6ES7392-1AM00-0AA0端子
SIEMENS6ES7392-1AJ00-0AA0端子
SIEMENS6ES7307-1EA01-0AA0电源模块
SIEMENS6ES7153-1AA03-0XB0模块
SIEMENS6ES7222-1HF22-0XA0模块
SIEMENS3TK2827-2BB40配件
Siemens3ZX1012-0RT02-1AA1 辅助触头(3RH1921-1HA22)配件
SIEMENSC79459-A1890-A10
SIEMENS6ES7650-1AH62-5XX0
SIEMENS3RT1016-1BB42 24V
SIEMENS3RV2021-1CA15 17-22A
SIEMENS3SB3500-4MD01
SIEMENS6ES7-340-1AH02-0AE0