Go to Post Forum Anonymity = Rampant Exaggeration, if not outright Blatant Lying. - dsm [more]
Home
Go Back   Chief Delphi > ChiefDelphi.com Website > Extra Discussion
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rating: Thread Rating: 5 votes, 5.00 average. Display Modes
Prev Previous Post   Next Post Next
  #8   Spotlight this post!  
Unread 27-12-2010, 10:12
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,040
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: paper: joystick sensitivity (gain) adjustment

Quote:
Originally Posted by Jogo View Post
Really like the idea of that use of throttle.

Out of curiosity, is there anything special about the function x^3+x?
Just to be clear (to avoid possibly confusing other readers), the function is not x^3+x, it is f(x) = a*x^3 + (1-a)*x. This function has some interesting properties.

As mentioned in the paper, when a=0, it becomes f(x)=x. When a=1, it becomes f(x)=x^3. When 0<a<1, it's something in-between. You can vary the "a" parameter to create a curve between f(x)=x and f(x)=x^3 to obtain the desired gain at low joystick settings.

Also, f(x) maps the domain (-1..1) into the range (-1..1) for any chosen value of "a" between 0 and 1, so there's no extra code required to break the domain up into, say, x<0 and x>0.


Quote:
Recently we've used an exponential graph:
Let min = lowest desired value (min>0, usually the highest value at which the robot doesn't move)
Let max = highest desired value (usually, max = 1.0)
Then, output = min(max/min)^joystick value.
Clever. I like it.

If you want to add a Y-intercept to the f(x) function, you can do it like this:

Code:
g(x) = b + (1-b)*[a*x^3 + (1-a)*x]  for x>=0

g(x) = -b + (1-b)*[a*x^3 + (1-a)*x]  for x<0
Now you have 2 adjustable parameters: "b" and "a". The "a" parameter still adjusts the gain, and the extra parameter, "b", adjusts the y-intercept.

Interestingly, if you set b=0.2 and a=0.5, you get almost exactly the same curve as your exponential curve with min=0.2.

I have a graph prepared to illustrate this but can't attach it to this post for some reason*. I'll upload it when I get a chance.

Quote:
This also enables us to vary the max value for the turning axes based on the robot's forward speed.
Could you provide some more detail explaining what you mean please.


*if a moderator happens to be reading, would it be possible to change permissions on this thread to allow attaching graphs?


Reply With Quote
 


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
Joystick Sensitivity furiousgeorge NI LabVIEW 15 04-02-2014 23:10
joystick sensitivity adjustment Ether Programming 3 19-02-2010 00:07
joystick sensitivity gabrielse Programming 2 08-02-2008 14:52
Joystick sensitivity Philz20 Programming 10 24-01-2008 08:34
White Paper Discuss: Joystick Sensitivity Demystified - Version 2 marccenter Extra Discussion 0 28-02-2005 16:54


All times are GMT -5. The time now is 11:31.

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