導航:首頁 > 源碼編譯 > 二軸關節機械臂演算法

二軸關節機械臂演算法

發布時間:2023-01-18 13:32:09

⑴ 機械臂佔地面積計算公式

G=mg=1KG*10N/kg(9.8N/kg)。關節型機械臂動作靈活,構造緊湊,佔地面積小,公式為G=mg=1KG*10N/kg(9.8N/kg).,相對機器人本體尺寸,其工作空間比較大。此種機械臂在工業中應用十分廣泛,如焊接、噴漆、搬運、裝配等作業。

⑵ 為什麼裝備體的機械爪點連接點可以移動而點那個桿它不能移動

01控制調試基礎
在博文兩軸機械臂+機械爪整體控制板設計與機械爪控制調試 中給出了雙軸機械臂整體控制電路板的設計以及初步調試的過程。本文則完成對於雙臂運動的控制調試。

控制調試包括兩部分的內容:

機械臂的運動動態性能:速度、穩定性、低過沖;
機械位置的運動精度:重復到達位置的位置精度;
 

02一體化控制電路安裝
1.設置WiFi STC調試器
通過手機選擇USR-WIFI232-195,選擇10.10.100.254進行登錄。然後選擇STA的登錄的WiFI的熱點。

▲ 登錄10.10.100.254進行設置WiFI接入熱點
2.控制板與機械臂其它部件連接關系
下圖顯示了控制板與其它的機械臂的部件連接的關系。

▲ 控制電路板與機械臂其它部件連接關系
 

03初步測試
1.肘關節運動范圍
min = 3000
max = 14000
step range = 35000

▲ 肘關節線性增加的角度(逆時針旋轉)
2.肩關節運動范圍
對於肩關節的角度處理:

▲ 肩關節線性增加角度
3.測量雙軸移動步數與角度比值
(1) 測試1
記錄起始位置,然後使用m;l; move12正向移動20000步。

▲ 機械臂移動前後的位置
起始位置 關節1:1961 關節2:2672
結束位置 10089 9072
變化數值 δ1:8128 δ2:6400
(2) 測試2
記錄起始位置,然後使用m;l; move12正向移動20000步。

起始位置 關節1: 1972 關節2: 2659
結束位置 10019 9062
變化數值 δ1:8047 δ2:6403
Δ 1 = δ 11 + δ 12 2 = 8128 + 8047 2 = 8087.5 \Delta_{1} = {{\delta _{11} + \delta _{12} } \over 2} = {{8128 + 8047} \over 2} = 8087.5
Δ
1

=
2
δ
11


12



=
2
8128+8047

=8087.5

Δ 2 = δ 21 + δ 22 2 = 6400 + 6403 2 = 6401.5 \Delta _2 = {{\delta _{21} + \delta _{22} } \over 2} = {{6400 + 6403} \over 2} = 6401.5
Δ
2

=
2
δ
21


22



=
2
6400+6403

=6401.5

由於 BH38旋轉編碼器初步測試 一周的數值為:N B H 38 = 2 14 = 16384 N_{BH38} = 2^{14} = 16384N
BH38

=2
14
=16384。由此可以得到肩部(關節1),肘部(關節2)旋轉一周的步數N1, N2:

N 1 = 2 14 × 20000 Δ 1 = 2 14 × 20000 8087.5 = 40516.85 N_1 = {{2^{14} \times 20000} \over {\Delta _1 }} = {{2^{14} \times 20000} \over {8087.5}} = 40516.85
N
1

=
Δ
1


2
14
×20000

=
8087.5
2
14
×20000

=40516.85

N 2 = 2 14 × 20000 Δ 2 = 2 14 × 20000 6401.5 = 51188.0 N_2 = {{2^{14} \times 20000} \over {\Delta _2 }} = {{2^{14} \times 20000} \over {6401.5}} = 51188.0
N
2

=
Δ
2


2
14
×20000

=
6401.5
2
14
×20000

=51188.0

N1,N2的比值符合 57HSXXXXEIS , 42HS48EIS 的步進細分表表格的設置。

為了統一兩個電極的控制,將57HSXXXXEIS(肩部步進電機控制器)的細分設置也設置為512000。重新進行測定。

修改步進電機設置之後,重新上電啟動系統。

起始位置 關節1:1984 關節2:2698
結束位置 8327 9097
位置變化 6343 6399
經過測試可以看到,兩者之間的步進角度比(R s a R_{sa}R
sa

)都接近於:
R s a = S t e p   N u m e r A n g l e = 51200 2 14 = 3.125 R_{sa} = {{{\rm{Step}}\,{\rm{Numer}}} \over {Angle}} = {{51200} \over {2^{14} }} = 3.125
R
sa

=
Angle
StepNumer

=
2
14

51200

=3.125

04位置閉環控制
1.一次運動誤差
對應的一次運動誤差是指,僅僅運動一次,然後測量靜止時刻的誤差。生成兩個角度隨機設定值,然後機械臂運行到相應的位置。讀取角度取值,獲取與設定值之間的差值。作為誤差值進行統計。

計算的方式: 根據當前的角度誤差,使用步進角度比(Rsa) 來計算每個關節的移動步距(即移動步驟脈沖個數)和具體的方向。

具體測試的結果見下面的曲線。統計值為:

meanx = -0.15, Var(x) = 51.25
mean(y) = 0.02; Var(y) = 64.66

delx=[7.0, 10.0, 10.0, 7.0, 3.0, 11.0, 17.0, 8.0, 3.0, 5.0, 6.0, 12.0, 12.0, 4.0, 6.0, 1.0, 1.0, 1.0, 8.0, 8.0, 2.0, 6.0, 0.0, 11.0, 8.0, 4.0, 9.0, 2.0, 5.0, 12.0, 5.0, 6.0, 9.0, 7.0, 1.0, 1.0, 2.0, 0.0, 2.0, 1.0, 7.0, 16.0, 2.0, 0.0, 3.0, 5.0, 7.0, 3.0, 12.0, 0.0]
dely=[12.0, 6.0, 8.0, 15.0, 1.0, 5.0, 1.0, 0.0, 7.0, 14.0, 10.0, 10.0, 6.0, 6.0, 2.0, 8.0, 0.0, 2.0, 6.0, 5.0, 5.0, 9.0, 1.0, 10.0, 6.0, 4.0, 1.0, 7.0, 10.0, 11.0, 6.0, 0.0, 6.0, 13.0, 12.0, 1.0, 2.0, 5.0, 16.0, 13.0, 8.0, 4.0, 5.0, 5.0, 6.0, 5.0, 0.0, 3.0, 1.0, 4.0]
1
2
1
2
2.二次運動誤差
mean(x) = -0.094; Var(x) = 4.08
mean(y) = 0.031; Var(y) = 4.28

delx=[1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 1.0, 4.0, 3.0, 1.0, 0.0, 4.0, 3.0, 3.0, 0.0, 2.0, 2.0, 1.0, 1.0, 2.0, 2.0, 0.0, 0.0, 2.0, 3.0, 4.0, 0.0, 2.0, 2.0, 2.0, 1.0]
dely=[0.0, 1.0, 3.0, 2.0, 2.0, 3.0, 2.0, 1.0, 1.0, 3.0, 2.0, 0.0, 0.0, 2.0, 4.0, 2.0, 1.0, 4.0, 2.0, 2.0, 1.0, 3.0, 1.0, 3.0, 1.0, 2.0, 2.0, 1.0, 1.0, 1.0, 3.0, 1.0]
1
2
1
2
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2020-09-07
#
# Note:
#============================================================

from headm import *
from random import *
from tsmole.tsstm32 import *

randpos = [(randint(3000,8000), randint(4000, 8000)) for s in range(50)]
printf(randpos)

delxdim = []
delydim = []

for p in randpos:
stm32cmd('angle12 %d %d'%(p[0], p[1]))
time.sleep(.5)

while True:
stm32cmd('CLEAR')
stm32cmd('angle')
time.sleep(.5)
val = stm32memo(1)

if len(val) != 4: continue

if val[2] + val[3] == 0: break

time.sleep(2)
stm32cmd('angle12 %d %d'%(p[0], p[1]))
time.sleep(.5)
time.sleep(1)

stm32cmd('CLEAR')
stm32cmd('angle')
time.sleep(.5)
val = stm32memo(1)
delxdim.append(p[0] - val[0])
delydim.append(p[1] - val[1])

tspsave('delta1', delx=delxdim, dely=delydim)
printf(val)

tspsavenew('delta1', delx=delxdim, dely=delydim)
plt.plot(delxdim)
plt.plot(delydim)
plt.xlabel("Sample")
plt.ylabel("DeltaX Y")
plt.grid(True)
plt.tight_layout()
plt.show()

#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
通過上面實驗可以驗證,使用二次位置校正,可以有效的的角度空間位置統計誤差可以降低到±4左右。假設肩部的角度誤差
Δ θ s h o u l d e r = 4 2 14 × 2 π = 0.001534 \Delta \theta _{shoulder} = {4 \over {2^{14} }} \times 2\pi = 0.001534
Δθ
shoulder

=
2
14

4

×2π=0.001534

肩部的臂長L s h o u l d = 1 L_{should} = 1L
should

=1米,那麼中斷對應的位值誤差為:

Δ L = Δ θ s h o u l d e r × L = 1.53 m m \Delta L = \Delta \theta _{shoulder} \times L = 1.53mm
ΔL=Δθ
shoulder

×L=1.53mm

對應的最壞的位置誤差小於2mm。達到最初的設計精度要求。

 

05結論
根據對雙關節+機械爪運動初步控制,運動中的主要矛盾還是出現在對肩部的動態控制方面。如果還是採用放緩輸出角度,則無法達到運動速度和過沖之間的矛盾。

下面需要進一步同安肩部角度反饋來獲得對肩部運動的高速穩定掃之。

另文給出:

肩部高速平滑控制方式;
機械爪帶有力矩反饋的控制;
 
■ 相關文獻鏈接:

兩軸機械臂+機械爪整體控制板設計與機械爪控制調試
BH38旋轉編碼器初步測試
57HSXXXXEIS一體化步進伺服驅動電機
42HS48步進電機實驗
打開CSDN,閱讀體驗更佳

二關節機械臂計算力矩跟蹤控制
二關節機械臂計算力矩跟蹤控制,包括階躍信號和正弦信號,程序能完好運行,並畫出跟蹤效果
二關節機械臂計算力矩控制simulink程序.7z
二關節機械臂計算力矩控制simulink程序 可直接運行 歡迎大家下載 謝謝啦 (話說在哪裡看怎麼設置積分呀)
基於esp8266+微信小程序的兩關節機械臂(課設)
基於esp8266+微信小程序的兩關節機械臂(課設) 1. 機械臂概述 機械結構是某魚上買,自己畫也可以3D列印也可以(個人建議:預留舵機穿線的空間和舵機片的空間,之前diy其他東西的時候翻個車)。舵機是在某寶上買的,根據個人情況采購,注意要和自己的圖紙尺寸對應。這個機械臂的動作由4個舵機控制,3個舵機x(底盤),y(第一個關節),z(第二關節),另外一個舵機e控制夾子的動作。通過微信小程序上的按鈕可以控制各個舵機的角度,可以記錄舵機的實時角度。這機械臂能通過小程序控制完成一些動作,可以自動復位到初始狀態,
繼續訪問

機械臂控制-3
後處理器 後處理器是離線編程中的關鍵步驟,因為它們可以為特定的機器人控制器生成機器人程序。機器人編程必須遵循特定於供應商的編程規則,這些規則在後處理器中實現。機器人後處理器定義必須如何為特定機器人控制器生成機器人程序。 從RoboDK模擬到特定機器人程序的轉換由後處理器完成。每個機器人都鏈接到一個後處理器,後者將定義一個特定的機器人編程風格。離線生成程序時使用後處理器,如「 生成程序」部分所示(右...
繼續訪問

[易懂]兩連桿關節機械臂機器人給定位置求解各關節轉動角度教程模擬Python實現
參考文獻: [1] https://robotacademy.net.au/lesson/inverse-kinematics-for-a-2-joint-robot-arm-using-geometry/
繼續訪問

三爪機械爪的測試
▲ 三爪機械手抓取燒杯實驗 一些其他相關產品的連接:(來自於白超發送的信息) SEED機械臂電動夾爪
繼續訪問
二關節機械臂matlab控制,二連桿機械臂阻抗控制模擬(一)
在學習機器人動力學相關內容時看到MATLAB論壇上一個有意思的模擬項目Impedance Control for a 2-Link Robot Arm - User-interactive,一個用MATLAB實現的平面二連桿機械臂阻抗控制模擬。用戶可以點擊並拖拽滑鼠來實時改變機械臂的目標位置,在控制力矩作用下機械臂會跟隨目標點運動。按空格鍵可以切換控制模式,此時拖拽滑鼠用來給末端施加一個擾動力,由...
繼續訪問

ROS控制實體UR5e機械臂運動【5】
在前面的幾篇文章中已經介紹了如何建立機械臂模型,如何進行機械臂在ROS裡面模擬運動。本篇文章主要對實體機械臂進行運動控制。
繼續訪問

對六自由度機械臂的運動控制及python實現(附源碼
經過一周的研究,對六自由度機械臂運動進行了研究,利用高中幾何知識進行了運動控制策略的設計,無償貢獻出源碼,可以為入門的小夥伴提供一定的借鑒。 1、機械臂物理參數的介紹 買了一個大象機械臂mycobot,作為研究對象,如果是其它機械臂,可以根據機械臂參數對代碼進行修改。機械臂參數如下圖所示: 1.1 部件與尺寸 機械臂如下部件組成,描述如下表: 序號 名稱 描述 在py...
繼續訪問

myCobot pro 機械臂(3)簡單指令控制機械臂運動(+指令解析)(開發環境:w10 / python)
考試之間還是忍不住想要玩一玩這些東西,太吸引我了! 一、簡單指令控制機械臂運動 一直想要通過指令來控制機械臂的運動,為下一步的視覺伺服到指定的位置做鋪墊,所以就簡單的寫了一個程序來驗證一下想法,效果挺好! 代碼如下: from pymycobot.mycobot import MyCobot import os import time mc = MyCobot('COM4', 115200) print("當前的位置關系如下:") angle_datas = mc.get_angles()
繼續訪問

最新發布 機械爪結構設計
近年來,智能化機械裝備逐漸走進人們的生產實踐中,大大的提高了加工生產的效率,減輕了工人的勞動強度。其中,機械爪能夠模仿人手的動作,按照預定程序實現貨物抓取、搬運等操作,在自動化生產線中具有廣泛地應用,現給出初步設計方案,供大家參考。
繼續訪問

話題控制robotiq機械爪
話題控制robotiq機械爪 在機械臂進行自主抓取時,需要機械臂到達目標位置時,機械爪能夠自動執行動作。因此需要在邏輯中加入話題控制機械爪。 機械爪控制話題 在運行了機械爪的控制話題之後,我們使用rostopic list來尋找控制機械爪的話題: Robotiq2FGripperRobotOutput 同時,我們在robotiq_2f_gripper_control中查看msg消息類型: uint8 rACT uint8 rGTO uint8 rATR uint8 rPR uint8 rSP u
繼續訪問
舵機控制的機械爪
  ■ 背景 先驅威鋒白超發送過來機械爪購買樣品連接 機械爪子匯總機器人機械手臂配件大扭力舵機控制驅動板diy夾持器 。利用其中一種完成 雙軸機械臂前端抓持機械結構。 ▲ 由舵機控制的各種機械爪 手邊有一個從白超訂購過來的平行機械爪,其中舵機來自於 海靈智電 提供的20公斤-厘米的舵機。 ▲ 平行機械爪控制平行機械爪的舵機 下面對於這款機械爪的安裝和控制進行初步測試。   01舵機控制信號模塊 實驗電路使用在 使用STC8H1K的高級PWM的正交編碼器計數方式 中的基於STC8H1K
繼續訪問

ROS機械臂控制框架圖
機械臂運動控制——三維空間剛體運動描述
一、旋轉矩陣 在機器人運動的過程當中,我們通常會設定一個慣性坐標系(或者叫世界坐標系),姑且認為這個坐標系是固定不動的。例如:,,是固定不動的世界坐標系,,,​​是機器人坐標系。存在一個向量,在世界坐標系下的坐標是​​,在移動機器人坐標系下的坐標是​​,通常情況下,我們通過感測器已知移動機器人坐標系統下的坐標,來求在世界坐標系下的坐標 為了求​​,我們必須知道機器人坐標系,,​​相對與世界...
繼續訪問

兩關節機械臂的獨立PD控制
兩關節機械臂的獨立PD控制,控制演算法和機械臂模型均採用s_function函數編寫。 (2012-09-19, matlab, 4KB, 7次).zip
機械爪的帶有壓力反饋的控制實驗
  ■ 實驗背景說明 在 兩軸機械臂+機械爪整體控制板設計與機械爪控制調試 中的機械臂安裝有 舵機控制的機械爪 。在機械爪上安裝有 FSR壓力感測器 來感應機械爪在抓取試劑瓶時的壓力。在 兩軸機械臂+機械爪整體控制板設計與機械爪控制調試 中已經獲取了 機械爪距離 與FSR壓力之間的曲線關系。下面給出了其中一張典型的曲線關系圖。 ▲ 設置舵機的指令與讀取FSR的AD值 可以看到通過FSR的反饋信號在一定程度上可以反映出機械爪對於夾持物品的壓力。但由於機械爪(塑料製件)中存在著較大的摩擦和裝配間隙,
繼續訪問
python機器人編程——四軸UARM機械臂的運動控制(逆解)原理及python實現(上)
本篇是python——VREP數字孿生四軸機械臂聯合模擬的姊妹篇,主要對uarm機械臂的結構及運動控制進行了解析,並提供推導過程,最後用python進行編程實現,為uarm的聯合模擬提供核心演算法。
繼續訪問

機器手臂(2):機械手臂關節研究
本文的原文連接是: http://blog.csdn.net/freewebsys/article/details/50340883 未經博主允許不得轉載。 博主地址是:http://blog.csdn.net/freewebsys 1,設計手臂 第一個版本機械手臂: arm_base手臂底座 arm_1 關節1 h...
繼續訪問
熱門推薦 【機械臂】機械臂快速入門
    1.處理器  (確定每個關節應該動多少,多遠)==>控制器(發信號使得驅動器到某個關節的指定角度)    2.六自由度解釋    除了空間內的三個坐標數據(確定位置xyz),還需要確定所選點的姿態,所以需要六個自由度才能達到空間的任意位置,例如五自由度,能繞三個軸轉動但只能沿著xy軸平移,5自由度可以指定姿態但只能沿著xy軸,不能沿著z軸給部件定位。而7自由度系統無唯一解    3....
繼續訪問
資料庫課程設計

閱讀全文

與二軸關節機械臂演算法相關的資料

熱點內容
安卓是世界上多少個程序員開發 瀏覽:43
解壓器官方免費 瀏覽:85
單片機p10開發 瀏覽:486
做什麼app賺錢 瀏覽:83
博途編譯失敗聯系客戶支持部門 瀏覽:926
金蝶旗艦版編譯 瀏覽:51
萬象伺服器斷電後啟動不了怎麼辦 瀏覽:356
我的世界蘋果版的2b2t伺服器地址咋查 瀏覽:95
xlsx轉換pdf 瀏覽:98
3dmax擠出命令英語 瀏覽:903
靶心率的定義和演算法 瀏覽:514
3d模術師app哪裡下載 瀏覽:474
php中文api文檔 瀏覽:458
安卓設計怎麼加入輸入框 瀏覽:185
主根伺服器什麼時候開始 瀏覽:738
奇門遁甲完整版pdf 瀏覽:904
app軟體怎麼用的 瀏覽:802
電子書pdf購買 瀏覽:194
浪潮伺服器如何做系統 瀏覽:113
冒險島img格式加密 瀏覽:598