This guide is base on #4 @sxsong1207 's fork,relative #173 .
When you check @sxsong1027 's fork on windows,It will got these problem:
namespace mpl_:: change to boost::mpl::
add sincos function in sincos.h
After this you can build the lib. But this lib is basically a template lib ,when you use in you project it still will generate many error,Here's the solution:
1.modified msf_tmp.h, change any error match Eigen::Matrix<double,N,1 to Eigen::Matrix<double,N,1,MAXROW,MAXCOL>
here's the sample:
template<typename T>
struct CoreStateLengthForType;
template<int NAME, int N, int STATE_T, int OPTIONS, int MAXROW, int MAXCOL>
struct CoreStateLengthForType<
const msf_core::StateVar_T<Eigen::Matrix<double, N, 1,MAXROW,MAXCOL>, NAME, STATE_T,
OPTIONS>&> {
enum {
value = 0
};
// Not a core state, so length is zero.
};template<typename T>
struct CoreStateLengthForType;
template<int NAME, int N, int STATE_T, int OPTIONS, int MAXROW, int MAXCOL>
struct CoreStateLengthForType<
const msf_core::StateVar_T<Eigen::Matrix<double, N, 1,MAXROW,MAXCOL>, NAME, STATE_T,
OPTIONS>&> {
enum {
value = 0
};
// Not a core state, so length is zero.
};
2.change usleep() to other vs c++ code
3.when using lib,you must add BOOST_NO_CXX11_VARIADIC_TEMPLATES define
4.I highly recommend change msf_types.h to use std::shared_ptr and std::dynamic_pointer_cast
5.@sxsong1207's fork using yaml to implement a config,you can change that in config.h
This is a brief steps for windows vs build. I think to make this lib ros and linux indepent need quite some work,thanks @sxsong1207 to make it easier, but this lib need data type and config refactors to make it a complete cross platform and ros free lib.
This guide is base on #4 @sxsong1207 's fork,relative #173 . When you check @sxsong1027 's fork on windows,It will got these problem:
namespace mpl_:: change to boost::mpl::
add sincos function in sincos.h
After this you can build the lib. But this lib is basically a template lib ,when you use in you project it still will generate many error,Here's the solution:
1.modified msf_tmp.h, change any error match Eigen::Matrix<double,N,1 to Eigen::Matrix<double,N,1,MAXROW,MAXCOL> here's the sample:
2.change usleep() to other vs c++ code
3.when using lib,you must add BOOST_NO_CXX11_VARIADIC_TEMPLATES define
4.I highly recommend change msf_types.h to use std::shared_ptr and std::dynamic_pointer_cast
5.@sxsong1207's fork using yaml to implement a config,you can change that in config.h
This is a brief steps for windows vs build. I think to make this lib ros and linux indepent need quite some work,thanks @sxsong1207 to make it easier, but this lib need data type and config refactors to make it a complete cross platform and ros free lib.