「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_m***.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): pos = currentPosition + mi*r print “pos: “, pos pub.publish(pos) sleep(0.05) currentPosition = targetPosition print “pos-e: “, currentPosition pub.publish(currentPosition)SIEMENS 1FK7042-5AF71-1SA0 电机 SIEMENS 6AV6648-0BC11-3AX0 显示屏 SIEMENS 6EP1332-1SH71 电源 SIEMENS 1FK7042-5AF71-1SA0 电机 SIEMENS 6SE6440-2UD21-1AA1 变频器 SIEMENS 6SE7018-0EA84-1HF3 电源板 SIEMENS 6ES7 952-1AL00-0AA0 内存卡 SIEMENS 6ES7 195-7HD80-0XA0 模块 SIEMENS 6ES7 315-2AG10-0AB0 模块 SIEMENS 6GK1 571-0BA00-0AA0 电缆 SIEMENS 6ES7 223-1PL22-0XA8 模块 Siemens 6ED1055-1FB00-0BA1 模块 SIEMENS 6ES7412-2XJ05-0AB0 模块 SIEMENS 6ES7315-2EH14-0AB0 模块 SIEMENS 6FC5500-0AA11-1AA0 操作面板 SIEMENS 6ES7972-0BB12-0XA0 接头 SIEMENS 6SE7 031-6EB87-2DA1 变频器 SIEMENS 7KM2112-0BA00-3AA0 监视器 SIEMENS 7KM9300-0AB01-0AA0 模块 SIEMENS 6ES7647-7BD21-0AX0 模块 SIEMENS 6ES7315-2AH14-0AB0 模块 SIEMENS 6ES7331-7KF02-0AB0 模块 SIEMENS 6ES7343-1CX10-0XE0 模块 SIEMENS 6ES7332-5HF00-0AB0 模块 SIEMENS 6ES7314-1AG14-0AB0 模块 IC640HWP706常规IC640HWP706常规IC640HWP706常规 SIEMENS 6ES7322-1BL00-0AB0 模块 SIEMENS 6ES7321-1BL00-0AB0 模块 SIEMENS 6ES7153-2BA82-0XB0 模块 SIEMENS 6SE6430-2UD35-5FB0 变频器 SIEMENS 6EP1437-3BA00 电源模块 SIEMENS 6EP1336-3BA00 电源 SIEMENS 6ES7216-2BD23-0XB0 模块 SIEMENS 6ES7 307-1KA01-0AA0 模块 SIEMENS 6AV6 644-0BA01-2AX1 显示屏