Skip to content

Commit 0f1a281

Browse files
committed
added r30ib forward kinematics test cases
1 parent 838383f commit 0f1a281

File tree

3 files changed

+869
-0
lines changed

3 files changed

+869
-0
lines changed

Diff for: readme.md renamed to README.md

+8
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,13 @@ The `meshes/` folder contains several subdirectories of STL files which are repr
1919
* The `meshes/low-res/` folder contains the same STL exports but ones that I've manually thinned and de-featured. They have significantly reduced triangle counts and some features like holes and inter-component seams have been removed. The majority of the surfaces will be roughly within 0.5mm of the original medium resolution meshes, except for the de-featured regions. I created these meshes to use them for more complicated collision detection than the convex bodies.
2020
* The `meshes/convex/` folder contains convex hulls generated from the low resolution meshes by the `scripts/generate_convex.py` script. These are ideal for fast collision checking.
2121

22+
### IK Fast
23+
24+
### Test Cases
25+
26+
The `test_cases/` folder contains various sets of test data which can be used to check and verify code and kinematics models. See the [`README.md`](test_cases/README.md) file in that folder for more details.
27+
28+
* `test_cases/r30ib_forward_kinematics.json` - This is a set of joint positions (in degrees) and the corresponding resulting transformation matrix of the robot end flange. Can be used to check a kinematics model against joint values as they would be put into the R-30iB controller. Be aware of the J2/J3 interactions.
29+
2230
### Scripts
2331

Diff for: test_cases/README.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Test Cases
2+
3+
In this folder I've collected test case data which can be used to verify your own code. What follows are descriptions of the individual test cases, how the data is structured, and how it was produced.
4+
5+
## R-30iB Forward Kinematics
6+
7+
**File: `r30ib_forward_kinematics.json`**
8+
9+
This is a set of test cases which consist of joint values as they would be entered into the LRMate's R-30iB controller and the resulting transformation matrix which represents the pose of the robot end flange when the robot is moved to those joint values.
10+
11+
These are stored `json` consisting of a list of 30 objects. Each object has:
12+
13+
* `joints`: field which is six decimal values representing the joint angle in *degrees*, in the order of *J1*, *J2*, *J3*...*J6*
14+
* `end`: a field consisting of 16 decimal values representing the elements of the 4x4 transformation matrix from the world origin to the robot end flange pose. The values are in sequential order by column. The first four values form column 1, the second four are column 2, the third four are column 3, and the last four are column 4.
15+
16+
**Be aware of the special J2/J3 interaction common in FANUC robots.** On the LRMate and the R-30iB controller, the value of J3 as entered into the controller, and as displayed on the controller, is the angle between J3 and the robot base, *not* the angle between J3 and J2. The kinematic angle (the angle used by normal kinematic models) is found by adding the values of J2 and J3.
17+
18+
These test cases were randomly generated from an existing Denavit-Hartenberg forward kinematics model based on the documented parameters of the LRMate 200iD. That model was verified against RoboDK and a real LRMate 200iD when it was created, and has been operating in a production system for many years, but the individual test cases generated here were random joint positions that have not been directly verified.
19+

0 commit comments

Comments
 (0)