/rosout
/rosout_a*
$ rostopic pub -1 /head/tiltstd_msgs/Float32 0.4
$ rostopic pub -1 /head/tilt std_msgs/Float320.9
这个阶段当中,能够将所有发布数值到ROS的已知方法用在控制伺服机上。假如从0改成1,伺服机就会全速运行。这本来并没有问题,但实际上我们想要逐渐加速以达到全速,然后再逐渐减速,停在目标角度上。假如伺服机骤然运转,机器人的动作就会变得僵硬,让周围的人吓一跳。
Terry和Houndbot都是ROS机器人,以6061个铝合金零件制造而成。项目的目标是要尽量让这些机器人自主运动。
以下的Python脚本程序会「/head/tilt/*ooth」的讯息,朝「/head/tilt」发布许多讯息,好让伺服机转到目标角度之前慢慢加速,再慢慢延迟旋转。当讯息抵达「/head/tilt/*ooth」时一定会呼叫「moveServo_cb」。这个回调函式会从-90到+90度之间每10度产生1个数值,追加到角度数组当中。「sin()」会取这个角度,数值从-1到+1慢慢增加。该数值加1之后,范围就会变成0到+2,再除以2之后, 0到+1的曲线数值数组就完成了。然后再看看m数组当中,每当发布讯息时,就会稍微前进一点,范围在r之内,直到1*r或是全范围为止。
#!/usr/bin/env python
from time import sleep
import numpy as np
import rospy
from std_msgs.msg import Float32
currentPosition = 0.5
pub = None
def moveServo_cb(data):
global currentPosition, pub
targetPosition = data.data
r = targetPosition - currentPosition
angles = np.array( (range(190)) [0::10]) -90
m = ( np.sin( angles * np.pi/ 180. ) + 1 )/2
for mi in np.nditer(m):
* = currentPosition + mi*r
print “*: “, *
pub.publish(*)
sleep(0.05)
currentPosition = targetPosition
print “*-e: “, currentPosition
pub.publish(currentPosition)
SIEMENS 6ES7332-5HF00-0AB0 模块
SIEMENS MP277-10 6*6643-0CD01-1AX1 触摸屏
SIEMENS 5SX52 C20 CIRCUIT BREAKER
Siemens 6ES7 132-4*00-0AA0 模块
SIEMENS 6GK1502-3CA10 模块
SIEMENS 6ES7216-2BD23-0XB8 模块
西门子 6ES7212-1AB23-0XB0 模块
西门子 6ES7331-7KF02-0AB0 模块
西门子 6ES7214-1BD23-0XB0 模块
西门子 6ES7214-1BD23-0XB0 模块
西门子 153-1AA03-0XB0 模块
西门子 6GT2001-0AA00-ZA23 配件
西门子 6SN1122-0BA11-0AA1
西门子 6ES7 323-1BL00-0AA0 模块
西门子 6ES7216-2BD23-0XB0 模块
西门子 PS-M06D12S5-NJ1L(S) 高压条
西门子 6ES7972-0*12-0XA0 接头
西门子 6ES7 222-1HH22-0XA0 配件
西门子 6FC5410-0AY01-0AA0 配件
西门子 77-964-2300 配件
西门子 6FC5410-0AY01-0AA0 配件
西门子 6GK1500-0FC10 接头
西门子 C98043-A7004-L1-8 配件
西门子 6*3020-1EL00 配件
西门子 6ES7-223-1PL22-0XA8 模块
西门子 6ES7-216-2BD23-0XB8 模块
西门子 6SE7024-7FD84-1HH0A06B-6117-H207A06B-6117-H207A06B-6117-H207
西门子 6ES7216-2BD23-0XB0 模块
西门子 6ES7 323-1BL00-0AA0 模块
西门子 6FC5410-0AY01-0AA0 配件
西门子 6GK5 206-1*10-2AA3 交换机
西门子 6GK5212-2*00-2AA3 交换机
西门子 6ES7972-0CB20-0XA0 电缆
西门子 6ES5 910-0AA21 存储卡
西门子 6ES5900-7AD11 模块