带有 TooN 和 ROS 的线性代数
Linear algebra with TooN and ROS
我正在尝试创建一些执行线性代数命令的示例节点。我想尝试TooN库(http://www.edwardrosten.com/cvd/toon.html)。我试图遵循tum_ardrone
在这方面所做的一揽子计划。
1)我下载了包含TooN库文件的文件夹,并将其移动到目录/thirdparty/TooN/include/
。
2)我将以下内容添加到我的CMakeLists.txt文件中:
# set required libs and headers
include_directories( ${PROJECT_SOURCE_DIR}/thirdparty/TooN/include )
基于位于/tum_ardrone/src
的 HelperFunctions.h 文件,我创建了一个简单的程序来执行基本的矩阵运算。我稍后将使用这些函数,由于我不熟悉任何像这样的库,我需要从基础开始。当我执行rosmake
时,出现以下错误:
/home/pedro/fuerte_workspace/sandbox/controlador_ardrone/src/ejemploalgebralineal.cpp: In member function ‘void LinearAlgebra::InverseMatrix()’:
/home/pedro/fuerte_workspace/sandbox/controlador_ardrone/src/ejemploalgebralineal.cpp:31:31: error: ‘struct TooN::Matrix<3>’ has no member named ‘inverse’
这是我尝试编译的代码:
#include <ros/ros.h>
#include <std_msgs/Empty.h>
#include <geometry_msgs/Twist.h>
#include <math.h>
#include <TooN/TooN.h>
#include <TooN/so3.h>
using namespace std;
using namespace TooN;
struct LinearAlgebra
{
ros::NodeHandle n;
void InverseMatrix(){
TooN::Matrix<3,3> mat;
mat = Data(1,2,3,4,5,6,7,8,9);
TooN::SO3<> res = mat.inverse();
std::cout << "m3_4n" << mat << "nm3_5n"<<res << std::endl;
}
void Commands(){
InverseMatrix();
}
};
////////////
int main(int argc, char **argv)
{
ros::init(argc,argv,"Linear_Algebra_ROS");
LinearAlgebra linearalgebra;
ros::Duration wait_time = ros::Duration(3,0);
while(linearalgebra.n.ok()) {
wait_time.sleep();
linearalgebra.Commands();
ros::spinOnce();
}
return 0;
是否有人有使用此库和/或我可以使用的其他库的经验?任何帮助,不胜感激。我在 Ubuntu 12.04 上使用 ROS Fuerte。
我建议 http://eigen.tuxfamily.org 处理变换和线性代数。它也被 ROS 相关项目(如 PCL)使用。
问候
相关文章:
- 使用工程空间在软件包中导入的线性代数库EIGEN
- 特征库,简单的线性代数操作,具有稀疏的矩阵,增加了其分配的尺寸
- C++ OpenMP 中线性代数函数的高效并行化
- C++ 多个图像上的 OpenCV 线性代数?
- 带有 TooN 和 ROS 的线性代数
- 线性代数的过载操作员
- 线性代数转换矩阵 - 通过乘以矩阵从点到不同点
- 使用犰狳线性代数包存储矩阵需要多少内存
- 如何设计:矩阵的线性代数例程
- 具有复数的任意精度线性代数c/c++库
- 建议为C++选择一个线性代数库
- C++ eigen3 线性代数库,奇数性能结果
- 转换gsl线性代数以用于scalapack或其他并行矩阵库
- 线性代数的CPU指令集
- 结合线性代数库与Boost::Units
- 本征在其线性代数Ax=b中能否使用双精度以上?
- 特征线性代数求解器似乎很慢
- 矩阵/线性代数库的多态包装器-C++,从Eigen开始
- 线性代数-SVD在C/C++中求解harwell-boeing稀疏a.x=b系统
- 线性代数 - 使用犰狳C++的余弦相似性给了我负面的结果