淘宝店铺:http://shop578899473.taobao.com/index.htm
const float range = 90;
1784-PCDS发货1784-PCDS发货1784-PCDS发货
float v = msg.data;
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.spinonce();
delay(1); }
接下来要设法透过Arduino在ROS的世界说话。最简单的方法是使用机器人启动档。虽然以下的档案内容非常简单,但是这里要追加启动档,如此一来即使是非常复杂的机器人,也能用一个指令启动。
$ cat rosservo.launch
$ roslaunch ./rosservo.lanch
A06B-0158-B175 A06B-0651-B012 A06B-6093-K001
A06B-0158-B177 A06B-0652-B012 A06B-6096-H101
A06B-0163-B075 A06B-0653-B303 A06B-6096-H103
A06B-0163-B175 A06B-0656-B005 A06B-6096-H104
A06B-0169-B176 A06B-0705-B001 A06B-6096-H106
A06B-0172-B577 A06B-0725-B203 A06B-6097-H206
A06B-0176-B077 A06B-0727-B102 A06B-6102-H122
A06B-0177-B075 A06B-0727-B192
A06B-0183-B777 A06B-0727-B202 A06B-6102-H206
A06B-0185-B077 A06B-0727-B304 A06B-6102-H211
A06B-0205-B000 A06B-0728-B102 A06B-6102-H215
A06B-0205-B400 A06B-0728-B920
A06B-0205-B605 A06B-0728-B951 A06B-6102-H222
A06B-0213-B100 A06B-0729-B194 A06B-6102-H226
A06B-0215-B605 A06B-0729-B202 A06B-6104-H245
A06B-0216-B100 A06B-0732-B201
A06B-0225-B200 A06B-0745-B600 A06B-6110-H006