这个阶段当中,能够将所有发布数值到ROS的已知方法用在控制伺服机上。
假如从0改成1,伺服机就会全速运行。
这本来并没有问题,但实际上我们想要逐渐加速以达到全速,再逐渐减速,停在目标角度上。
假如伺服机骤然运转,机器人的动作就会变得僵硬,让周围的人吓一跳。
Terry和Houndbot都是ROS机器人,以6061个铝合金零件制造而成。
项目的目标是要尽量让这些机器人自主运动。
以下的Python脚本程序会监听「/head/tilt/smooth」的讯息,朝「/head/tilt」发布许多讯息,好让伺服机转到目标角度之前慢慢加速,再慢慢延迟旋转。
当讯息抵达「/head/tilt/smooth」时一定会呼叫「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)
def listener():
global pub
rospy.init_node(‘servoencoder’,anonymous=True)
rospy.Subscriber(‘/head/tilt/smooth’,Float32, moveServo_cb)
pub = rospy.Publisher(‘/head/tilt’,Float32, queue_size=10)
rospy.spin()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 模块
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 显示屏
SIEMENS 6AV6 647-0AG11-3AX0 触摸屏
SIEMENS 6GK7342-5DA02-0XE0 模块
SIEMENS 6GK7343-1GX11-0XE0 模块
SIEMENS 6ES7316-2AG00-0AB0 模块
SIEMENS 6EP1336-3BA00 电源A06B-0373-B175A06B-0373-B175A06B-0373-B175
SIEMENS 6AV6671-5AE10-0AX0 连接盒
SIEMENS 6ES7412-5HK06-0AB0 模块
SIEMENS 6ES7392-1AM00-0AA0 连接器
SIEMENS 6ES7392-1AJ00-0AA0 连接器
SIEMENS 6ES7972-0BA41-0XA0 接头
A06B-0373-B175
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
详细信息
相关产品
相关a06b产品
- 佛山FANUC驱动器A06B-6200-H026报20维修2023-11-24
- 发那科伺服电机A06B-1428-B153维修有保障2023-11-29
- 武汉发那科A06B-6114-H104发那科驱动器故障维修2023-12-13
- a06b-6160-h002报警dclink电压低,找到郑州明川当天修好免费检测站2023-12-14
- 原装拆机发那科伺服电机A06B-0117-B855#0049、伺服电机维修2023-12-16
- 发货速度快市场推送:A06B-6050-H102货物运输2023省市县+乡镇+派+送保证时效2023-12-18
- 福州A06B-0116-B503#0100 变频器全系列现货2023-12-20
- 发那科主轴驱动器维修A06B-6134-H202维修、A06B-6134-H303#A维修2023-12-21
- A06B-1477-B133伺服电机维修无反应2023-12-21
- 发那科A06B-6111-H015#H550伺服驱动器维修实力强2024-03-15
- 四川发那科伺服驱动器修理A06B-6117-H3032025-01-25
- A06B-0502-B272 数字输出模块 库存供应2025-03-13