看板 C_and_CPP 關於我們 聯絡資訊
小弟第一次在版上發文請多多包涵。 目前正在嘗試自學實作四足視覺機器人, 因為程式部分用C++實作,所以想來這裡請教問題! 機器人目前主要目標是希望能追蹤黃色的塑膠彩球。 開發平台(Platform): (Ex: Win10, Linux, ...) linux debian 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) cmake 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) opencv 問題(Question): 回傳目標物重心座標與cam中心差距值後回傳給servo執行時, 似乎都會重覆傳入差距值,導致鏡頭跟黃球的角度差距很大。 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) trackFilteredObject(y,threshold,frame,objectFound); imshow("frame",frame); imshow("threshold",threshold); waitKey(30); if(objectFound){ int target = pxyToTarget(y); //將pixel y 座標計算差值回傳成給servo的databytes mSetTarget(target); //將target傳入給servo做動作 //在裡面放cout觀察到傳入databytes的速度好像跟fps不一致 } 補充說明(Supplement): 花了不少下班後的時間實作這個專案,但感覺只是會一些knowhow, 所以問題若太菜請海涵。 另外請教,若想深入了解,是否有推薦的書籍或課程,或關鍵字呢? 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.251.204 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1509265273.A.39D.html
nh60211as: 沒有程式碼看不出來,可是你讓計算結果先等30ms再回傳 10/29 16:43
nh60211as: 不知道有沒有影響 10/29 16:43
沒有程式碼是指? 有試過在傳給servo 值之前先sleep(1),但似乎沒什麼不同
Lipraxde: 你可以一個frame一個frame看你鏡頭轉的角度。控制系統對 10/29 16:52
Lipraxde: 這種要追東西的應用蠻有幫助的 10/29 16:52
好的 我會再試試看
diabloevagto: 平均試試看,把這次的結果與前幾次取平均值 10/29 18:15
有試過,觀察後發現約cout 6次後鏡頭才得到下一個frame,把差值的結果除六後仍追不準。 不確定你是否是指這個意思 謝謝各位的回應 ※ 編輯: aris1008 (1.172.251.204), 10/29/2017 23:41:41
laladeer: 你可以稍微研究一下追蹤的方法,記得有好幾個不同的設 11/07 10:04
laladeer: 定,KCF應該會適合你 11/07 10:04
還在試著了解怎麼應用... 感謝回應 希望以後還有機會請教您 ※ 編輯: aris1008 (1.172.227.9), 11/08/2017 00:05:31