-
Notifications
You must be signed in to change notification settings - Fork 199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GPS/IMU are measured from the wrong pose #188
Comments
Original comment by Brian Bingham (Bitbucket: brian_bingham). Kevin, This is a great write up to the issue. Thank you. We have been discussing and Carlos is working it, but may take a few hours due to timezones. Does your proposed mitigation (zeroing the frame pose value in the URDF) address the issue for UF? |
Original comment by Kevin Allen (Bitbucket: kev-the-dev). Our mitigation works for our purposes, as it causes the transforms from sensor frames to base_link to be zeroed |
Original comment by Carlos Agüero (Bitbucket: caguero, GitHub: caguero). See pull request #216. |
Original comment by Coline Ramee (Bitbucket: Coline Ramee). Hi, We noticed the same issue right after dress_rehearsal. We mitigated it by just assuming in our state estimator that the measurement from the sensors were in base_link and disregarding the headers. Georgia Tech |
Original comment by Kevin Allen (Bitbucket: kev-the-dev). My opinion is that things should be left as-is for phase3, as it would impose significant development time to adjust to any merged fix for this bug unless the deadline is extended in light of this bug. |
Original comment by Brian Bingham (Bitbucket: brian_bingham). Coline Ramee (Coline Ramee) Thank you for chiming in. Good to know GT was able to work around. |
Original comment by Brian Bingham (Bitbucket: brian_bingham). I expect the VRX technical team will be able to put our heads together Tues morning when timezones align to finalized this issue. In the meantime, please continue to work with the system as-is. |
Original comment by Brian Bingham (Bitbucket: brian_bingham). Our current plan is as follows:
Before we finalize this, one question for Kevin Allen (kev-the-dev) and the UF team. To be clear, you are running your mitigation/hack solution within your submitted VRX team - you are not expecting that this program would be run on the VRX server, correct? |
Original comment by Kevin Allen (Bitbucket: kev-the-dev). Correct, our mitigation does not require any changes to VRX upstream. |
Original comment by Brian Bingham (Bitbucket: brian_bingham). Great - thank you for the confirmation. |
Original comment by Brian Bingham (Bitbucket: brian_bingham). Temporary ResolutionAt the current time, a few days before the final VRX due date, we are not going to make a change to address the inconsistent offsets between the sensors frames and the base_link frame. Both UF and Georgia Tech report that they have mitigation solutions that are functional and we don’t want to risk disturbing their solutions or those of other participants. We will leave the issue open (unresolved) so that it continues to be tracked. After VRX we will likely make the change when there is less risk and appropriate time for testing. Thank you all for working on this last minute issue. |
Original comment by Carlos Agüero (Bitbucket: caguero, GitHub: caguero).
Merged in fix_issue_188 (pull request #216) Fix issue #188 Approved-by: Brian Bingham briansbingham@gmail.com → <<cset 3e44023>> |
Original comment by Hashir Zahir (Bitbucket: hzahir). Hi guys, (Brian Bingham (brian_bingham) , @caguero ) thanks for the amazing fix! I noticed similar issues while working with the IMU plugin while using fixed joints. Using revolute joints fixed the issue (mostly) or so I thought as I have discovered a bug. Rotations in yaw for the IMU plugin work perfectly with this new fix (the fixed joint method reports inaccurate readings), however, rotations in pitch or roll result in incorrect readings from the IMU. For example, using Example: results in rpy = (1.966, -0.319, -2.928), when the actual reading should have been rpy = (1,0,-2.76). Do you guys know why this is happening? Although I understand this is a strange requirement for teams to mount their sensors in weird positions (roll, pitch). Thanks. |
Original report (archived issue) by Kevin Allen (Bitbucket: kev-the-dev).
Team UF has spent about two weeks investigating instability in our control / state estimation systems. After much debugging, the problem has been identified as a bug upstream in VRX. There is some possibility that this is caused by a difference in dependency versions (we use a modified container), so I encourage the maintainers to attempt to reproduce the issue independently.
Summary
The IMU and GPS report (in their header messages) that they are being measured relative to the link at the pose teams specify in their sensor_config.yaml. However, these measurements are actually at base_link. AFAIK, this is not a documented behavior. These discrepancies will obviously throw off state estimation significantly.
How to reproduce
Analysis
After the URDF is generated, everything seems okay. Links exist at the correct poses and the hector_gazebo plugins have these links specified
However, if you add some debug lines to hector_gazebo, you will see that at some point during the URDF->SDF process this tag seems to be changed.
This produces:
Indicating that hector_gazebo actually processes the sensors relative to base_link, but reports them at the sensor link.
Mitigiation
As a hack, Team UF runs our URDF through a script to set the gps / imu links to have a pose of zero so transforms work correctly when published by robot_state_publisher. Others will have to change the hard coded joint names to their own.
The text was updated successfully, but these errors were encountered: