View Single Post
  #6   Spotlight this post!  
Unread Yesterday, 12:21
Levansic's Avatar
Levansic Levansic is offline
Registered User
AKA: Len Evansic
FRC #0585 (Cyber Penguins)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2008
Location: Tehachapi, CA
Posts: 187
Levansic has much to be proud ofLevansic has much to be proud ofLevansic has much to be proud ofLevansic has much to be proud ofLevansic has much to be proud ofLevansic has much to be proud ofLevansic has much to be proud ofLevansic has much to be proud ofLevansic has much to be proud ofLevansic has much to be proud of
Re: How do you program the navx mxp in labview?

Thanks for the replies. I'll check out both of your codes in our setup later on today. We worked up our own code to do this, but it looks like we lose a little bit of truth when we reset the NavX heading to avoid the edge discontinuity.

I apologize for my less than clear explanation. We have some code that filters the user input and models what we want the robot to do. We then compare this desired movement model to the current state of the inertial devices to provide a corrected input to our drive code.

We are using a non-traditional holonomic drive, and the robot is not as controllable as we would like. For those who haven't looked it up, holonomic means rolling without slipping. As soon as you push a holonomic wheel hard enough to slip, you've then lost control of your rotation and translation. Likewise, if you accelerate hard enough that one wheel reduces its contact with the ground, you will lose rotation and translation control as holonomic drives work by balancing forces of non-parallel wheels/rollers. This makes your robot look like it is on the Lunacy "ice" rather than the relatively high traction carpeting. Modeling the desired motion, and then doing closed loop control to correct the robot position to match the model, is how we fix this.

Maybe a better explanation is that a driver commands velocity, not position, but views the motion of the robot in its trajectory of positions over time. Our model captures the commanded velocities, translates them to realistic positions (both rotational and translational), then controls the robot to hit the expected positions by using feedback to adjust the wheel velocities. You have to model the rotational orientation to be able to seek to that, and it can't be done if you have a discontinuity in the heading when you pass through a trigonometric singularity point.
Reply With Quote