|
Re: Only intermittently finding the 2 trailer colors
Has anyone had a problem with the FindColor() function finding a color exactly every Nth call? We haven't had much time to look into this yet. We think we are waiting enough time between calls
To do this test we edited the now old Iterative robot example and added the following to the constructor:
if (StartCameraTask(10, 0, k160x120, ROT_0) == -1)
97 {
98 dprintf( LOG_ERROR,"Failed to spawn camera task; Error code %s",
99 GetVisionErrorText(GetLastVisionError()) );
100 }
101
102 // Set up camera tracking parameters.
103 tdata = GetTrackingData(GREEN, PASSIVE_LIGHT);
The periodic autonomous function as shown below prints the "found value..." to the console exactly every 5th time with 4 ShowActivity("\n") between.
void Team116_Demo::AutonomousPeriodic(void) {
158 // feed the user watchdog at every period when in autonomous
159 GetWatchdog().Feed();
160 ParticleAnalysisReport par; // particle analysis reports
161
162 m_autoPeriodicLoops++;
163
164 // generate KITT-style LED display on the solenoids
165 SolenoidLEDsKITT( m_autoPeriodicLoops );
166
167 if ((m_autoPeriodicLoops % 60) == 0) {
168
169 if (FindColor(IMAQ_HSL, &tdata.hue, &tdata.saturation, &tdata.luminance, &par)
170 && par.particleToImagePercent < MAX_PARTICLE_TO_IMAGE_PERCENT
171 && par.particleToImagePercent > MIN_PARTICLE_TO_IMAGE_PERCENT) {
172 // drive toward color
173 m_robotDrive->Drive((float)1.0, (float)par.center_mass_x_normalized);
174 ShowActivity("%s found: follow x value: %f", tdata.name, par.center_mass_x_normalized);
175 }
176 else
177 {
178 m_robotDrive->Drive(0,0);
179 ShowActivity("\n");
180 }
181 }
We have tried calling FindColor() at different rates with the same result. Any help would be appreciated.
Thanks,
Greg
|