compas-dev / compas-dev/compas_fab
adding robots for Analytical Kinematics
- 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
Assessment
This issue has not been assessed yet.