碇源堂 发表于 2013-2-2 11:56:26

关于矩阵

本帖最后由 碇源堂 于 2013-2-3 10:30 编辑

有没有矩阵库之类的?因为计算机器人的各个关节位置需要矩阵来计算【矩阵可是好东西啊,只要是个人都能用矩阵来精确计算机器人的姿态】

春泥蛋炒饭 发表于 2013-2-2 13:27:19

可以使用C语言的矩阵库函数,有很多现成的版本。

碇源堂 发表于 2013-2-2 18:17:18

春泥蛋炒饭 发表于 2013-2-2 13:27 static/image/common/back.gif
可以使用C语言的矩阵库函数,有很多现成的版本。

感谢,具体实施方法是直接下载C语言函数库添加进去?还是直接使用C语言的矩阵库函数?

春泥蛋炒饭 发表于 2013-2-3 07:52:28

碇源堂 发表于 2013-2-2 18:17 static/image/common/back.gif
感谢,具体实施方法是直接下载C语言函数库添加进去?还是直接使用C语言的矩阵库函数?

要把C的矩阵库目录(含h和CPP文件)考到arduino的libraries目录下,然后在你的arduino程序里声明,编译应该没问题,因为arduino的编程语言是C/C++的子集,最需要注意的是arduino芯片的内存很小(uno只有2K的SRAM),不能操作太大的矩阵。这里有几个免费的C/C++矩阵库供参考:http://www.ibm.com/developerworks/cn/linux/other/matrix/index.html

碇源堂 发表于 2013-2-3 10:30:01

春泥蛋炒饭 发表于 2013-2-3 07:52 static/image/common/back.gif
要把C的矩阵库目录(含h和CPP文件)考到arduino的libraries目录下,然后在你的arduino程序里声明,编译应 ...

感激不尽,我用的ARDUINO板子是目测目前官方板子里最豪华的DUE,而且是2块通过串口通讯来运行,SRAM一块有96K,应该能够用吧…………

春泥蛋炒饭 发表于 2013-2-3 12:55:34

碇源堂 发表于 2013-2-3 10:30 static/image/common/back.gif
感激不尽,我用的ARDUINO板子是目测目前官方板子里最豪华的DUE,而且是2块通过串口通讯来运行,SRAM一块有 ...

Due很牛了,没问题。几十个舵机也是小菜

碇源堂 发表于 2013-2-3 13:12:12

春泥蛋炒饭 发表于 2013-2-3 12:55 static/image/common/back.gif
Due很牛了,没问题。几十个舵机也是小菜

那就行,不过没找到中文资源…………咳咳…………英语能力勉强…………而且我只找到了.H文件,CPP没找到…………

StrongZhu 发表于 2013-2-3 18:04:23

春泥蛋炒饭 发表于 2013-2-3 12:55 static/image/common/back.gif
Due很牛了,没问题。几十个舵机也是小菜

请问一下,“几十个舵机”
是怎么计算出来的??
平均一个舵机需要几个输入输出口?

StrongZhu 发表于 2013-2-3 18:09:01

这种库很多

比如:

http://playground.arduino.cc/Code/MatrixMath
提供了加减乘除、求逆、求转制


http://arduino.cc/playground/uploads/Code/MatrixMath.zip
放到"libraries\".目录里,
还有例子程序


可能自己要改一下
#include "WProgram.h"
改成
#include <Arduino.h>

还有一点,矩阵的元素是float类型。

StrongZhu 发表于 2013-2-3 18:21:53

碇源堂 发表于 2013-2-3 10:30 static/image/common/back.gif
感激不尽,我用的ARDUINO板子是目测目前官方板子里最豪华的DUE,而且是2块通过串口通讯来运行,SRAM一块有 ...

代码应该占用不了多少空间,要看你的矩阵的数量和大小。

常见用于旋转的矩阵,我记得是4x4,
如果用float (每个float占4 bytes),一个矩阵就是4x4x4=64字节

1K 内存可以建立 1024/16=64个矩阵

对机器人不熟悉,一个关节的所有信息(位置、速度、加速度、方向、角速度等等),
应该用8个矩阵可以描述了吧?

碇源堂 发表于 2013-2-3 19:44:49

StrongZhu 发表于 2013-2-3 18:21 static/image/common/back.gif
代码应该占用不了多少空间,要看你的矩阵的数量和大小。

常见用于旋转的矩阵,我记得是4x4,


我觉得应该够了…………毕竟96K这种程度的内存足够计算很大的矩阵了,就算机器人用的矩阵比较独特和复杂…………不过比较担心84MHZ的运行速度啊,不知道能不能快速计算完30个传感器回传的数据做成的矩阵和计算出机体动作的矩阵,接着生成动作指令…………如果不能在0.1-0.5S内完成那就蛋疼了…………不过刚刚订购了一枚树莓派B版512M的,700-800MHZ的速度应该足够了…………我想…………潜心研究如何用树莓派计算矩阵ING…………

碇源堂 发表于 2013-2-3 19:46:02

StrongZhu 发表于 2013-2-3 18:21 static/image/common/back.gif
代码应该占用不了多少空间,要看你的矩阵的数量和大小。

常见用于旋转的矩阵,我记得是4x4,


我觉得应该够了…………毕竟96K这种程度的内存足够计算很大的矩阵了,就算机器人用的矩阵比较独特和复杂…………不过比较担心84MHZ的运行速度啊,不知道能不能快速计算完30个传感器回传的数据做成的矩阵和计算出机体动作的矩阵,接着生成动作指令…………如果不能在0.1-0.5S内完成那就蛋疼了…………不过刚刚订购了一枚树莓派B版512M的,700-800MHZ的速度应该足够了…………我想…………潜心研究如何用树莓派计算矩阵ING…………

StrongZhu 发表于 2013-2-3 20:39:49

碇源堂 发表于 2013-2-3 19:44 static/image/common/back.gif
我觉得应该够了…………毕竟96K这种程度的内存足够计算很大的矩阵了,就算机器人用的矩阵比较独特和复杂… ...

查了一下,arduino是8bit的cpu,用来做浮点运算,确实压力比较大。

春泥蛋炒饭 发表于 2013-2-4 02:32:50

StrongZhu 发表于 2013-2-3 18:04 static/image/common/back.gif
请问一下,“几十个舵机”
是怎么计算出来的??
平均一个舵机需要几个输入输出口?

楼主用矩阵不是为了控制舵机,而是为了管理各关节的位置。这里舵机数是指关节数,考虑的是把各个关节的姿态用一个矩阵来描述时,矩阵操作所需的内存是否比arduino板能提供的内存还大。和舵机控制和I/O口无关的。

碇源堂 发表于 2013-2-4 08:01:30

StrongZhu 发表于 2013-2-3 20:39 static/image/common/back.gif
查了一下,arduino是8bit的cpu,用来做浮点运算,确实压力比较大。

其实我还有杀手锏的…………树莓派2,因为咱在国外,所以体验到了35美刀超值价格…………现在正在运输中,不过最快也要6号才能到…………TAT…………STM32开发板比ARDUINO MINI都便宜…………嗯F103的…………不过占地太大…………机器人没那麽多空间放…………
页: [1]
查看完整版本: 关于矩阵