robotics-toolbox-python icon indicating copy to clipboard operation
robotics-toolbox-python copied to clipboard

Typing issue with ik

Open Adam-McClenaghan opened this issue 2 years ago • 0 comments

Describe the bug This bug is a typing issue only, the code still runs correctly, but provides a typing error when using the ik_GN / ik_NR / ik_LM methods on a DH robot. The issue arises when using pylance and VSCode. The error occurs on all DHRobot models.

Version information

Roboticstoolbox installed via pyPI version 1.1.0 SpatialMath version 1.1.8

To Reproduce Steps to reproduce the behavior:

import roboticstoolbox as rtb from spatialmath import SE3

robot_1 = rtb.models.DH.KR5() Test_pose = [0.4, 0.4, 1]

path = SE3().Trans(Test_pose)

InverseKins = robot_1.ik_GN(path)

print(InverseKins)

OUTPUT: (array([ 0.78539657, -1.9870128 , 0.70859403, -3.14159021, 1.86320299, -5.49780081]), 1, 121, 10, 7.202483720039119e-10)

The script provides the correct output, but the error is thrown for ik_GN(). The error message reads:

Could not bind method "ik_GN" because "KR5" is not assignable to parameter "self" "KR5" is incompatible with protocol "KinematicsProtocol" "_T" is an incompatible type Type "List[NDArray[Unknown]] | NDArray[Unknown] | NDArray" cannot be assigned to type "NDArray" "List[NDArray[Unknown]]" is incompatible with "NDArray"PylancereportGeneralTypeIssues

Expected behavior The ik_GN method should not give a type error

Screenshots Screenshot 2023-09-06 at 15 12 01

Environment (please complete the following information): MacOS Monterey 12.6, python 3.10.6, using VSCode and pylance

Additional context Having looked through the class inheritance and function, it looks like ik_GN requires KinematicsProtocol but it doesn't look like DHRobot inherits from this.

Adam-McClenaghan avatar Sep 06 '23 14:09 Adam-McClenaghan