This is a new tool for multi-joint robotic arm calculations developed at RPI.
Project description
Summary:
- This is a research project led by Alexander Elias and Dr. John Wen at RPI.
- Summation of research: https://arxiv.org/pdf/2211.05737.pdf
- Included here is the Python version of the MATLAB-based canonical subproblems for inverse kinematics on robots.
- Additional MATLAB, C++, Rust, and Python files are located at https://github.com/rpiRobotics/linear-subproblem-solutions/.
Python Branch Guide:
Dependencies:
- NumPy: https://numpy.org/install/
- SciPy: https://scipy.org/install/
- Python (version compatible w/ installed NumPy)
To Use Example Code:
- Clone the above repo
- To see timing information and a simple demo, run each sp#.py file
- Otherwise, just include yhe pip module in your applications as needed
Advice:
- NumPy vs MATLAB can be confusing at first, see this article for some clarity.
- See the below note on precision/formatting.
- NumPy makes it extremely easy to export/import entire matrices as csv/excel files. Make use of this if you can.
Precision and Formatting
- If comparing values in Python to MATLAB output, be careful with how inputs are entered.
- Also, note that values printed in the test files are not the exact values used in the calculations.
- Vectors in NumPy are of form [n n n] (0 row, 3 col). You cannot have a vector of 3 col, 0 row.
- Note, the MATLAB version of this code uses vectors of 3 col, 0 row, which is why some calculations look slightly different.
In Python:
p1 = [0.85421456 0.9145417 0.28164908]
p2 = [0.71384302 0.84785577 0.40390217]
k1 = [0.53432959 0.73260445 0.42164275]
k2 = [0.89871158 0.33336884 0.2849258 ]
In MATLAB:
p1 = [0.85421456; 0.9145417; 0.28164908]
p2 = [0.71384302; 0.84785577; 0.40390217]
k1 = [0.53432959; 0.73260445; 0.42164275]
k2 = [0.89871158; 0.33336884; 0.2849258 ]
Timing
| Subproblem | Time With Inputs | Time Without Inputs |
|---|---|---|
| Sp1 | 78716.896 ns | 73754.058 ns |
| Sp2 | 325238.43 ns | 318135.293 ns |
| Sp2E | 409206.773 ns | 400298.479 ns |
| Sp3 | 127781.537 ns | 122444.399 ns |
| Sp4 | 104747.862 ns | 99615.851 ns |
| Sp5 | 1353110.805 ns | 1341531.159 ns |
| Sp6 | 614233.523 ns | 596708.225 ns |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linearsubproblemsltns-1.0.2.tar.gz.
File metadata
- Download URL: linearsubproblemsltns-1.0.2.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61d3554b48ef63bb8f6b1b1959492b79a5ab7a2db22709ad643b1c70758c2080
|
|
| MD5 |
e07a9edc1be04d8402aa2663f2aa9e1b
|
|
| BLAKE2b-256 |
bb7babec88073ce9985f655c3489ef224f743a702159641c794cc8e3ff7a28ac
|
File details
Details for the file linearsubproblemsltns-1.0.2-py3-none-any.whl.
File metadata
- Download URL: linearsubproblemsltns-1.0.2-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9389d476e6154d1ddd62148b4b2e11ddf2a167f00ae72763cfc825b953e0ab36
|
|
| MD5 |
8caa37318906d705c542b380380e13c1
|
|
| BLAKE2b-256 |
55bf7234cf2539200f108872dc42bfd081b9afe5fd6c8b72aaae529c3a9dd770
|