forked from ZhengLiu-cart/IK_qp
update the comparison results.
This commit is contained in:
10
README.md
10
README.md
@ -14,19 +14,21 @@ Comparison with Realman official IK method.
|
|||||||
Embedded with current demo.
|
Embedded with current demo.
|
||||||
|
|
||||||
|
|
||||||
Comparison (04June2026):
|
### Comparison (05June2026):
|
||||||
|
|
||||||
- With current dual arm joint limit,
|
- With current dual arm joint limit,
|
||||||
```
|
```
|
||||||
ub = np.array([150.0, 110.0, 170.0, 130, 175.0, 125.0, 179.0])\
|
ub = np.array([150.0, 110.0, 170.0, 130, 175.0, 125.0, 179.0])
|
||||||
lb = np.array([-150.0, -30.0, -170.0, -130, -175.0, -125.0, -179.0])
|
lb = np.array([-150.0, -30.0, -170.0, -130, -175.0, -125.0, -179.0])
|
||||||
```
|
```
|
||||||
the success rates for qp-based ik and realman Algo ik are 45% and 23%.
|
the success rates for **qp-based ik** and **realman Algo ik** are **63%** and **46%**.\
|
||||||
|
At least one solver works out the ik, rate = **74%**.
|
||||||
|
|
||||||
- With realman-75 physical joint limit,
|
- With realman-75 physical joint limit,
|
||||||
```
|
```
|
||||||
ub = np.array([179.0, 129.0, 179.0, 134, 179.0, 127.0, 359.0])
|
ub = np.array([179.0, 129.0, 179.0, 134, 179.0, 127.0, 359.0])
|
||||||
lb = -ub
|
lb = -ub
|
||||||
```
|
```
|
||||||
the success rates for qp-based ik and realman Algo ik are 76% and 51%.
|
the success rates for **qp-based ik** and **realman Algo ik** are **76%** and **51%**.\
|
||||||
|
At least one solver works out the ik, rate = **84%**.
|
||||||
|
|
||||||
|
|||||||
@ -107,9 +107,9 @@ def demo_position_control():
|
|||||||
|
|
||||||
result = np.array([[0,0],[0,0]], dtype=np.int32) # qp_fk, qp_ik, rm_fk, rm_ik
|
result = np.array([[0,0],[0,0]], dtype=np.int32) # qp_fk, qp_ik, rm_fk, rm_ik
|
||||||
|
|
||||||
|
solve_sum = 0
|
||||||
|
|
||||||
|
for i in range(2000):
|
||||||
for i in range(1000):
|
|
||||||
print(f'\n-------------- in i = {i} ----------------')
|
print(f'\n-------------- in i = {i} ----------------')
|
||||||
joint_rand = np.random.uniform(ub/180*pi, lb/180*pi)
|
joint_rand = np.random.uniform(ub/180*pi, lb/180*pi)
|
||||||
print(f'the predefined joints are {joint_rand}')
|
print(f'the predefined joints are {joint_rand}')
|
||||||
@ -163,7 +163,11 @@ def demo_position_control():
|
|||||||
else:
|
else:
|
||||||
print(f'== fail in the rm ik, ret = {ret}y, q = {q}')
|
print(f'== fail in the rm ik, ret = {ret}y, q = {q}')
|
||||||
|
|
||||||
|
if success or ret == 0:
|
||||||
|
solve_sum += 1
|
||||||
|
|
||||||
print(f'result is {result}')
|
print(f'result is {result}')
|
||||||
|
print(f'solve_sum is {solve_sum}')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user