发货:3天内
发送询价
$ rostopic list/diagnostics
1746-NIO4V配件1746-NIO4V配件1746-NIO4V配件
/head/tilt
/rosout
/rosout_agg
$ 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/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_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):
pos = currentPosition + mi*r
SIEMENS 6SE7024-7TD84-1HF5 主板
SIEMENS 6FC5370-0AA00-2BA0 802DSL系统
SIEMENS 6SL3210-5BE31-8UV0 变频器
SIEMENS 6FC5303-0DT12-1AA1 按键板
Siemens 6AV6 542-0BB15-2AX0 显示器
SIEMENS SKM200GAL176D 模块
SIEMENS 6SE6420-2AB21-1BA1 变频器
SIEMENS 6SE6420-2AD24-0BA1 变频器
SIEMENS 6ES7 322-1BL00-0AA0 模块
SIEMENS 6ES7 321-1BL00-0AA0 模块
SIEMENS 6ES7 315-2AH14-0AB0 模块
SIEMENS 6GK5101-1BB00-2AA3 交换机
SIEMENS 6GK5208-0BA10-2AA3 交换机
SIEMENS 6GK5204-2BB10-2AA3 交换机
SIEMENS 6GK5612-0BA10-2AA3 交换机
SIEMENS 6GK5212-2BB00-2AA3 交换机
SIEMENS 6GK1503-2CB00 模块
SIEMENS 6ES7288-1SR60-0AA0 模块
SIEMENS 6ES7288-2DR32-0AA0 模块
SIEMENS 6ES7288-2DE16-0AA0 模块
SIEMENS 6XV1830-0EH10 电缆