This page is actively being edited
Closed-form geometric inverse kinematics (IK) solver based on conformal geometric algebra (CGA), a powerful mathematical framework for representing geometry.
CGA, in a simple and elegant way, provides numerous geometric insights into the robot that are difficult or nearly impossible to achieve using traditional matrix methods.
The IK solver have been implemented in ROS 2 humble C++ and tested on two robots:
- 6-DoF collaborative arms (TM5-700 and TM5-900)
- 3-DoF spherical parallel manipulator (SPM, or agile eye).
Clone and build the cga_ik_action_interfaces
pkg first, where the cga_ik
pkg relies on it:
cd ~/ros2_ws/src && git clone https://github.com/wei-hsuan-cheng/cga_ik_action_interfaces.git
cd ~/ros2_ws && rosdep update && rosdep install --from-paths src --ignore-src -r -y
cd ~/ros2_ws && colcon build --packages-select cga_ik_action_interfaces && . install/setup.bash
Then, clone and build the cga_ik
pkg:
cd ~/ros2_ws/src && git clone https://github.com/wei-hsuan-cheng/cga_ik.git
cd ~/ros2_ws && rosdep update && rosdep install --from-paths src --ignore-src -r -y
cd ~/ros2_ws && colcon build --packages-select cga_ik && . install/setup.bash
Run the closed-form IK solver demo codes for the two robots:
# Source your workspace
cd ~/ros2_ws && . install/setup.bash
# Visualise cobot_6dof and spm_3dof
ros2 launch cga_ik visualise_cobot_6dof.launch.py
ros2 launch cga_ik visualise_spm_3dof.launch.py
# Control the spm_3dof (action server)
ros2 launch cga_ik control_spm.launch.py use_fake_hardware:=true # false if control real robot
ros2 action send_goal /spm cga_ik_action_interfaces/action/SPM "{start: true}" # action client
Then, you will see the robots visualised in RViz2.
![]() 6-DoF Collaborative Arm |
![]() 3-DoF Spherical Parallel Manipulator |
- CGA class:
- Cobot IK solution:
- [1] A. Kleppe and O. Egeland. Inverse kinematics for industrial robots using conformal geometric algebra. Modeling, Identification and Control. 2016.
- [2] I. Zaplana, H. Hadfield, and J. Lasenby, “Closed-form solutions for the inverse kinematics of serial robots using conformal geometric algebra,” Mech. Mach. Theory, vol. 173, Jul. 2022, Art. no. 104835.
- [3] Slides at GAME2020: Robots, Ganja and Screw Theory
- SPM IK solution:
- [1] S. Sadeqi, S. P. Bourgeois, E. J. Park, and S. Arzanpour, "Design and performance analysis of a 3-RRR spherical parallel manipulator for hip exoskeleton applications," J. Rehabil. Assistive Technol. Eng., vol. 4, Sep. 2017, Art. no. 2055668317697596.
- [2] S. Bai, M. R. Hansen, and T. O. Andersen, “Modelling of a special class of spherical parallel manipulators with Euler parameters,” Robotica, vol. 27, no. 2, pp. 161–170, 2008.
- [3] Slides at GAME2020: Robots, Ganja and Screw Theory
- [4] JavaScript visualisation of 3-DoF agile eye
- SPM CAD design:
- ganja.js: The CGA class is an implementation adapted from the C++ template provided by ganja.js, an open-source geometric algebra library.
- Hugo's slides at GAME2020: A lot of notations and implementations in this work are inspired by the work of Hugo Hadfield and his slides at GAME2020.
- Robot Math Utils: Some utilities from Robot Math Utils are used.
- Eigen Library: This library heavily relies on the Eigen library for linear algebra operations.
- Author: Wei-Hsuan Cheng ([email protected])
- Homepage: wei-hsuan-cheng
- GitHub: wei-hsuan-cheng