![]() |
Re: Team 302's Off-Season Robotics Programming Competition
Joe,
Are you picking the second and third tubes up off the floor in front of the other robots? How are you doing that "without moving the shoulder"? Do you mean that you have yet to implement the shoulder controls? Please observe that the claw is not symmetric, it opens "up" and clamps "down" when the fixed plate is on the floor. It cannot typically pick-up tubes by reaching backwards to to floor behind the robot. The real 302 robot actually has a hard stop just beyond the vertical position (but it's not in there virtually... If a backwards grab looks convincing, we would count it. I expect that the claw whould just kick the tube in that configuration rather than grab it, but anything is possible. On some windows platforms, the CPU results you are seeing are unfortunately "expected". VIRSYS is a very lightweight application which runs two threads, one each for physics and visualization. It does not have to be this way, but it's late for this kind of change for the competition. One or both of these threads is explicitly synchronized to real-time. We check the machine's clock then call "sleep(0)" which is supposed to "surrender the rest of the thread's time slice" to threads/processes of equal or higher priority. When there is nothing else running, VIRSYS is effectively "busy waiting" and can consume lots of cycles. Once you launch another process like LabVIEW, beyond your number of cores the CPU usage SHOULD stay about the same and you should not notice a performance hit... Unfortunately, the results are different on each of XP, Vista, (32 and 64), (and perhaps HW?), etc. I have no issues on the two older Windows machines I run at home. In the Linux and BSD (MacOS) implementations I call "usleep" for the reamining time and the results are very good. I'm not aware of a reliable sleep function appropriate for real-time synchronization at 50-100Hz with Windows. A friend pointed me to a method which borrows the socket timer, but that was a while back and I do not have it anymore. If somebody has a suggestion / example for an accurate Windows sleep function, the substitution can be made very quickly. |
Re: Team 302's Off-Season Robotics Programming Competition
I believe what LV does to get more granular sleep timing is to reprogram the multimedia timers. At that point, you have a one ms resolution sleep.
Greg McKaskle |
Re: Team 302's Off-Season Robotics Programming Competition
Quote:
|
Winner! Team 302's Off-Season Robotics Programming Competition
See a video of this year's winner here. http://www.youtube.com/watch?v=UgDmvB4ElFQ
Congratulations to Team 302 for winning the programming challenge this year! This robot simulation hangs a single tube in autonomous mode. The winning code was an independent work submitted by one of our first year programmers and uses "open loop" (scripted) motor torque commands to realize reliable motions of the ideal robot. Unfortunately testing under variability did not hang any tubes. Per the contest announcement (here http://www.virsys.org/contest.html), a second award would be made to the top finisher from an outside team. However, in this the inaugural year, Team 302 was unopposed. We look forward to defending our title next year!!! |
| All times are GMT -5. The time now is 18:49. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi