姿态和航向参考系统。

AHRS的Python项目详细描述


AHRS:姿态和航向参考系统

ahrs是一个用python编写的函数和对象的动物园,帮助您估计机器人系统的方向和位置。

最初,一个AHRS被定义为一组正交传感器,提供飞机的姿态信息。这一领域现在正扩展到更小的设备,如可穿戴设备、自动化运输和各种移动机器人。

模块ahrs的开发重点是快速原型和简单的模块化。

ahrs与python 3.6及以上版本兼容。

安装

ahrs可以使用pip

pip install ahrs

或者使用存储库中的最新版本:

git clone https://github.com/Mayitzin/ahrs.git
cd ahrs
python setup.py install

ahrs依赖于最分布式的python包。如果你没有,他们将自动下载和安装。

使用AHRS

例如,要使用方向,我们可以使用orientation模块。

>>>importahrs>>># Rotation matrix of 30.0 degrees around X-axis...ahrs.common.orientation.rotation('x',30.0)array([[1.,0.,0.],[0.,0.8660254,-0.5],[0.,0.5,0.8660254]])>>># Rotation sequence of the form: R_y(10.0)@R_x(20.0)@R_z(30.0)...ahrs.common.orientation.rot_seq('yXy',[10.0,20.0,30.0])array([[0.77128058,0.05939117,0.63371836],[0.17101007,0.93969262,-0.29619813],[-0.61309202,0.33682409,0.71461018]])

它也能很好地处理四元数。

>>>importnumpyasnp>>>q=np.random.random(4)>>># It automatically normalizes any given vector...ahrs.common.orientation.q2R(q)array([[0.76811067,0.3546719,0.53311709],[0.55044928,0.05960693,-0.83273802],[-0.32712625,0.93308888,-0.14944417]])

ahrs还包括一个简化数据加载和可视化的模块

>>>data=ahrs.utils.io.load("ExampleData.mat")>>>ahrs.utils.plot_sensors(data.gyr,data.acc,data.mag)

Sensor Plotting

如果要使用传感器数据来估计姿态,请使用filters模块,该模块包含各种(更多)算法。

>>>madgwick=ahrs.filters.Madgwick()>>>Q=np.tile([1.,0.,0.,0.],(data.num_samples,1))# Allocate an array for all quaternions>>>d2g=ahrs.common.DEG2RAD# Constant to convert degrees to radians>>>fortinrange(1,data.num_samples):...Q[t]=madgwick.updateMARG(d2g*data.gyr[t],data.acc[t],data.mag[t],Q[t-1])...>>>ahrs.utils.plot_quaternions(Q)

Quaternion Plotting

文档

一个全面的文档和示例将很快出现在Read the Docs

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java WebClient请求级别超时抛出名为default onErrorDropped的运算符   java JAXB外部绑定文件错误   Freemarker中的java转义宏参数值   java正在同步来自不同对象{已编辑}的线程   java如何在另一个类上更新活动中的元素   java Hibernate连接查询   java可以使用Apache Crunch创建类似于图形的数据结构吗?   java在JLabel的开头加上3个点   java 安卓应用程序显示线程错误   java@RequestBody在Spring中总是空的   java Android异步任务永远不会结束   具有多个属性的java Jaxws枚举   java中的安卓 Stripe InvalidRequestException   多线程java。util。非多线程程序中的ConcurrentModificationException   Minecraft Java插件如何删除HashMap中存储的所有块   空Java字符串的大小   从AJP连接器请求检索Shibboleth属性的java   oracle11g将Java类文件加载到Oracle数据库