compas-dev / compas-dev/compas_fab

adding robots for Analytical Kinematics

Open
#362 13 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
137
Forks
47
PR merge metrics
No merged PRs in 30d

Description

# Feature Request

It would be nice to allow using custom robots with `Analytical Kinematics` solver.

## Details

**Is your feature request related to a problem? Please describe.**
Currently there are only a very limited robots available to use with Analytical Kinematics solver.

**Describe the solution you'd like**
for example:
```
# based on http://archive.fabacademy.org/archives/2017/fablabcept/students/184/assets/lobster_ik.pdf

points = [Point(0.320, 0.000, 0.78),
Point(0.320, 0.000, 2.06),
Point(1.9125, 0.000, 2.26),
Point(2.1125, 0.000, 2.26)]

irb6700_150 = { 'name' : 'ABB_IRB6700_150_320' , 'brand' : 'ABB', 'type' : 'spherical_wrist', 'points' : points }
# brand is used for classifying pre_processing and post_processing functions

ik.inverse_kinematics(robot, frame_WCF, options={'solver': irb6700_150})
```
**Describe alternatives you've considered**
Manually modified the local [python files](https://github.com/compas-dev/compas_fab/blob/main/src/compas_fab/backends/kinematics/solvers/spherical_wrist_kinematics.py) in compas (forking):
```
class ABB_IRB6700_150_320Kinematics(SphericalWristKinematics):

"""Analytical IK solver for the ABB IRB6700 150/320 robot."""

def __init__(self):

points = [Point(0.320, 0.000, 0.780),
Point(0.320, 0.000, 2.060),
Point(1.9125, 0.000, 2.26),
Point(2.1125, 0.000, 2.26)]

super(ABB_IRB6700_150_320Kinematics, self).__init__(points)
.
.
.

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.