To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/0ffd62d8-9656-4878-9499-18cd5cabcd0b%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/CALRt%2BqY5HDvsaAFApcoUGsbfQTodkS4RKKa%3D%2BuaSVeuDUpjqNw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/CACsJT9NCwmJzLZgZJTNhpyubYsKeCqONKHP9aYS56_STqC-iXQ%40mail.gmail.com.
There's a lot of bagged data out there now and bag migration is unfortunately very painful to convert all of that data over. My opinion is that the message shouldn't be updated unless absolutely necessary and the issues with the world frame id are resolved. It's easy to do a distro change because runtime systems are not affected. Those working from logged data though have a completely different and terrible experience. I'd honestly support a WorldReferenceIMU message more than changing the current one - other than adding comments which don't affect the md5 sum and could clear up issues working between the two.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/CALRt%2BqbG5umKyw3RksxPV3Nq0JsgS0%3Dq%3DxgoFWsnktOXFTOKpQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/CAOtrKv%3DZkbvqxBQGd8RdHHHDQvybUOiuJiwsZjwLg-Ct8Cy%2BEg%40mail.gmail.com.
That's pretty close.
An accelerometer will report all zeros in free fall.
The methods and corrections of integrations are up to you and your application. As you mentioned, vehicles have to compensate for the angular effects of moment arms on the accelerometer using the gyro reading.
Yes, the closest thing we have to a standard at this point defines East as zero yaw. Since sky goes from the ground to the sky, the angles also increment opposite that of compass heading.
Finally, sensor msgs Imu does not use Euler angles at all. It uses quaternions to avoid angle application order issues as well as avoiding gimbal lock singularities.
Side note: Kalman filters for Imus are incredibly verbose implementations. Depending on your accuracy required and computation available, I recommend looking at some of the alternate fusing algorithms provided in the hobby airplane or quadrotor community. Google's android also includes a simple and effective apache v2 license algorithm you could try:
https://github.com/cozybit/aosp-frameworks-base/blob/master/services/sensorservice/Fusion.cpp
--
You received this message because you are subscribed to the Google Groups "ROS Drivers Special Interest Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-drive...@googlegroups.com.
To post to this group, send email to ros-sig...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/F6427ED240AE435280AF1A254EE85C30%40DDT3.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/CALRt%2BqYz%3DbnemDjYZj99CvihESbruXEEkC0cz-npisoMj7fO4g%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/0E1464BB24154B1CAA2B99D12B45DF32%40DDT3.
The previous paragraph raises the basic philosophical difference as to whether the driver should report data in accord with REP 103, or in accord with the conventions of the sensor manufacturer. I'm voting on the side of making driver output standard across all sensors with the driver striving to make interchangability possible without changes to the users' code.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/D7DFB462751D492EA874B1837423774E%40DDT3.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/D7DFB462751D492EA874B1837423774E%40DDT3.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/3e334e87-7fc1-4ec9-a070-1265a3d276e2%40googlegroups.com.
Will do Tully. Would you be able to assign me a REP number for the pull?
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/d45fee2f-941d-4eab-b65f-56bdb78d6f38%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/28A4BFCA-4E16-4F0A-8D6C-A35873E5FAD3%40gmail.com.
> To unsubscribe from this group and stop receiving emails from it, send an email to mailto:ros-sig-drivers%2Bunsu...@googlegroups.com.
> To post to this group, send email to ros-sig...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/5ecd3f47-18ca-41d7-a3cf-fdff5a01c064%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "ROS Drivers Special Interest Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to mailto:ros-sig-drivers%2Bunsu...@googlegroups.com.
> To post to this group, send email to ros-sig...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/D7DFB462751D492EA874B1837423774E%40DDT3.
>
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups "ROS Drivers Special Interest Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to mailto:ros-sig-drivers%2Bunsu...@googlegroups.com.
> To post to this group, send email to ros-sig...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/CACsJT9MXfgDC4uEWEdp-9iWofuBLa-jmehhGZiKaeUbVf%3Dn_Mw%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "ROS Drivers Special Interest Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mailto:ros-sig-drivers%2Bunsu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/28A4BFCA-4E16-4F0A-8D6C-A35873E5FAD3%40gmail.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/2F45FF0FFCBC4D0CBC67560D5FB35988%40DDT3.
...
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/a2e914bc-3d06-408e-8b57-fa3945ec5285%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-drivers/45b05338-036f-495a-8773-0c7072794ac5%40googlegroups.com.
I agree with Tully: it's the robot builder's responsibility to provide
the proper transform between base_link and imu_link(_ned)
Assuming the robot builder has set up the correct transform
from base_link to imu_link(_ned), the following should hold if you
transform the Imu messages into base_link:
* the yaw of imu_msg.orientation is 0 when the robot points due east and
increases when the robot rotates counter-clockwise
* imu_msg.linear_acceleration.z is positive (around +9.81), x and y are
around 0 when the robot is stationary and level
Correct?
The world frame orientation should be
fixed (ENU); instead, we can handle NED IMUs by rotating the body frame
(imu_link_ned)
P.S.: I believe what I wrote above ("transform the Imu msgs into
base_link") isn't quite accurate, since we want to change the *child* of
the transform (the transform before was "world_frame -> imu_link" and
the new one is "world_frame -> base_link"), so what we should really do
is multiply the transform imu_link -> base_link with the
imu_msg.orientation.
orientation_quat * transform_orientation
inv(transform_orientation) * orientation_quat * transform_orientation
- Rotation: in Quaternion [0.707, 0.707, 0.000, 0.000]
in RPY [3.142, -0.000, 1.571]