Skip to content

Closed-form inverse kinematics (IK) solution for 6-DoF collaborative robot (cobot) and 3-DoF spherical parallel manipulator (SPM) based on conformal geometric algebra (CGA). Implemented in ROS 2 C++.

Notifications You must be signed in to change notification settings

wei-hsuan-cheng/cga_ik

Repository files navigation

CGAIK

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).

Table of Contents

Installation

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

Demo

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

Bibliography

Acknowledgements

  • 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.

Contact

About

Closed-form inverse kinematics (IK) solution for 6-DoF collaborative robot (cobot) and 3-DoF spherical parallel manipulator (SPM) based on conformal geometric algebra (CGA). Implemented in ROS 2 C++.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published