您好,这是一个帮助机器人学习者入门的开源项目,我会在本项目更新以下内容:
- 机器人学基础知识点的实现
- 实用且有趣的算法实现
需要特别指出,本项目的开发要遵循几个原则:
- 单文件原则:除了必要的 python 基础模块外,每个实例仅依赖于单个文件的内容
- 索引原则:这不是一份教学材料,附带的文档中固然可以简单讲解算法,但更重要的是为初学者指明有价值的参考资料
本项目将持续更新,感谢您的关注~
- 刚体运动
- 机器人运动学
- 几何学
旋转矩阵是最基本的姿态表达方法。本文件包含了以下与旋转矩阵有关的算法:
- 欧拉角与旋转矩阵互相转换
- 四元数与旋转矩阵互相转换
可以按照类似如下方法调用:
euler_init = [10, 45, 90]
R = euler_to_rotmat(euler_init)
print('初始欧拉角: ')
print(euler_init)
print('\n欧拉角 -> 旋转矩阵: ')
print(R)
将得到如下结果:
初始欧拉角:
[10, 45, 90]
欧拉角 -> 旋转矩阵:
[[ 0. -0.9848 0.1736]
[ 0.7071 0.1228 0.6964]
[-0.7071 0.1228 0.6964]]
D-H 法是研究机器人学经常要用到的工具。本文件可以根据给出的 DH 表生成对应的 3 维坐标系结构简图。支持标准 DH(SDH)和改进 DH(MDH)。
可以按照类似如下方法调用:
# 标准六轴
# MDH参数表 a alpha d theta
dh_list = [[0, 0, 0, 0],
[50, -90, 0, -90],
[150, 0, 0, 0],
[50, -90, 40, 0],
[0, 90, 0, 0],
[0, -90, 50, 30]]
dh_view(dh_list, dh_type="mdh")
将得到如下结果:
旋量理论(screw theory)和DH参数法是表达机器人运动学结构的两种方法。本文件包含了二者的转换关系。
对于下面的改进DH参数表,转换为旋量表达后绘制如图所示:
dh_data = [[0, 0.0, 0.0, 250.0],
[0, 150.0, 0.0, 0.0],
[1, 150.0, 180.0, 0.0],
[0, 0.0, 0.0, 0.0]]
对于空间中任意两个凸多边形,可以采用一种名为分离轴测试(Separating Axis Test)的方法进行碰撞检测。本文件包含一组矩形的例子: