Go to Post There are no simple solutions, as every solution has its own problems. - M. Lillis [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #16   Spotlight this post!  
Unread 08-02-2017, 17:28
otherguy's Avatar
otherguy otherguy is offline
sparkE
AKA: James
FRC #2168 (The Aluminum Falcons)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2009
Location: CT
Posts: 446
otherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to behold
Re: Recommended gyros that can keep up with fast rotation?

We've been using the ADXRS453 since the 2015 season. I'm not sure how our code lines up against the WPILib code for this family of Gyros, but ours has multiple years of execution time on it... bug free. https://github.com/Team2168/2016_Mai...c/org/team2168. In our implementation, comms with the sensor runs in a separate thread from the main robot. So timed events, like calibrating, don't block main program execution.

We have code kicked off from Robot.java which automatically detects drift while the robot is disabled (prior to match start) so if you've got a bad calibration (robot powered on and then moved onto the field - not stationary during initial calibration) it will get a new zero. This code is orig. stolen/inspired from 245's 2013? code, and we've improved upon it over the years.

Last year we also spent some time with the BNO055. This is an IMU that's in the $30 price range. https://github.com/jcorcoran/BNO055_FRC Definitely a favorite of mine.

Both of these have more than acceptable performance over the duration of an FRC match.
__________________
http://team2168.org
Reply With Quote
  #17   Spotlight this post!  
Unread 08-02-2017, 17:32
slibert slibert is offline
Software Mentor
AKA: Scott Libert
FRC #2465 (Kauaibots)
Team Role: Mentor
 
Join Date: Oct 2011
Rookie Year: 2005
Location: Kauai, Hawaii
Posts: 364
slibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud ofslibert has much to be proud of
Re: Recommended gyros that can keep up with fast rotation?

Quote:
Originally Posted by Tom Line View Post
I'm curious what data and performance testing you've done on competitive products to make that statement. There are a number of IMU's on the market other than that navX. Have you tested them?

I am in no way disparaging the NavX. We've played with it and it works very well. However, I'm an engineer and I try not to make statements that product A is better than product B unless I have seen a marked difference in some measurable.
Well, I'm biased a bit, but wanted to share my thoughts:

Pigeon specs are similar to navX-MXP/navX-Micro for 6-axis performance from a yaw drift rate, make sense as they use the same chipset which performs the 6-axis fusion onboard. The navX-MXP/navX-Micro firmware for calibration has improved over the two years, but it's likely safe to assume the Pigeon orientation angle accuracy after calibration is similar (sounds like it, according to published specs).

Pigeon update rate is 100hz, navX-MXP/navX-Micro are 200hz, so if you want faster update rate the latter is superior. 200Hz is great if you want to drive rapid PID loops that manage the orientation of multiple wheels on the robot.

We will have to see if there's any CAN bus contention limits the Pigeon IMU from consistently achieving update rate at 100hz, CTRE should be able to say on that. At 1mbps w/the PDP, 4 talons and a PCM all chatting on the CAN bus, and 100hz Pigeon updates there may be some contention starting to arise - that remains to be seen. However, in the configuration to connect directly a Pigeon to a Talon this would likely not be a concern.

From a software perspective, the Pigeon docs indicate it provides yaw, pitch and roll - however the navX-MXP/navX-Micro also (perhaps because it's not limited to the 8-byte CAN bus data payload sizes) provide synchronized quaternions and a sensor timestamp as well. Timestamped Quaternions (and the fact that navX-MXP/navX-Micro have multiple simultaneous communcation interfaces) are being used effectively in the Sensor Fusion Framework (SF2) to correct for video processing latency, and create timestamped orientation histories. As a contributor to SF2, I can say that more features along this line are coming. Software is key to enabling more autonomous features.

For newer teams the number of examples, the training materials and the large community that support navX-MXP/navX-Micro and help each other too are awesome.

So in addition to orientation accuracy specs which I believe are very similar, there are several system and software level capabilities to also consider.
Reply With Quote
  #18   Spotlight this post!  
Unread 08-02-2017, 19:36
Tom Line's Avatar
Tom Line Tom Line is offline
Raptors can't turn doorknobs.
FRC #1718 (The Fighting Pi)
Team Role: Mentor
 
Join Date: Jan 2007
Rookie Year: 1999
Location: Armada, Michigan
Posts: 2,569
Tom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond repute
Re: Recommended gyros that can keep up with fast rotation?

Quote:
Originally Posted by slibert View Post
Well, I'm biased a bit, but wanted to share my thoughts:

Pigeon specs are similar to navX-MXP/navX-Micro for 6-axis performance from a yaw drift rate, make sense as they use the same chipset which performs the 6-axis fusion onboard. The navX-MXP/navX-Micro firmware for calibration has improved over the two years, but it's likely safe to assume the Pigeon orientation angle accuracy after calibration is similar (sounds like it, according to published specs).

Pigeon update rate is 100hz, navX-MXP/navX-Micro are 200hz, so if you want faster update rate the latter is superior. 200Hz is great if you want to drive rapid PID loops that manage the orientation of multiple wheels on the robot.

We will have to see if there's any CAN bus contention limits the Pigeon IMU from consistently achieving update rate at 100hz, CTRE should be able to say on that. At 1mbps w/the PDP, 4 talons and a PCM all chatting on the CAN bus, and 100hz Pigeon updates there may be some contention starting to arise - that remains to be seen. However, in the configuration to connect directly a Pigeon to a Talon this would likely not be a concern.

From a software perspective, the Pigeon docs indicate it provides yaw, pitch and roll - however the navX-MXP/navX-Micro also (perhaps because it's not limited to the 8-byte CAN bus data payload sizes) provide synchronized quaternions and a sensor timestamp as well. Timestamped Quaternions (and the fact that navX-MXP/navX-Micro have multiple simultaneous communcation interfaces) are being used effectively in the Sensor Fusion Framework (SF2) to correct for video processing latency, and create timestamped orientation histories. As a contributor to SF2, I can say that more features along this line are coming. Software is key to enabling more autonomous features.

For newer teams the number of examples, the training materials and the large community that support navX-MXP/navX-Micro and help each other too are awesome.

So in addition to orientation accuracy specs which I believe are very similar, there are several system and software level capabilities to also consider.
There we go . That's great info. Thank you.

I believe the Talon srx update rate is at a default of 10 ms. So a matching update rate of the Pigeon at 10 ms means you'll be receiving 1 new sample per loop. I'm curious though how much the law of diminishing returns comes into effect when trying to run things at an update rate of 10 ms versus 5 ms. It's well beyond the scope of what I know how to do to measure the effect of that. You probably have more experience with that than I do since we rarely worry about update rates (except on shooters....).

I suspect based on the maximum number of devices allowed on the Can Bus that the update rate will not become bottlenecked, but like you said we should know pretty shortly. We haven't seen a problem on ours with 13 srx's.

Last edited by Tom Line : 08-02-2017 at 19:41.
Reply With Quote
  #19   Spotlight this post!  
Unread 09-02-2017, 12:50
ozrien's Avatar
ozrien ozrien is offline
Omar Zrien
AKA: Omar
no team
Team Role: Mentor
 
Join Date: Sep 2006
Rookie Year: 2003
Location: Sterling Heights, MI
Posts: 561
ozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond reputeozrien has a reputation beyond repute
Re: Recommended gyros that can keep up with fast rotation?

Quote:
Originally Posted by slibert View Post
Pigeon update rate is 100hz, navX-MXP/navX-Micro are 200hz, so if you want faster update rate the latter is superior. 200Hz is great if you want to drive rapid PID loops that manage the orientation of multiple wheels on the robot.
We could probably do 5ms. In all honesty when I started with the Invensense example, it was set to 10ms, and I just never tried changing it.
Originally I was planning on using a different IMU chip entirely but then we couldn't source it in time, I had to switch. In so doing I just left all the timing the same as the previous IMU.

If you guys think that's an important improvement, we'll add it to the list.
In my testing the update rate seemed adequate so I didn't dig further.
Quote:
Originally Posted by slibert View Post
We will have to see if there's any CAN bus contention limits the Pigeon IMU from consistently achieving update rate at 100hz, CTRE should be able to say on that.
This is not a problem. Pigeon only adds ~6% CAN bus util whether it be CAN or gadgeteer.(Section 11.4).
Quote:
Originally Posted by slibert View Post
From a software perspective, the Pigeon docs indicate it provides yaw, pitch and roll - however the navX-MXP/navX-Micro also (perhaps because it's not limited to the 8-byte CAN bus data payload sizes) provide synchronized quaternions and a sensor timestamp as well.
If you guys think that's important, we'll add it to the list.
In my research none of teams seemed to care about time-synchronization.
Maybe most teams just "aren't there yet". But if a bunch of teams start asking for it, we'll probably implement. Synchronizing signals across CAN frames is something we know how to do.

All in all there are many options for good nav, including NavX [and Pigeon ].
Inertial navigation has been a hole in our product line for a while, so I was eager to fill it. I think what makes Pigeon unique is the on-the-fly temperature compensation, multiple connection strategies, robustness against power-dips, fast boot-cal, price, and future features where our CAN devices work together.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 19:36.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi