co
nst float min = 45;
co
nst float range = 90;
float v = msg.data;
IC641SWP714常规IC641SWP714常规IC641SWP714常规
![](http://images.yi7.com/file/upload2/201905/21/09-11-45-24-180287.jpg)
if( v > 1 ) v = 1;
if( v < 0 ) v = 0;
float angle = min + (range * v);
servo.write(angle);
}
ros::Subscriber
ros::NodeHandle nh;
void setup()
{
servo.attach(SERVOPIN);
nh.initNode();
nh.subscribe(sub);
}
void loop()
{
nh.spino
nce();
delay(1); }
接下来要设法透过Arduino在ROS的说话。简单的方法是使用机器人启动档。虽然以下的档案内容非常简单,但是这里要追加启动档,如此一来即使是非常复杂的机器人,也能用一个指令启动。
$ cat rosservo.launch
$ roslaunch ./rosservo.lanch
rostopic指令可以看出ROS讯息传送到机器人的哪个部位。看了下面的程序代码就会发现,「/head/tilt」可以透过Arduino使用。讯息要使用「rostopic」传送。-1的选项只会发布(publish)讯息一次,通知/head/tilt传送一个浮点数。
A06B-0116-B503 A06B-0501-B003
A06B-0116-B804 A06B-0501-B004 A06B-6077-H111
A06B-0120-K324 A06B-0501-B005 A06B-6077-K142
A06B-0121-B577 A06B-0501-B006 A06B-6077-K143
A06B-0121-B580 A06B-0501-B032 A06B-6077-K144
A06B-0501-B201 A06B-6077-K250
A06B-0123-B075 A06B-0501-B202 A06B-6078-H206
A06B-0123-B077 A06B-0501-B205 A06B-6078-H211
A06B-0123-B575 A06B-0501-B206
A06B-0123-B675 A06B-0501-B751 A06B-6078-H230
A06B-0126-B077 A06B-0502-B001 A06B-6078-H415
A06B-0126-B177 A06B-0502-B002 A06B-6078-K001
A06B-0126-B577 A06B-0502-B004 A06B-6078-K214
A06B-0126-B677 A06B-0502-B005
A06B-0127-B075 A06B-0502-B062 A06B-6078-K811
A06B-0127-B077 A06B-0502-B072 A06B-6078-k840
A06B-0127-B175 A06B-0502-B074 A06B-6079-H103
A06B-0127-B177 A06B-0502-B172 A06B-6079-H104
A06B-0127-B575 A06B-0502-B202 A06B-6079-H106
A06B-0127-B577 A06B-0502-B205 A06B-6079-H201
A06B-0127-B588 A06B-0502-B272 A06B-6079-H203
A06B-0127-B677 A06B-0502-B374 A06B-6079-H206
A06B-0128-B075 A06B-0502-B751 A06B-6079-H208
本页产品地址:http://www.yi7.com/sell/show-8568474.html