Giter VIP home page Giter VIP logo

imu_utils's People

Contributors

gaowenliang avatar yannnnnnnnnnnn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imu_utils's Issues

can't locate node [imu_an]

Hello Mr.Gao and everyone,
I had downloaded this code and build it in my catkin workspace. My operating system is Ubuntu16.04. When I try to launch A3.launch, I got this error:
ERROR: cannot launch node of type [imu_utils/imu_an]: can't locate node [imu_an] in package [imu_utils]
The build information is:
`Base path: /home/zxchang/imu_ws
Source space: /home/zxchang/imu_ws/src
Build space: /home/zxchang/imu_ws/build
Devel space: /home/zxchang/imu_ws/devel
Install space: /home/zxchang/imu_ws/install

Running command: "make cmake_check_build_system" in "/home/zxchang/imu_ws/build"

Running command: "make -j4 -l4" in "/home/zxchang/imu_ws/build"

[ 15%] Built target polynomial
[ 46%] Built target cv_utils
[ 46%] Built target sumpixel_test
[ 61%] Built target matIO_test
[100%] Built target pnp
`
Appreciate anyone's help.

Running error :Solver::Options::num_linear_solver_threads = -1.

When I run the calibration program, the terminal output as follows error:
WARNING: Logging before InitGoogleLogging() is written to STDERR
E1013 09:15:29.780355 10522 solver.cc:507] Terminating: Invalid configuration. Solver::Options::num_linear_solver_threads = -1. Violated constraint: Solver::Options::num_linear_solver_threads > 0
Bias Instability 2.17694e-05 rad/s
Bias Instability 2.60991e-05 rad/s, at 34.9103 s
White Noise 4.72615 rad/s
White Noise 0.00133015 rad/s
free(): invalid pointer
[imu_an-2] process has died [pid 10522, exit code -6, cmd /home/rtech/imu_catkin_ws/devel/lib/imu_utils/imu_an __name:=imu_an __log:=/home/rtech/.ros/log/f4cc93e6-6965-11ee-b65a-0242f5a719a1/imu_an-2.log].
log file: /home/rtech/.ros/log/f4cc93e6-6965-11ee-b65a-0242f5a719a1/imu_an-2*.log

How to solve the problem!!!
Appreciate!!!

bias stability or random walk parameter

Hi All:
By comparing the content in README with the IMU noise model described in https://github.com/ethz-asl/kalibr/wiki/IMU-Noise-Model , it seems that the parameters Gyroscope/Accelerometer "bias Instability" (in the README) are the same with the Gyroscope/Accelerometer "random walk" (in the link). Since the unit 1/(s^2*sqrt(HZ)) = 1*sqrt(HZ)/(s). Correct me if I make any mistake.

If these two parameters are the same, according to the README, the Gyroscope/Accelerometer "bias Instability" are estimated by the minimum value of the Allan variance.
On the contrary, the link identifies the Gyroscope/Accelerometer "random walk" as the value of the (fitted) "random walk" diagonal (with slope +1/2) at an integration time of t=3 second. Which is the same approach used in the paper "The TUM VI Benchmark for Evaluating Visual-Inertial Odometry" (displayed by Fig. 5).

So, which is right? Any suggestion or correction is greatly appreciated, thanks in advance.

some questions

运行时,终端一直是wait for imu data.我已经正确的订阅了imu的话题。

result is Inconsistent results xsens imu

 I download the imu_xsens.bag ,run in my compute ,the result show as fellow:

but not same as the sample result ?please tell me my result is right or not ,thanks alot.@gaowenliang

Gyr:
unit: " rad/s"
avg-axis:
gyr_n: 1.5513770203040560e-03
gyr_w: 5.6931332736234366e-05
x-axis:
gyr_n: 1.5774252973103551e-03
gyr_w: 6.2152140405180494e-05
y-axis:
gyr_n: 1.5476405987810337e-03
gyr_w: 6.2284959335368823e-05
z-axis:
gyr_n: 1.5290651648207790e-03
gyr_w: 4.6356898468153780e-05
Acc:
unit: " m/s^2"
avg-axis:
acc_n: 7.7779495049092829e-03
acc_w: 2.8431918968734965e-04
x-axis:
acc_n: 8.0345939262844602e-03
acc_w: 3.8639906610963935e-04
y-axis:
acc_n: 7.7117460043777128e-03
acc_w: 1.8871696931288423e-04
z-axis:
acc_n: 7.5875085840656749e-03
acc_w: 2.7784153363952539e-04

the sample reult :

type: IMU
name: xsens
Gyr:
unit: " rad/s"
avg-axis:
gyr_n: 1.5641921981365443e-04
gyr_w: 5.8371294942786571e-05
x-axis:
gyr_n: 1.5929650434021210e-04
gyr_w: 6.1344105209174259e-05
y-axis:
gyr_n: 1.5297132101736133e-04
gyr_w: 6.7378670380355060e-05
z-axis:
gyr_n: 1.5698983408338980e-04
gyr_w: 4.6391109238830401e-05
Acc:
unit: " m/s^2"
avg-axis:
acc_n: 7.8531619738053877e-04
acc_w: 3.2064659601889169e-04
x-axis:
acc_n: 8.1936568393485391e-04
acc_w: 4.8066600394948737e-04
y-axis:
acc_n: 7.7685118479656147e-04
acc_w: 1.8591481791391698e-04
z-axis:
acc_n: 7.5973172341020059e-04
acc_w: 2.9535896619327070e-04

Running error about undefined symbol

I have compiled this program, but encountered the following error when running. I suspect that I lack some library files. But no errors were reported when compiling. Can anyone help me? Give me some advice. thank you!
/home/xbw/catkin_ws/devel/lib/imu_utils/imu_an: symbol lookup error: /home/xbw/catkin_ws/devel/lib/libpnp.so: undefined symbol: _ZN6google21kLogSiteUninitializedE
[imu_an-1] process has died [pid 364, exit code 127, cmd /home/xbw/catkin_ws/devel/lib/imu_utils/imu_an __name:=imu_an __log:=/home/xbw/.ros/log/634f193e-ad60-11eb-a23d-4c1d960e9548/imu_an-1.log].
log file: /home/xbw/.ros/log/634f193e-ad60-11eb-a23d-4c1d960e9548/imu_an-1*.log
all processes on machine have died, roslaunch will exit

imu measurement rate and rosbag play rate

Hello @gaowenliang ,

My imu works on 50 hz, if I record the values on my rosbag I can see that recording happens not exactly at 50hz, so in order to work on this algorithm shoud I play rosbag with rosbag play -r mybagfile.bag anyway, or should I directly play it without indicating the frequency?
Also, does this algorithm work on only 200 hz or some other frequencies as well, if so should I give the frequency of my IMU as an input to the system somewhere?

Thanks,
Metin

关于readme中的表格

感觉后面两行不应该写成bias instability。虽然代码中最后求的是bias instability,但是这个表格这里一定要给出bias instability的话,那单位就错了,按照IEEE 的标准,bias instability的单位应该是deg/h 这种单位。这里应该是角速率随机游走吧。

How to make the IMU dataset?

Hi!
I want to make the dataset from own imu sensor.

When I record the data, what should I do?
I should shake the sensor? or just put the sensor on the floor and then let it?

Could you give me some advice?

build problem

Hi, I got the following build error (after catkin_make):
what could be the problem?

CMake Error at /home/vccl/catkin_ws/build/ros_comm/clients/roscpp/cmake/roscpp-genmsg.cmake:79 (add_custom_target):
add_custom_target cannot create target "roscpp_generate_messages_cpp"
because another target with the same name already exists. The existing
target is a custom target created in source directory
"/home/vccl/catkin_ws/src/imu_utils". See documentation for policy CMP0002
for more details.
Call Stack (most recent call first):
/opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:307 (include)
ros_comm/clients/roscpp/CMakeLists.txt:41 (generate_messages)

CMake Error at /home/vccl/catkin_ws/build/ros_comm/clients/roscpp/cmake/roscpp-genmsg.cmake:136 (add_custom_target):
add_custom_target cannot create target "roscpp_generate_messages_eus"
because another target with the same name already exists. The existing
target is a custom target created in source directory
"/home/vccl/catkin_ws/src/imu_utils". See documentation for policy CMP0002
for more details.
Call Stack (most recent call first):
/opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:307 (include)
ros_comm/clients/roscpp/CMakeLists.txt:41 (generate_messages)

CMake Error at /home/vccl/catkin_ws/build/ros_comm/clients/roscpp/cmake/roscpp-genmsg.cmake:193 (add_custom_target):
add_custom_target cannot create target "roscpp_generate_messages_lisp"
because another target with the same name already exists. The existing
target is a custom target created in source directory
"/home/vccl/catkin_ws/src/imu_utils". See documentation for policy CMP0002
for more details.
Call Stack (most recent call first):
/opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:307 (include)
ros_comm/clients/roscpp/CMakeLists.txt:41 (generate_messages)

CMake Error at /home/vccl/catkin_ws/build/ros_comm/clients/roscpp/cmake/roscpp-genmsg.cmake:250 (add_custom_target):
add_custom_target cannot create target "roscpp_generate_messages_nodejs"
because another target with the same name already exists. The existing
target is a custom target created in source directory
"/home/vccl/catkin_ws/src/imu_utils". See documentation for policy CMP0002
for more details.
Call Stack (most recent call first):
/opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:307 (include)
ros_comm/clients/roscpp/CMakeLists.txt:41 (generate_messages)

CMake Error at /home/vccl/catkin_ws/build/ros_comm/clients/roscpp/cmake/roscpp-genmsg.cmake:307 (add_custom_target):
add_custom_target cannot create target "roscpp_generate_messages_py"
because another target with the same name already exists. The existing
target is a custom target created in source directory
"/home/vccl/catkin_ws/src/imu_utils". See documentation for policy CMP0002
for more details.
Call Stack (most recent call first):
/opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:307 (include)
ros_comm/clients/roscpp/CMakeLists.txt:41 (generate_messages)

-- +++ processing catkin package: 'navigation'
-- ==> add_subdirectory(navigation)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- +++ processing catkin package: 'octomap_server'
-- ==> add_subdirectory(octomap_mapping/octomap_server)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- +++ processing catkin package: 'navi_multi_goals_pub_rviz_plugin'
-- ==> add_subdirectory(rviz_navi_multi_goals_pub_plugin/navi_multi_goals_pub_rviz_plugin)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Using Qt5 based on the rviz_QT_VERSION: 5.9.5
-- +++ processing catkin package: 'dwa_local_planner'
-- ==> add_subdirectory(dwa_local_planner)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- +++ processing catkin package: 'xsens_mti_driver'
-- ==> add_subdirectory(xsens_ros_mti_driver)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Configuring incomplete, errors occurred!
See also "/home/vccl/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/vccl/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

Dataset Duration

Is it a hard requirement that we should have a rosbag of 2-hour duration?
Do that matter a lot?

Some Question?

  1. The difference between imu_tk
  2. How to use this tool?

Anyone can help me?
Thanks

What is mean by IMU remaining still (does gravity vector should be alligned with body z-axis while capturing values?)

Hi,
I have doubt on capturing the raw imu values while IMU remaining still. That means, we have to keep the IMU z-axis aligned with gravity direction. is this interpretation is correct or we can capture the values at any orientation of IMU with gravity direction.

If we can capture at any orientation, the projection of acceleration due to gravity on xy-plane will be coming as a bias in the measurements. is this interpretation is correct?

Unit of raw data input

Hi, thanks for your works about IMU random errorss calibration with Allan variance.
I have something not understood about the unit of input raw data. I see the codes supporting 3 type of units such as RadPerSec, DegreePerSec and MPerSec2. However, I see the push data functions are shown in:

void
imu::AllanGyr::pushRadPerSec( double data, double time )
{
    m_rawData.push_back( GyrData( data * 57.3 * 3600, time ) );
    numData++;
}

void
imu::AllanGyr::pushDegreePerSec( double data, double time )
{
    m_rawData.push_back( GyrData( data * 3600, time ) );
    numData++;
}

void
imu::AllanGyr::pushDegreePerHou( double data, double time )
{
    m_rawData.push_back( GyrData( data, time ) );
    numData++;
}

It seems to be default that the imuput data is in degree/h unit. Does it give users some misunderstanding? Thanks

How to transfer my IMU data to a rosbag?

Hello. I am a newbie to ROS. I appreciate your nice work.
But I wonder how to transfer my IMU data to a rosbag? I use my Android phone to collect IMU measurements and I want to analyze them.

build error

make[2]: *** [CMakeFiles/test_imu_calib.dir/build.make:107:/home/zzh/imu_tk-master/src/bin/test_imu_calib] 错误 1
make[1]: *** [CMakeFiles/Makefile2:775:CMakeFiles/test_imu_calib.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
/usr/bin/ld: 找不到 -lCUDA::cublas
/usr/bin/ld: 找不到 -lCUDA::cudart
/usr/bin/ld: 找不到 -lCUDA::cusolver
/usr/bin/ld: 找不到 -lCUDA::cusparse

can someone teach me how to fix it, please

Doubt regarding unit of IMU noise params

I am using the package to find the IMU noise parameters. The units mentioned in the README and the output file after the execution seems to be conflicting.

README:
image

O/P YAML file:
image

Comparing units of gyr_n in the above two pics suggest some conflicts. Former suggests "Noise density" while the other suggests "Noise standard deviation". @gaowenliang, can you please clarify the doubt?

About imu_utils

Will the current imu_utils have a ROS2 version? Will this warehouse be maintained in the future?

CV errors

I am running Ubuntu 18.04 on a Jetson AGX with OpenCV4
I get the following error when trying to build cv_utils:

/home/lbackpack/catkin_ws/src/code_utils/src/mat_io_test.cpp: In function ‘int main()’:
/home/lbackpack/catkin_ws/src/code_utils/src/mat_io_test.cpp:33:47: error: ‘CV_LOAD_IMAGE_UNCHANGED’ was not declared in this scope
     Mat img1 = imread( "/home/gao/IMG_1.png", CV_LOAD_IMAGE_UNCHANGED );
                                               ^~~~~~~~~~~~~~~~~~~~~~~
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp: In function ‘void test1()’:
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp:85:47: error: ‘CV_LOAD_GRAYSCALE’ was not declared in this scope
     Mat img1 = imread( "/home/gao/IMG_1.png", CV_LOAD_GRAYSCALE );
                                               ^~~~~~~~~~~~~~~~~
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp:85:47: note: suggested alternative: ‘CV_HAL_DFT_SCALE’
     Mat img1 = imread( "/home/gao/IMG_1.png", CV_LOAD_GRAYSCALE );
                                               ^~~~~~~~~~~~~~~~~
                                               CV_HAL_DFT_SCALE
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp:95:35: error: ‘CV_MINMAX’ was not declared in this scope
     normalize( img, img2, 0, 255, CV_MINMAX );
                                   ^~~~~~~~~
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp:95:35: note: suggested alternative: ‘CV_FINAL’
     normalize( img, img2, 0, 255, CV_MINMAX );
                                   ^~~~~~~~~
                                   CV_FINAL
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp: In function ‘void test2()’:
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp:108:47: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
     Mat img1 = imread( "/home/gao/IMG_1.png", CV_LOAD_IMAGE_GRAYSCALE );
                                               ^~~~~~~~~~~~~~~~~~~~~~~
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp:118:35: error: ‘CV_MINMAX’ was not declared in this scope
     normalize( img, img2, 0, 255, CV_MINMAX );
                                   ^~~~~~~~~
/home/lbackpack/catkin_ws/src/code_utils/src/sumpixel_test.cpp:118:35: note: suggested alternative: ‘CV_FINAL’
     normalize( img, img2, 0, 255, CV_MINMAX );
                                   ^~~~~~~~~
                                   CV_FINAL
code_utils/CMakeFiles/sumpixel_test.dir/build.make:81: recipe for target 'code_utils/CMakeFiles/sumpixel_test.dir/src/sumpixel_test.cpp.o' failed
make[2]: *** [code_utils/CMakeFiles/sumpixel_test.dir/src/sumpixel_test.cpp.o] Error 1
CMakeFiles/Makefile2:949: recipe for target 'code_utils/CMakeFiles/sumpixel_test.dir/all' failed
make[1]: *** [code_utils/CMakeFiles/sumpixel_test.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
code_utils/CMakeFiles/matIO_test.dir/build.make:81: recipe for target 'code_utils/CMakeFiles/matIO_test.dir/src/mat_io_test.cpp.o' failed
make[2]: *** [code_utils/CMakeFiles/matIO_test.dir/src/mat_io_test.cpp.o] Error 1
CMakeFiles/Makefile2:841: recipe for target 'code_utils/CMakeFiles/matIO_test.dir/all' failed
make[1]: *** [code_utils/CMakeFiles/matIO_test.dir/all] Error 2
Makefile:159: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed

I am very new to linux and am not sure how to fix this. All my attempts so far have failed in the last two weeks.
Google search has not been helpful.

thanks in advance

A question about logSpace

Hi, thanks for your works.
I have a question about the avrage factors m, which I mean is that averaging time tau = m*tau0.
I see all the references such as your referred like NXP, IEEE standards, Matlab tools about inertial sensor errors. I have not seen the calculation methods about factors m.
So can you tell me the methodology or reference about it? Thank you.

Error in evaluating the ResidualBlock.

First of all, thanks for your work. However I have met some problem.

ros bag which record imu topic is imu.bag

the full log is here imu_utils log file

launch file is jy901.launch

and the answer is imu.yaml

Error in evaluating the ResidualBlock.

There are two possible reasons. Either the CostFunction did not evaluate and fill all    
residual and jacobians that were requested or there was a non-finite value (nan/infinite)
generated during the or jacobian computation. 

Residual Block size: 1 parameter blocks x 1 residuals

For each parameter block, the value of the parameters are printed in the first column   
and the value of the jacobian under the corresponding residual. If a ParameterBlock was 
held constant then the corresponding jacobian is printed as 'Not Computed'. If an entry 
of the Jacobian/residual array was requested but was not written to by user code, it is 
indicated by 'Uninitialized'. This is an error. Residuals or Jacobian values evaluating 
to Inf or NaN is also an error.  

Residuals:             -nan 

Parameter Block 0, size: 5

           0 |         -nan 
           0 |         -nan 
           0 |         -nan 
           0 |         -nan 
           0 |         -nan 

thanks for your help

对比

你好,我尝试了你的方法可以得到结果。同时我又找了另外一种方法作,发现这两种方法得到的结果不一致。另一种方法的源链接https://github.com/rpng/kalibr_allan,不知道你是否做过比较,还有就是怎么判断得到的方差是正确的呢?
非常赶紧您提供的方法,同时也希望得到您的回复,谢谢~

The result error

Thanks a lot !!!
I record a rosbag and play it,but the Gyro z of the result was error,and I dont know how to solve that.
here is a part of my result.(ps: Please forgive my bad chinglish :) )

Gyro X
C -28945.1 194378 7.23339 139.054 -3.53494
Bias Instability 0.00484778 rad/s, at 0.104268 s
White Noise 2.94973 rad/s
bias -1.88767 degree/s

Gyro y
C -3460.61 44971.8 457.603 -18.87 0.130777
Bias Instability 0.00373774 rad/s, at 3416.76 s
White Noise 0.676594 rad/s
bias 1.82403 degree/s

Gyro z
C 0 0 0 0 0
WARNING: Logging before InitGoogleLogging() is written to STDERR
W0509 10:56:09.249119 25327 residual_block.cc:131]

Error in evaluating the ResidualBlock.

There are two possible reasons. Either the CostFunction did not evaluate and fill all
residual and jacobians that were requested or there was a non-finite value (nan/infinite)
generated during the or jacobian computation.

Residual Block size: 1 parameter blocks x 1 residuals

For each parameter block, the value of the parameters are printed in the first column
and the value of the jacobian under the corresponding residual. If a ParameterBlock was
held constant then the corresponding jacobian is printed as 'Not Computed'. If an entry
of the Jacobian/residual array was requested but was not written to by user code, it is
indicated by 'Uninitialized'. This is an error. Residuals or Jacobian values evaluating
to Inf or NaN is also an error.

Residuals: -nan

Parameter Block 0, size: 5

       0 |         -nan 
       0 |         -nan 
       0 |         -nan 
       0 |         -nan 
       0 |         -nan 

E0509 10:56:09.249228 25327 trust_region_minimizer.cc:72] Terminating: Residual and Jacobian evaluation failed.
Bias Instability 0 rad/s, at 3416.76 s
White Noise 0 rad/s
bias 0 degree/s

I build this on Ubuntu20.04 ROS noetic, and get error...

error: no type named ‘Parameters’ in ‘class ceres::internal::ParameterDims<false, 5>’
315 | using Parameters = typename ParameterDims::Parameters;
| ^~~~~~~~~~
/home/slam/cartographer_ws/install_isolated/include/ceres/internal/autodiff.h:348:47: error: no type named ‘Parameters’ in ‘class ceres::internal::ParameterDims<false, 5>’
348 | Make1stOrderPerturbations::Apply(parameters,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
349 | parameters_as_jets.data());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/slam/cartographer_ws/install_isolated/include/ceres/internal/autodiff.h:357:39: error: no type named ‘Parameters’ in ‘class ceres::internal::ParameterDims<false, 5>’
357 | Take1stOrderParts::Apply(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
358 | num_outputs, residuals_as_jets.data(), jacobians);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Failed to build the package

Once follow the constrction in the readme, but the bulid console show the error msg like 👍

  • Could not find a package configuration file provided by "code_utils" with
  • any of the following names:
  • code_utilsConfig.cmake
  • code_utils-config.cmake

then i try to build the code_utils without imu_utils it shows the following error:

  • fatal error: backward.hpp: No such file or directory

I am pretty sure that the files pull from your git is correct and complete, but why it cannot build?

Or can someone else help me?

Build error

Hi, I got the following build error (after changed the bug stated by LeungHEX):
what could be the problem?

CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "code_utils" with
any of the following names:

code_utilsConfig.cmake
code_utils-config.cmake

Add the installation prefix of "code_utils" to CMAKE_PREFIX_PATH or set
"code_utils_DIR" to a directory containing one of the above files. If
"code_utils" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
imu_utils/CMakeLists.txt:13 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/tester/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/tester/catkin_ws/build/CMakeFiles/CMakeError.log".
Makefile:6576: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed

program crash

Hi, thanks for sharing this awesome repo.
I am wondering which version of ceres you are using since I got the following error:
(I am using Ubuntu 16.04 + ROS Kinetic + Ceres 1.12.0 + Eigen 3.2.92. @gaowenliang @PeiliangLi )

gyr x  num of Cluster 100
gyr y  num of Cluster 100
gyr z  num of Cluster 100
acc x  num of Cluster 100
acc y  num of Cluster 100
acc z  num of Cluster 100
wait for imu data.
gyr x  numData 1440063
gyr x  start_t 1.52067e+09
gyr x  end_t 1.52068e+09
gyr x dt 
-------------7200.05 s
-------------120.001 min
-------------2.00001 h
gyr x  freq 200.007
gyr x  period 0.00499982
gyr y  numData 1440063
gyr y  start_t 1.52067e+09
gyr y  end_t 1.52068e+09
gyr y dt 
-------------7200.05 s
-------------120.001 min
-------------2.00001 h
gyr y  freq 200.007
gyr y  period 0.00499982
gyr z  numData 1440063
gyr z  start_t 1.52067e+09
gyr z  end_t 1.52068e+09
gyr z dt 
-------------7200.05 s
-------------120.001 min
-------------2.00001 h
gyr z  freq 200.007
gyr z  period 0.00499982
Gyro X 
C   -1.15909    18.9571   -3.72175    3.77855 -0.0240066
WARNING: Logging before InitGoogleLogging() is written to STDERR
E0310 18:00:55.632755 28994 solver.cc:487] Terminating: Invalid configuration. Solver::Options::max_lbfgs_rank = 0. Violated constraint: Solver::Options::max_lbfgs_rank > 0
 Bias Instability 6.07778e-05 rad/s, at 5.04982 s
 White Noise 9.55941e-05 rad/s
[imu_an-1] process has died [pid 28994, exit code -11, cmd /home/pxlong/ws/catkin_ws/devel/lib/imu_utils/imu_an __name:=imu_an __log:=/home/pxlong/.ros/log/fbb220fa-1c4e-11e8-86a2-7085c22aa66f/imu_an-1.log].
log file: /home/pxlong/.ros/log/fbb220fa-1c4e-11e8-86a2-7085c22aa66f/imu_an-1*.log

Idea to improve the installation step in the README.md

Hi,
Thanks a lot for your library!

In order to help people use it easily, I think you could add the following indications in the installation step:

  • Required: apt-get install libdw-dev
  • In code_utils: in mat_io_test.cpp and sumpixel_test.cpp => change ' #include "backward.hpp" ' into ' #include "code_utils/backward.hpp" '

Cheers

Gyroscope numbers sound abnormal

Thank you very much for sharing this code

I would like to share with you a graph based on 2 hours recording of the IMU from a D435i:

today
And I got a noise density for the gyroscope of 60.425 and a random walk of 0.66 and I am wondering whether there is an error somewhere because these number are really huge ! I am far from being a specialist but Do you think it is normal?

Thank you very much for your feedback

Wait for imu data

Hello Gao,
May I ask you a question?After run launch file,“wait for imu data” will appear. I check topic information(rostopic list & rostopic inof /xx), there is not any problem.
Thank you very much!

screen output format

Hi, thanks for you sharing this useful tools for imu calibration. I got the screen output as follow:

gyr x numData 1800038
gyr x start_t 1556184268.3
gyr x end_t 1556193268.3
gyr x dt
-------------9000.0059781 s
-------------150.00009964 min
-------------2.5000016606 h
gyr x freq 200.00397826
gyr x period 0.0049999005454
gyr y numData 1800038
gyr y start_t 1556184268.3
gyr y end_t 1556193268.3
gyr y dt
-------------9000.0059781 s
-------------150.00009964 min
-------------2.5000016606 h
gyr y freq 200.00397826
gyr y period 0.0049999005454
gyr z numData 1800038
gyr z start_t 1556184268.3
gyr z end_t 1556193268.3
gyr z dt
-------------9000.0059781 s
-------------150.00009964 min
-------------2.5000016606 h
gyr z freq 200.00397826
gyr z period 0.0049999005454
Gyro X
C -0.099920838813 28.490389921 1.5455111778 0.51580360849 -0.0086117795421
Bias Instability 6.0631970955e-05 rad/s
Bias Instability 4.2062922657e-05 rad/s, at 273.1395669 s
White Noise 7.1027709951 rad/s
White Noise 0.0020542192307 rad/s
bias -0.089998038576 degree/s

Gyro y
C -0.059395830334 24.674860857 2.6075862472 0.57323407414 -0.005207913812
Bias Instability 7.3624480757e-05 rad/s
Bias Instability 5.3119251485e-05 rad/s, at 72.218563478 s
White Noise 6.1595988239 rad/s
White Noise 0.0018456925992 rad/s
bias 0.13329643892 degree/s

Gyro z
C -0.11658736167 32.471273953 1.5661373544 0.76810287455 -0.013088308452
Bias Instability 7.5638356388e-05 rad/s
Bias Instability 5.345507916e-05 rad/s, at 160.4318088 s
White Noise 8.0914410162 rad/s
White Noise 0.0023573599741 rad/s
bias -0.070055603425 degree/s

==============================================

acc x numData 1800038
acc x start_t 1556184268.3
acc x end_t 1556193268.3
acc x dt
-------------9000.0059781 s
-------------150.00009964 min
-------------2.5000016606 h
acc x freq 200.00397826
acc x period 0.0049999005454
acc y numData 1800038
acc y start_t 1556184268.3
acc y end_t 1556193268.3
acc y dt
-------------9000.0059781 s
-------------150.00009964 min
-------------2.5000016606 h
acc y freq 200.00397826
acc y period 0.0049999005454
acc z numData 1800038
acc z start_t 1556184268.3
acc z end_t 1556193268.3
acc z dt
-------------9000.0059781 s
-------------150.00009964 min
-------------2.5000016606 h
acc z freq 200.00397826
acc z period 0.0049999005454
acc X
C -6.1776535302e-06 0.00068497858343 1.9159346636e-05 1.4588737539e-05 -2.5691026523e-07
Bias Instability 0.00024834529566 m/s^2
White Noise 0.01039926068 m/s^2

acc y
C -3.4097430596e-06 0.00065824224613 -3.8951534751e-05 1.2841755763e-05 -2.1032012737e-07
Bias Instability 0.00011952580247 m/s^2
White Noise 0.009196136191 m/s^2

acc z
C 6.8357670086e-06 0.00051289860225 -1.4456216555e-06 1.2556264816e-05 -1.6521435798e-07
Bias Instability 0.00020453908581 m/s^2
White Noise 0.0075797476485 m/s^2

the output is not as the same as screen output in README. there are two 'White Noise' for gyro. Which of them is the true gyr_n?

I also found there are Bias Instability and bias for gyro. Which of them is the true gyr_w?

Can anybody help? many thanks!

Question on the calibration results on your given data.

Hi Wenliang Gao,
I run your code with the the default launch file and the bagfiles on the Baidu Netdisk,but I got different results with your results. Especially the gyr_n and acc_n. Could you please help me explain why? Thanks!!
Here are some results I got :

type: IMU
name: gx4
Gyr:
   unit: " rad/s"
   avg-axis:
      gyr_n: 1.3776557135598267e-03
      gyr_w: 4.4980238465211471e-05
   x-axis:
      gyr_n: 1.3598916608690695e-03
      gyr_w: 4.3237605124366711e-05
   y-axis:
      gyr_n: 1.4085032617136594e-03
      gyr_w: 4.7203631246970414e-05
   z-axis:
      gyr_n: 1.3645722180967506e-03
      gyr_w: 4.4499479024297288e-05
Acc:
   unit: " m/s^2"
   avg-axis:
      acc_n: 1.9804078615439449e-02
      acc_w: 4.2787561680514757e-04
   x-axis:
      acc_n: 2.1200169501503625e-02
      acc_w: 3.7692313329243398e-04
   y-axis:
      acc_n: 1.9195904275601066e-02
      acc_w: 4.8504332057982245e-04
   z-axis:
      acc_n: 1.9016162069213648e-02
      acc_w: 4.2166039654318628e-04
type: IMU
name: xsens
Gyr:
   unit: " rad/s"
   avg-axis:
      gyr_n: 1.5766795105350902e-03
      gyr_w: 5.8186310639220816e-05
   x-axis:
      gyr_n: 1.5913990126303940e-03
      gyr_w: 6.1777289031013914e-05
   y-axis:
      gyr_n: 1.5285453823580789e-03
      gyr_w: 6.7252832784928527e-05
   z-axis:
      gyr_n: 1.6100941366167980e-03
      gyr_w: 4.5528810101720015e-05
Acc:
   unit: " m/s^2"
   avg-axis:
      acc_n: 7.7486924587566184e-03
      acc_w: 3.0142621178774011e-04
   x-axis:
      acc_n: 8.0543421537212501e-03
      acc_w: 4.4048166959126769e-04
   y-axis:
      acc_n: 7.6276107736174539e-03
      acc_w: 1.9648598133533297e-04
   z-axis:
      acc_n: 7.5641244489311511e-03
      acc_w: 2.6731098443661977e-04
type: IMU
name: N3
Gyr:
   unit: " rad/s"
   avg-axis:
      gyr_n: 2.0474063562222508e-03
      gyr_w: 4.4107187176933610e-05
   x-axis:
      gyr_n: 1.9934577058496185e-03
      gyr_w: 4.3455951372090669e-05
   y-axis:
      gyr_n: 2.0623111914684425e-03
      gyr_w: 5.1949820903083133e-05
   z-axis:
      gyr_n: 2.0864501713486914e-03
      gyr_w: 3.6915789255627028e-05
Acc:
   unit: " m/s^2"
   avg-axis:
      acc_n: 2.7361865573858338e-02
      acc_w: 6.9869639650317790e-04
   x-axis:
      acc_n: 2.2915909292582394e-02
      acc_w: 6.2346942228045700e-04
   y-axis:
      acc_n: 2.1552485668793139e-02
      acc_w: 5.4394057410119575e-04
   z-axis:
      acc_n: 3.7617201760199490e-02
      acc_w: 9.2867919312788095e-04
type: IMU
name: "16448"
Gyr:
   unit: " rad/s"
   avg-axis:
      gyr_n: 2.5556549916784113e-03
      gyr_w: 7.4036973730112702e-05
   x-axis:
      gyr_n: 2.5752367201719532e-03
      gyr_w: 7.9965694430990478e-05
   y-axis:
      gyr_n: 2.5521145069793234e-03
      gyr_w: 6.8137921217407534e-05
   z-axis:
      gyr_n: 2.5396137478839575e-03
      gyr_w: 7.4007305541940135e-05
Acc:
   unit: " m/s^2"
   avg-axis:
      acc_n: 2.9005443699517627e-02
      acc_w: 1.2919311021553450e-03
   x-axis:
      acc_n: 2.6832688337940648e-02
      acc_w: 9.0581978608079256e-04
   y-axis:
      acc_n: 3.4875656476624710e-02
      acc_w: 2.0564271053782313e-03
   z-axis:
      acc_n: 2.5307986283987522e-02
      acc_w: 9.1354641500701139e-04

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.