瞬馳(dash)d1底盤有四個超聲波(前面三個後面乙個),通過如下兩種方式獲取超聲波的值。
通過usb串列埠方式連線下位機。通過如下命令讀取下位機的值。
前面3個超聲波,後面1個超聲波。輸出的值順序是:前面左邊、前面中間、前面右邊、後面中間。輸入:p\r
輸出:179 340 10 240\r
輸出距離單位: 厘公尺(cm)
注意:該型號的超聲波的測量距離為 0.02m ~ 4 m , 如果返回值不再該範圍,請忽略。
在ros_arduino_bridge/ros_arduino_python/src/ros_arduino_python目錄下,修改兩個檔案。
修改為如下內容:def
ping
(self, pin):
''' the srf05/ping command queries an srf05/ping sonar sensor
connected to the general purpose i/o line pinid for a distance,
and returns the range in cm. sonar distance resolution is integer based.
'''return self.execute('p %d' %pin);
def
ping
(self):
values = self.execute_array('p')
if len(values) != 4:
"ping count was not 4"
raise serialexception
return
none
else:
return values
from tf.broadcaster import transformbroadcaster
後面增加如下一行
from std_msgs.msg import string
在definit(self, arduino, base_frame)函式中
後面增加# set up the odometry broadcaster
self.odompub = rospy.publisher('odom', odometry)
self.odombroadcaster = transformbroadcaster()
3.在def poll(self)函式中self
.ultrasonicpub = rospy.publisher('ultrasonic', string)
後面增加now = rospy.time.now()
ifnow > self.t_next:
try:
重新執行try:
u1, u2,u3,u4 = self.arduino.ping()
self.ultrasonicpub.publish(str(u1)+" "+str(u2)+" "+str(u3)+" "+str(u4))
except:
rospy.logerr("ping exception")
roslaunch ros_arduino_python arduino.launch
在另乙個終端,就可以獲取到超聲波的值。
rostopic echo /ultrasonic
返回資料格式:乙個字串,四個超聲波的值以空格分割, 單位厘公尺。 四個超聲波的值依次是前面左一,前面中間,前面右一, 後面中間。 合上More Exceptional C 的瞬間
與大師面對面 譯序 小提琴家穆特錄製過一張唱片,收錄的是貝多芬最偉大的兩部小提琴作品 聆聽那張唱片,你彷彿聽見貝多芬在向你傾訴他對 藝術的理解和感悟,為你解答小提琴 創作的每乙個疑問和困惑。為了向 愛好者推薦貝多芬的那兩部名作,穆特為她的那張名碟加上了乙個恰如其分的標題 與貝多芬面對面 是的,本書奉...
恒馳正式發布恒馳7 恒馳8 恒馳9三款純電車型
程式設計客棧 www.cppcns.com 2月10日訊息 今天上午,恆大汽車旗下恒馳品牌官方微信 發布一則短 正式發布分別為轎車中型純電轎車恒馳7 中大型純電轎跑轎車恒馳8 中型純電suv恒馳9三款車型。據了解,在發布了上述三款新車型後,恆大汽車產程式設計客棧品矩陣也擴至9款。目前恆大汽車產品矩陣...
關於dash的基礎學習
詞彙補充 位元速率 就是每秒傳送的位元數,單位時間位元速率越大,精度越好。緩衝區溢位 電腦程式向緩衝區內填充資料,資料位數超過了緩衝區本身的容量。緩衝區下溢 乙個超長的資料進入緩衝區時,超出部分被寫入下級緩衝區,而下級緩衝區存放的是下一條指令的指標或者其他程式輸出的內容,導致下乙個命令執行不正常 緩...