freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

六足步行機器人設計畢業(yè)論文(編輯修改稿)

2025-07-27 11:46 本頁面
 

【文章內容簡介】 它的確在前進。接下來要做的就是更加細化動作,使機器人的運動更加協(xié)調連貫。這樣就形成了八步法,加上了臂電機的運動。下面具體講一下八步法的實現(xiàn),結合程序中的一些定義。假設初始狀態(tài)時電機均處于中心位置。確定一個軸向,比如以第 4 小組為軸向。以下是八步法的動作具體步驟:第一步:抬第一組腿。2C 前腿上抬至某處 Terminal_UP_2。2B、2A 后腿上抬至某處 Terminal_UP_2。 第二步:抬第一組腳,并旋轉第一組臂。3C 前腳上抬至某處 Terminal_UP_3。3B、3A 后腳反方向抬至某處 Terminal_DW_3。1B (處于軸向左邊)順時針旋轉至某處 Terminal_CLK_1。1A (處于軸向右邊)逆時針旋轉至某處 Terminal_ATCLK_1。 第三步:放下第一組腿。2C 前腿回到中心位置 Center_Position_2。2B、2A 后腿回到中心位置 Center_Position_2。 第四步:抬第二組腿5C、5B、5A 上抬至某處 Terminal_UP_2。 第五步:抬第二組腳,并旋轉第二組臂。6B、6C 抬起至某處 Terminal_UP_3。6A 反方向抬起至某處 Terminal_DW_3。4B (處于軸向左邊)順時針旋轉至某處 Terminal_CLK_1。4C (處于軸向右邊)逆時針旋轉至某處 Terminal_ATCLK_1。 第六步:蹬第一組腳,并旋轉第一組臂回原位。3C 前腳向前扒地Center_Position_3。3B、3A 后腳向后蹬地Center_Position_3。1B (處于軸向左邊)逆時針旋轉回初始位置Center_Position_1。1A (處于軸向右邊)順時針旋轉回初始位置Center_Position_1。 第七步:放第二組腿。5C、5B、5A 回到初始位置 Center_Position_2。  第八步:蹬二組腳,并旋轉第二組臂回原位。6B、6C 前腳向前扒地 Center_Position_3。6A 后腳向后蹬地 Center_Position_3。4B (處于軸向左邊)逆時針旋轉回原位 Center_Position_1。4C (處于軸向右邊)順時針旋轉回原位 Center_Position_1。 這里的有關變量的定義為:define Center_Position_1 308 //臂電機的中心位置量。define Center_Position_2 300 //腿電機的中心位置量。define Center_Position_3 320 //腳電機的中心位置量。define Step_1 35 //臂電機轉動的偏角。define Step_2 130 //腿電機轉動的偏角。define Step_3 50 //腳電機轉動的偏角。define Terminal_UP_3 Center_Position_3 + Step_3 //腳電機上抬的終點量。define Terminal_DW_3 Center_Position_3 Step_3 //腳電機下置的終點量。define Terminal_UP_2 Center_Position_2 Step_2 //腿電機上抬的終點量(常用) 。define Terminal_UU_2 Center_Position_2 + Step_2 //腿電機上抬的終點量(不常用) 。define Terminal_ATCLK_1 Center_Position_1 + Step_1 //臂電機逆時針轉動的終點量。define Terminal_CLK_1 Center_Position_1 Step_1 //臂電機順時針轉動的終點量。 顯然是把這些量作為全局變量在主函數(shù)的開始預定義。同樣還有對應舵機舵盤在個位置的值,定義一個數(shù)組 PWM_Duty[18]來完成。Unsigned int PWM_Duty[18] = { Center_Position_1, Center_Position_1, Center_Position_1, Center_Position_1, Center_Position_1, Center_Position_1, Center_Position_2, Center_Position_2, Center_Position_2, Center_Position_2, Center_Position_2, Center_Position_2, Center_Position_3, Center_Position_3, Center_Position_3, Center_Position_3, Center_Position_3, Center_Position_3}。以上定義的共同特點是將 18 個電機看作 3 種電機(臂、腿、腳)而對于同樣的如臂電機不加區(qū)分。好處是方便編程,但是由于安裝等問題,即使同樣作用的電機也會有差異性,這種差異性如果在軟件上來修正是比較恰當?shù)?,效果也會更好。留給日后的師弟師妹們來做?! ∵@樣編程出來,前進的動作蠻完美。然后就想到怎么使機器人按任意軸向前進,也就是怎樣運用歸納法得出一般性的算法。定義出下面幾個變量,由 Mode的值來計算其他變量的值。Mode,Mode_couple,pwm_0,pwm_1,pwm_2,pwm_3,pwm_4,pwm_5,pwm_6,pwm_7,pwm_8,pwm_9, pwm_10,pwm_11,pwm_12,pwm_13,pwm_14,pwm_15。在上面的以第 4 小組為軸向的例子中,看看怎樣用變量來代替原來確定的電機(由編號來表示) 。Mode=4, Mode_couple 是與第四小組沿直徑關于中心對稱的小組編號,參見圖 可知是第一小組,所以 Mode_couple=1。pwm_02C pwm_12B pwm_22A pwm_33Cpwm_43B pwm_53A pwm_61B pwm_71Apwm_85A pwm_95B pwm_105C pwm_116Apwm_126B pwm_136C pwm_144B pwm_154C表 一般性變量代替表 然后要做的事就是根據(jù) Mode 的值計算出這些變量的值。程序中的Compute_pwmN()函數(shù)就是完成這項任務的函數(shù)。void Compute_pwmN(void){ pwm_0 = Mode + 6。 pwm_3 = Mode + 12。 if(Mode 2) { pwm_1 = pwm_0 + 2。 pwm_2 = pwm_0 + 4。 pwm_4 = pwm_3 + 2。 pwm_5 = pwm_3 + 4。 pwm_6 = Mode + 2。 //保證 pwm_6 在軸向左邊 pwm_7 = Mode + 4。 //保證 pwm_7 在軸向右邊 } else if(Mode 3) { pwm_1 = pwm_0 4。 pwm_2 = pwm_0 2。 pwm_4 = pwm_3 4。 pwm_5 = pwm_3 2。 pwm_6 = Mode 4。 //保證 pwm_6 在軸向左邊 pwm_7 = Mode 2。 //保證 pwm_7 在軸向右邊 } else { pwm_1 = pwm_0 + 2。 pwm_2 = pwm_0 2。 pwm_4 = pwm_3 + 2。 pwm_5 = pwm_3 2。 pwm_6 = Mode + 2。 //保證 pwm_6 在軸向左邊 pwm_7 = Mode 2。 //保證 pwm_7 在軸向右邊 } if(Mode = 3) Mode_couple = Mode 3。 else Mode_couple = Mode + 3。 pwm_8 = Mode_couple + 6。 pwm_11 = Mode_couple + 12。//Mode_couple 定義與軸向相對的腿,以此好計算出第二組腿。注意Mode_couple 的左//邊就是 Mode 軸向的右邊。 if(Mode_couple 2) { pwm_9 = pwm_8 + 4。 pwm_10 = pwm_8 + 2。 pwm_12 = pwm_11 + 4。 pwm_13 = pwm_11 + 2。 pwm_14 = Mode_couple + 4。 //pwm_14:軸向的左邊 pwm_15 = Mode_couple + 2。 //pwm_15:軸向的右邊 } else if(Mode_couple 3) { pwm_9 = pwm_8 2。 pwm_10 = pwm_8 4。 pwm_12 = pwm_11 2。 pwm_13 = pwm_11 4。 pwm_14 = Mode_couple 2。 //pwm_14:軸向的左邊 pwm_15 = Mode_couple 4。 //pwm_15:軸向的右邊 } else { pwm_9 = pwm_8 2。 pwm_10 = pwm_8 + 2。 pwm_12 = pwm_11 2。 pwm_13 = pwm_11 + 2。 pwm_14 = Mode_couple 2。 //pwm_14 軸向的左邊 pwm_15 = Mode_couple + 2。 //pwm_15 軸向的右邊 } }這樣前進一步的動作細化(分為八步)程序可以寫出來了。PWM_Duty[18]是一個數(shù)組,用來定義分別控制 18 個電機的 PPM 脈沖寬度對應值。PWM_Duty[0] PWM_Duty[17]的順序對應圖 的編號序列。void SetPWM_Duty(void){ static unsigned char flag = 1。 //設置標志 flag,目的是動作分步。 static unsigned char elong = 0。 //設置標志 elong,目的是延長步與步之間的時間,使動作舒緩。//下面兩句可以用作幅度不大的轉向。// // PWM_Duty[Mode] = Center_Position_1 + 15。 PWM_Duty[Mode_couple] = Center_Position_1 + 10。 //修正尾舵中心值 if(elong 3) elong ++。 else { if(flag == 1) //第一步,抬第一組腿,[pwm_0]及對應的臂和腳為軸 { PWM_Duty[pwm_0] = Terminal_UP_2。 PWM_Duty[pwm_1] = Terminal_UP_2。 PWM_Duty[pwm_2] = Terminal_UP_2。 flag++。 elong = 0。 } else if(flag == 2) //第二步,抬第一組腳+旋轉第一組臂 { PWM_Duty[pwm_3] = Terminal_UP_3。 //前腳 UP 上抬 PWM_Duty[pwm_4] = Terminal_DW_3。 //后腳 DW 上抬 PWM_Duty[pwm_5] = Terminal_DW_3。 //后腳 DW 上抬 PWM_Duty[pwm_6] = Terminal_CLK_1。 PWM_Duty[pwm_7] = Terminal_ATCLK_1。 //右邊的臂逆時針旋轉 flag++。 elong = 0。 } else if(flag == 3) //第三步,放第一組腿。本來第三步和第四步合在一起,但是那樣動作在換腿的時候聲音很大,對機械的損傷也大。 { PWM_Duty[pwm_0] = Center_Position_2。 PWM_Duty[pwm_1] = Center_Position_2。
點擊復制文檔內容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1