2017-01-14 25 views
1

我目前正在爲即將到來的機器人競賽爲我們的機器人編寫編碼。我試圖建立我們的機器人做自主模式(移動沒有人控制它),但我遇到了一個問題。我能夠讓機器人向左,向右,向前,向後等移動(我們正在使用mecanum驅動器)。在自治時,我們希望它向前移動,然後在完成後橫向移動。我們同時做這兩件事都沒有問題,但是一個接一個地做我們遇到麻煩的地方。我們當前的代碼思路是:機器人Mecanum驅動編程

def autonomous(self): 
    for a in range(2): 
     zero = 0 #lateral movement (positive is left) 
     one = -1 #forward movement (negative is forwards) 
     four = 0 #rotation (positive is clockwise) 

     #set speed 
     speedFLM = four + zero - one 
     speedFRM = four + zero + one 
     speedRRM = four - zero + one 
     speedRLM = four - zero - one 

     #speed modifier 
     speedFLM = speedFLM/2 
     speedFRM = speedFRM/2 
     speedRRM = speedRRM/2 
     speedRLM = speedRLM/2 

     #set motor output 
     self.FLM.set(speedFLM) 
     self.FRM.set(speedFRM) 
     self.RRM.set(speedRRM) 
     self.RLM.set(speedRLM) 

     wpilib.Timer.delay(1) 
     #reset to zero 
     self.FLM.set(0) 
     self.FRM.set(0) 
     self.RRM.set(0) 
     self.RLM.set(0) 
+0

似乎你是在同一時間啓用所有電機。你爲什麼不啓用相關的,使用延遲,然後關閉它們並啓用其他的? –

+0

你有一個循環做了兩次相同的事情。似乎你沒有任何邏輯去做一件事,然後做另一件事。而不是'for'循環,寫出循環的內部邏輯兩次,但是在第二次迭代中改變'#set speed'部分的內容? –

回答

-1

enter image description here

這裏有一個參考圖表,幫助我,當我編程贏得了編程技巧挑戰加利福尼亞州一個麥克納姆基於機器人。我對python瞭解不多,因爲我在我的機器人上總是使用C,但是,看起來你的延遲只有1毫秒,這可能是問題嗎?希望至少,這個圖表會有所幫助。