Module for finding casadi functions of forward kinematics and dynamics of a URDF chain.
Project description
URDF2CASADI
A module for generating the forward kinematics of a robot from a URDF. It can generate the forward kinematics represented as a dual quaternion or a transformation matrix. urdf2casadi works both in python 2 and 3, and any platform that supports CasADi and urdf_parser_py.
Other libraries
This module is implemented in Python, and was intended to explore a CasADi approach to forward kinematics and rigid body dynamics algorithms based on URDFs. For a more real-time control applicable alternative, consider the Pinocchio library.
Installation
With ROS:
- Get ROS (actually anything that installs
urdfdom_py/urdf_parser_pywill do). - Get CasADi (e.g.
pip install casadi). - Run
pip install --user .in the folder.
Without ROS:
- Change the
urdfdom-pytourdf-parser-pyinrequirements.txt(line 3) and insetup.py(line 20). - Get CasADi (e.g.
pip install casadi). - Run
pip install --user .in the folder (--userspecifies that it is a local install).
Usage example
import casadi as cs
from urdf2casadi import urdfparser as u2c
urdf_path = "../urdf/ur5_mod.urdf"
root_link = "base_link"
end_link = "tool0"
robot_parser = u2c.URDFparser()
robot_parser.from_file(urdf_path)
# Also supports .from_server for ros parameter server, or .from_string if you have the URDF as a string.
fk_dict = robot_parser.get_forward_kinematics(root_link, end_link)
print(fk_dict.keys())
# should give ['q', 'upper', 'lower', 'dual_quaternion_fk', 'joint_names', 'T_fk', 'joint_list', 'quaternion_fk']
forward_kinematics = fk_dict["T_fk"]
print(forward_kinematics([0.3, 0.3, 0.3, 0., 0.3, 0.7]))
Citation
The results were published in "Robot Dynamics with URDF & CasADi" at ICCMA 2019. Preprint]
@inproceedings{urdf2casadi,
title={Robot Dynamics with URDF \& CasADi},
author={Johannessen, Lill Maria Gjerde and Arbo, Mathias Hauan and Gravdahl, Jan Tommy},
booktitle={2019 7th International Conference on Control, Mechatronics and Automation (ICCMA)},
year={2019},
organization={IEEE}
}
Todo/Implementation status
- Forward kinematics with SE(3) matrix
- Forward kinematics of rotation with quaternion
- Dual Quaternions as alternative to SE(3) matrices
- Dynamics from links and their inertia tags
- Denavit Hartenberg?
- Move numerical to a test folder
- Examples
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file urdf2casadi-1.0.0.tar.gz.
File metadata
- Download URL: urdf2casadi-1.0.0.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
859550a2067e3227abffee91636a4ec01a600fd4387ea32cbf731612f4d6ef0c
|
|
| MD5 |
34a606cf692edeea09c95820708ee2e6
|
|
| BLAKE2b-256 |
05b9764dae8b4a90003d139bc33ff705b373fb2c4e827f9935abd3405bee7c3f
|
File details
Details for the file urdf2casadi-1.0.0-py3-none-any.whl.
File metadata
- Download URL: urdf2casadi-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e55cffec658b22f0ee2e4e636c3a1b08306bc0f4b01586a1e733a88b057a5f0
|
|
| MD5 |
76c5cdbc89539f9765e130edd1bca4d7
|
|
| BLAKE2b-256 |
a9673698c55507e5270b4fc593341166178c05ea142b98192624a7409447a014
|