kumarrobotics / imu_vn_100 Goto Github PK
View Code? Open in Web Editor NEWROS driver for VN-100 of VectorNav Technologies
License: Apache License 2.0
ROS driver for VN-100 of VectorNav Technologies
License: Apache License 2.0
Hi.
I was planning to by this sensor, and I have a question:
Should a purchase the serial, the usb or both cables, in order to get access to hardware triggering?
Thanks
Hi,
I am trying to run the node through the given roslaunch but strangely it is throwing permission errors even when it could initially talk to the sensor. It's different from the issue #7 as quite a lot has changed since then. This problem raised when I pulled in the latest master today. I was using the earlier version without the VPE controls.
I have tried changing the ownership of /dev/ttyUSB0 to the current user but that didn't work.
Logs are attached below.
[ INFO] [1507493246.354727802]: Sync out rate: 20 [ INFO] [1507493246.855516924]: Connected to device at /dev/ttyUSB0 [ INFO] [1507493246.894644059]: Default serial baudrate: 115200 [ INFO] [1507493246.894686756]: Set serial baudrate to 921600 [ INFO] [1507493247.931730653]: Connected to device at /dev/ttyUSB0 [ INFO] [1507493247.949351739]: New serial baudrate: 921600 [ INFO] [1507493247.969925247]: Fetching device info. [ INFO] [1507493247.985199319]: Model number: VN-100S-CR [ INFO] [1507493248.000538898]: Hardware revision: 7 [ INFO] [1507493248.015881901]: Serial number: 0100022358 [ INFO] [1507493248.031221457]: Firmware version: 2.0.1.0 [ INFO] [1507493248.031265114]: Set Synchronization Control Register (id:32). [ INFO] [1507493248.066934842]: Default VPE enable: 1 [ INFO] [1507493248.066981043]: Default VPE heading mode: 1 [ INFO] [1507493248.067001717]: Default VPE filtering mode: 1 [ INFO] [1507493248.067019919]: Default VPE tuning mode: 1 [ INFO] [1507493248.067053520]: Setting VPE MagnetometerBasicTuning BaseTuning (4.000000, 4.000000, 4.000000) [ INFO] [1507493248.067078179]: Setting VPE MagnetometerBasicTuning AdaptiveTuning (5.000000, 5.000000, 5.000000) [ INFO] [1507493248.067102500]: Setting VPE MagnetometerBasicTuning AdaptiveFiltering (5.500000, 5.500000, 5.500000) [ INFO] [1507493248.082273786]: Setting VPE AccelerometerBasicTuning BaseTuning (5.000000, 5.000000, 5.000000) [ INFO] [1507493248.082320937]: Setting VPE AccelerometerBasicTuning AdaptiveTuning (3.000000, 3.000000, 3.000000) [ INFO] [1507493248.082342291]: Setting VPE AccelerometerBasicTuning AdaptiveFiltering (4.000000, 4.000000, 4.000000) [ INFO] [1507493248.128296534]: Streaming #1: BG1_QTN|BG1_SYNC_IN_CNT|BG1_IMU [ INFO] [1507493248.128346455]: Streaming #3: BG3_UNCOMP_MAG|BG3_TEMP|BG3_PRES [ INFO] [1507493248.153080834]: /imu: VN: Permission denied [imu-2] process has finished cleanly
Using the default launch file I get a permission denied error. The driver permissions look fine, and it sets the baud rate as expected. This call triggers the Permission denied error:
VnEnsure(vn100_setBinaryOutput1Configuration(
&imu_, BINARY_ASYNC_MODE_SERIAL_2, kBaseImuRate / imu_rate_,
BG1_QTN | BG1_IMU | BG1_MAG_PRES | BG1_SYNC_IN_CNT | BG1_TIME_SYNC_IN,
BG3_NONE, BG5_NONE, true));
I can operate the device in ASCII mode and get data just fine. Any idea what the problem could be?
Here is the ROS driver output:
[ INFO] [1625943184.351130705]: Sync out rate: 20
[ INFO] [1625943184.862031633]: Connected to device at /dev/ttyUSB0
[ INFO] [1625943184.885040377]: Default serial baudrate: 115200
[ INFO] [1625943184.885198288]: Set serial baudrate to 921600
[ INFO] [1625943185.919464869]: Connected to device at /dev/ttyUSB0
[ INFO] [1625943185.949322535]: New serial baudrate: 921600
[ INFO] [1625943185.966449729]: Fetching device info.
[ INFO] [1625943185.981300794]: Model number: VN-100T-CR
[ INFO] [1625943185.997282869]: Hardware revision: 7
[ INFO] [1625943186.013351897]: Serial number: 0100056785
[ INFO] [1625943186.030187364]: Firmware version: 2.1.0.0
[ INFO] [1625943186.030270266]: Set Synchronization Control Register (id:32).
[ INFO] [1625943186.101733960]: /imu: VN: Permission denied
Hello, I have been having an issue where the IMU rate is consistently lower than what I set it at. For example, when I set the IMU to run at a rate of 80 Hz, rostopic hz /imu/imu shows that messages are only being published at a rate of approximately 56 Hz. Similarly, when I try to set the frequency to 200 Hz, messages are published at a rate of 144 Hz. I am setting the serial baudrate to 921600, which I believe should be plenty for receiving messages at any of the rates I've been experimenting with, and it is possible to increase the IMU rate by setting it to higher numbers, but the output rates are not consistent with the ones that have been set.
I've tried the FTDI fix in the FAQ section, but it doesn't seem to solve the problem, nor does setting sync_rate to 0. Has anyone else encountered a similar problem and come up with a solution? Thanks in advance for the help.
After make the ROS work space, the first try of IMU VN100T is workable with my own DIY USB-IMU cable.
Then I use the official USB cable and plug in to windows OS software to test its performance, the test is ok.
However, after I re-try with the ROS launch. the /imu/imu has no new message anymore.
I try to change the Baud Rate to meet with the Window OS one. but still failed.
Does Anyone met the same problem as me?
At first when i use the driver, if i set hz rate to be 400. it will be close
but after using like 1 month. if i set 400 now, the rate is only 100 to 300 only.
why this could happen?
I am unable to initialize the vpe of the vn-100 to get accurate ins data.
need to fix
I am running this driver with enable_mag set to true, however the published magnetic field messages show all 0 vales. Has anyone else ever experienced this? Any thoughts?
Thanks
Vik
I'm trying to change the IMU code to make it a master and send signals out of the IMU to communicate to some other sensors. I see in vndevice.h that SYNCOUTMODE_IMU_START is defined (this is the one I want), but in all the files I can't find what parameter has set this to the default in order to either edit it in the scripts or in the launch file. Has anyone found anything on this?
Hello,
I downloaded the package. When I run:
roslaunch imu_vn_100 vn_100_cont.launch
I get the following result in the terminal. "/imu: VN: Permission denied". Would you please help me to solve the problem.
process[rosout-1]: started with pid [13597]
started core service [/rosout]
process[imu-2]: started with pid [13607]
[ INFO] [1464357306.167245353]: Sync out rate: 20
[ INFO] [1464357306.748363389]: Connected to device at /dev/ttyUSB0
[ INFO] [1464357306.765977143]: Default serial baudrate: 115200
[ INFO] [1464357306.766011559]: Set serial baudrate to 921600
[ INFO] [1464357307.776820987]: Connected to device at /dev/ttyUSB0
[ INFO] [1464357307.783369148]: New serial baudrate: 921600
[ INFO] [1464357307.788441741]: Fetching device info.
[ INFO] [1464357307.793557811]: Model number: VN-100T-CR
[ INFO] [1464357307.798613813]: Hardware revision: 7
[ INFO] [1464357307.803668418]: Serial number: 0100017300
[ INFO] [1464357307.808746557]: Firmware version: 2.0.0.0
[ INFO] [1464357307.808777854]: Set Synchronization Control Register (id:32).
[ INFO] [1464357307.837879233]: /imu: VN: Permission denied
[imu-2] process has finished cleanly
Thank you.
Mahsa
Update: I tried to change the baud rate both on the launch file and the USB port, but it didn't change the error at all.
I am trying to use this drive on a VN-100 in ROS Kinetic. I am able to compile everything correctly, however I get an error when I run it. The VN-100 is default out of the box, so I am setting the baudrate to 115200 in the config file. However the IMU rate of 100hz, throws a permission error. So I set the IMU rate to 20 and here is what I see...
[ INFO] [1507221665.943186795]: Sync out rate: 100 [ INFO] [1507221666.559237034]: Connected to device at /dev/ttyUSB0 [ INFO] [1507221666.591308742]: Default serial baudrate: 115200 [ INFO] [1507221666.591380828]: Set serial baudrate to 115200 [ INFO] [1507221667.623906113]: Connected to device at /dev/ttyUSB0 [ INFO] [1507221667.651121672]: New serial baudrate: 115200 [ INFO] [1507221667.671867168]: Fetching device info. [ INFO] [1507221667.687437961]: Model number: VN-100S-CR [ INFO] [1507221667.702816139]: Hardware revision: 7 [ INFO] [1507221667.718275868]: Serial number: 0100027862 [ INFO] [1507221667.733840069]: Firmware version: 2.0.1.0 [ INFO] [1507221667.733908211]: Set Synchronization Control Register (id:32). [ INFO] [1507221667.800836884]: Setting IMU rate to 20
When I run rostopic list
I am able to see the topics, however rostopic echo /imu/imu
does't show me anything.
Any ideas where I am going wrong?
Thanks,
Vikrant
May be I'm wrong, but all those
pub_temp = nh.advertise<sensor_msgs::Temperature>("temperature", 1);
pub_temp_ptr = boost::shared_ptr<ros::Publisher>(&pub_temp);
look very suspicious/dangerous to me.
One workaround is to use a custom null deleter. Or maybe just use plain pointer?
Hey folks,
I have possibly quite a stupid question. I was looking at the definition of coordinate system on the VN-100 which is given as
However, when I run the sensor with this driver, I see that the z - linear acceleration shows -9.8 ish values. How does this match the provided coordinate system? Is there some kind of coordinate transformation being done in the driver?
Hi,
I enabled streaming of gravity-removed linear acceleration by adding BG5_LINEAR_ACCEL_BODY to Binary Group 5 in the 'Stream()' method and reading back 'data.linearAccelBody' in the 'PublishData' method. However on visualising the acceleration in Rviz and also on looking at the contents of the topics, it seemed that the values are quite noisy even when the sensor is standing still.
I have set the VPE to be enabled and imu_compensated to be true. Even the non-gravity compensated acceleration seemed to be noisy on rviz. I have not been able to use the acceleration measurements from this IMU in my sensor fusion algorithm because of such noisy data.
Am I missing out on enabling certain flags/settings?
Hi,
I'd like to thank you first for sharing the tool with us.
We tested your driver on a vn-100 under the environment:
Ubuntu 16.04 + ROS Kinetic
Actually we record the ros message published by the driver and visualize the statistics of the bag recorded. One thing we noticed abnormal is that the generated frequency seems unstable along the temporal direction. See figures.
We visualize the data by subtracting consecutive frames, and show the temporal interval along the recording time. One may notice that:
a drop of relative exact 0.05s occurs around every 15~20 frames.
And this strange behavior is independent to the choice of imu_rate or sync_rate in the configuration launch file, in other words, if we set the imu_rate to 100 we still notice this drop in similar amount and period (0.05s and 20 frames).
We've been investigating it for quite a long time but failed to come up with a solution, we'd like to know if you have any good insight about this problem.
Thanks ;-)
Hello Sir, how are you?
I install your package and build them without any error.
When I was run the launch appear: ERROR: cannot launch node of type [imu_vn_100/imu_vn_100_cont_node]: Cannot locate node of type [imu_vn_100_cont_node] in package [imu_vn_100]. Make sure file exists in package path and permission is set to executable (chmod +x)
The target frequency of the diagnostic updater is not set.
I'm getting a permission denied error when I'm running the launch file. I've changed the baud rate to 921600 and the serial to 1 in line 17, but it's still giving me the error. I'm using an FTDI cable to connect (not just the standard IMU cable), but it looks like it's outputting correct data since it's not getting operation timeouts. Any ideas?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.