iory / scikit-robot

A Flexible Framework for Robot visualization and programming in Python
https://scikit-robot.readthedocs.io/
MIT License
121 stars 23 forks source link

Enhance Joint Handling and Add Rodrigues Batch Testing #368

Closed iory closed 6 months ago

iory commented 6 months ago

This PR introduces several enhancements to the RobotModel class and expands testing for Rodrigues' rotation functionality. Below are the key changes:

Enhancements to RobotModel:

Sanitization of Joint Limits: Added a method sanitize_joint_limits to replace infinities with manageable limits and ensure a non-zero range for joint movements. This method is crucial for preventing runtime errors due to infinite or excessively narrow joint limits. Joint List Extraction: Added joint_list_from_link_list, which generates a list of joints from a given list of links. This method supports an option to ignore fixed joints, making it versatile for different robotic configurations. Compute Joint Limits from List: Integrated the above methods in joint_limits_from_joint_list to compute practical joint limits directly from a list of joints.

Improvements in Testing:

Rodrigues Batch Test: Added tests in test_rodrigues_batch to verify the Rodrigues' rotation conversion for batches of angles and axes. This includes checks for typical rotations and edge cases where the rotation angle might be undefined

Batch ik

You can solve inverse kinematics by batch processing by adding batch calculation. https://gist.github.com/iory/f9e84949172a5a68bcfccc3dad473a1d

batch-ik