Product: UnderAutomation Fanuc SDK

Copyright (c) UnderAutomation

Website: https://underautomation.com/fanuc

This software is developed, proprietary, and distributed by UnderAutomation.
All rights not expressly granted are reserved.

This document contains required notices for open-source software modules
used in this product, as well as acknowledgements for the technical research
and academic publications that formed the basis of this implementation.

---

## 1. KINEMATIC ALGORITHMS & MATHEMATICAL MODELS

The Inverse Kinematics (IK) solvers included in this SDK are analytical
implementations based on mathematical models described in the following
academic publications.

**A. OPW Industrial Arms (Classical 6-axis)**
For standard Fanuc robots featuring an ortho-parallel basis and spherical wrist.

- **Reference:** Brandstötter, M., Angerer, A., & Hofbaur, M.
  "An Analytical Solution of the Inverse Kinematics Problem of Industrial
  Serial Manipulators with an Ortho-parallel Basis and a Spherical Wrist."
  _Austrian Institute of Technology / UMIT._  
  https://www.researchgate.net/publication/264212870_An_Analytical_Solution_of_the_Inverse_Kinematics_Problem_of_Industrial_Serial_Manipulators_with_an_Ortho-parallel_Basis_and_a_Spherical_Wrist

**B. CRX Collaborative Arms**
For Fanuc CRX cobots utilizing a closed-form solver with optional dual solutions.

- **Reference:** Abbes, M., & Poisson, G.
  "Geometric Approach for Inverse Kinematics of the FANUC CRX Collaborative Robot."
  _PRISME Laboratory, University of Orléans._  
  https://www.researchgate.net/publication/381458066_Geometric_Approach_for_Inverse_Kinematics_of_the_FANUC_CRX_Collaborative_Robot

---

## 2. PROTOCOL IMPLEMENTATION & ACKNOWLEDGEMENTS

This library implements the SNPX protocol
to communicate with Fanuc Robot Controllers. As this is a proprietary
protocol with no official public documentation, this implementation relies
on protocol analysis and standard research.

**Special Acknowledgements:**

We gratefully acknowledge the work of GitHub user **Palatis**, whose
extensive research into the GE SRTP protocol provided the technical
foundation for the packet definitions used in this driver.

- **Reference:** Fanuc.RobotInterface (https://github.com/Palatis/Fanuc.RobotInterface/blob/bc8a3689832ead16f1bbde7ec95c12f21dba4e2b/Fanuc.RobotInterface/RobotIF.cs)
  _Used as a technical reference for SRTP packet definition and error handling._

- **Reference:** Wireshark GE SRTP Dissector (https://github.com/Palatis/packet-ge-srtp)
  _Used for protocol validation and debugging._

---

## 3. THIRD-PARTY COMPONENTS

This product includes code or libraries derived from the following projects.
The applicable license terms are listed below.

### A. FluentFTP

- **Source:** https://github.com/robinrodricks/FluentFTP
- **License:** MIT License

### B. Pythonnet (Python Version Only)

- **Source:** https://github.com/pythonnet/pythonnet
- **License:** MIT License

---

### MIT LICENSE TEXT (Applicable to FluentFTP and Pythonnet)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.