Go to Post Personally, I think the solution involves looking at the past. - Billfred [more]
Home
Go Back   Chief Delphi > Technical > Control System
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #1   Spotlight this post!  
Unread 16-02-2007, 13:51
Dave K.'s Avatar
Dave K. Dave K. is offline
Engineer/Mentor
FRC #0930
Team Role: Mentor
 
Join Date: Jan 2007
Rookie Year: 2005
Location: WI
Posts: 91
Dave K. is a splendid one to beholdDave K. is a splendid one to beholdDave K. is a splendid one to beholdDave K. is a splendid one to beholdDave K. is a splendid one to beholdDave K. is a splendid one to beholdDave K. is a splendid one to behold
Radio Packet loss + closed loop control system = lunging robot

Teams that have implimented closed loop speed/position controls should be aware that when packet loss occurs, and the PWM outputs are disabled, that your control loop software will continue to run and accumulate error that may in turn result in rather agressive behavior when the radio link is re-established.

When the robot controller has declared a communication's failure and disables the outputs the user firmware currently has no direct means of determining that the robot is now in a "disabled" state. All your firmware will know is that the motors are slowing down and will attempt to make them go faster. When the outputs are re-enabled, the (now) larger control values will be immediately applied to the motors and make them rapidly increase in speed, until the control firmware recognizes the overspeed condition and takes corrective action.

The "disabled" bit in the mode struct only indicates whether the disable input on the competition interface has commanded a disable, and thus cannot be reliably used as an indication to your control loop why the motor(s) are slowing down.

I've asked IFI to make the local disable visible to the user code, and they are considering a change, but at this late date, I wouldn't rely upon it to resolve this problem.

In the alternative, possible work arounds, which I've not yet had an oppertunity to test, include:

1.) Watching the 'packet_num' byte to make certain it is changing

2.) Wiring a 'relay' output directly back into a user 'input', set the relay output ON and use the user input bit as an indication of output disable.


Although I've had the closed loop control firmware implimented for a few weeks, this problem became much more obvious after loading the V14a RC master CPU firmware. V14a disables the outputs much more quickly than V13 did, so with V13, a few lost packets only caused a momentary loss of control, but didn't create an immediate problem for the control firmware.
__________________
--Dave
 


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

Similar Threads
Thread Thread Starter Forum Replies Last Post
control loop frequency. Rickertsen2 Programming 1 12-01-2006 08:38
1501 Control System Basics and Analysis of a Bipedal Robot Chris_Elston Programming 1 25-12-2005 12:52
PID control loops - closed loop feedback KenWittlief Technical Discussion 56 26-04-2004 21:27
How Can You Make A Closed Loop System???? GRR_340 Pneumatics 6 21-03-2002 12:27


All times are GMT -5. The time now is 07:23.

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