$ rostopic list
/diagnostics
/head/tilt
IC641SWP715常規(guī)IC641SWP715常規(guī)IC641SWP715常規(guī)
/rosout
/rosout_agg
$ rostopic pub -1 /head/tiltstd_msgs/Float32 0.4
$ rostopic pub -1 /head/tilt std_msgs/Float320.9
這個階段當中,能夠?qū)⑺邪l(fā)布數(shù)值到ROS的已知方法用在控制伺服機上。假如從0改成1,伺服機就會全速運行。這本來并沒有問題,但實際上我們想要逐漸加速以達到全速,然后再逐漸減速,停在目標角度上。假如伺服機驟然運轉(zhuǎn),機器人的動作就會變得僵硬,讓周圍的人嚇一跳。
Terry和Houndbot都是ROS機器人,以6061個鋁合金零件制造而成。項目的目標是要盡量讓這些機器人運動。
以下的Python腳本程序會監(jiān)聽「/head/tilt/smooth」的訊息,朝「/head/tilt」發(fā)布許多訊息,好讓伺服機轉(zhuǎn)到目標角度之前慢慢加速,再慢慢延遲旋轉(zhuǎn)。當訊息抵達「/head/tilt/smooth」時一定會呼叫「moveServo_cb」。這個回調(diào)函式會從-90到+90度之間每10度產(chǎn)生1個數(shù)值,追加到角度數(shù)組當中?!竤in()」會取這個角度,數(shù)值從-1到+1慢慢增加。該數(shù)值加1之后,范圍就會變成0到+2,再除以2之后, 0到+1的曲線數(shù)值數(shù)組就完成了。然后再看看m數(shù)組當中,每當發(fā)布訊息時,就會稍微前進一點,范圍在r之內(nèi),直到1*r或是全范圍為止。
#!/usr/bin/env python
from time im
port sleep
im
port numpy as np
im
port rospy
from std_msgs.msg im
port 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
A06B-0128-B076 A06B-0502-B855 A06B-6079-H301
A06B-0128-B077 A06B-0503-B006 A06B-6079-H304
A06B-0128-B175 A06B-0503-B202 A06B-6079-H401
A06B-0128-B177 A06B-0503-B251 A06B-6079-K815
A06B-0128-B575 A06B-0503-B304 A06B-6081-H101
A06B-0128-B577 A06B-0505-B001 A06B-6081-H103
A06B-0147-B175 A06B-0514-B504 A06B-6088-H230
A06B-0147-B177 A06B-0521-B052 A06B-6088-H245
A06B-0147-B675 A06B-0521-B541 A06B-6089-H104
A06B-0148-B075 A06B-0532-B001 A06B-6089-H203
A06B-0148-B175 A06B-0572-B003 A06B-6090-H234
A06B-0148-B177 A06B-0572-B004 A06B-6091-H118
A06B-0148-B575 A06B-0572-B006 A06B-6091-H130
A06B-0151-B075 A06B-0572-B077 A06B-6091-H145
A06B-0151-B077 A06B-0583-B010 A06B-6091-H175
A06B-0152-B075 A06B-0583-B065 A06B-6093-H002
A06B-0152-B175 A06B-0583-B372 A06B-6093-H101
A06B-0153-B075 A06B-0590-B205 A06B-6093-H102
A06B-0153-B077 A06B-0602-B226 A06B-6093-H111
A06B-0153-B175 A06B-0602-B232 A06B-6093-H112
A06B-0153-B676 A06B-0603-B021 A06B-6093-H113
本頁產(chǎn)品地址:http://www.apnrx.com/sell/show-8568476.html