Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Technical Discussion (http://www.chiefdelphi.com/forums/forumdisplay.php?f=22)
-   -   Virtual Robot System - Introducing VIRSYS (alpha) (http://www.chiefdelphi.com/forums/showthread.php?t=95184)

James Critchley 13-05-2011 01:46

Virtual Robot System - Introducing VIRSYS (alpha)
 
Team 302 has been talking about this for a while and a number of poeple at the Championship wanted to see how exactly we were doing this... So here it is!!!

http://www.virsys.org/

VIRSYS (pronounceds "versus" as in "it's the game") is a virtual robot system. It's an emulator that lets you develop and test the hardware independent portions of your software without the robot or CRIO... even before you build it. Basically it runs realistic physics in the background and provides a light weight image generator (graphics) so you can interact with your robot on the field.



This release is setup for those that use LabVIEW, but we're looking for volunteers in the community to apply and demonstrate a similar stub architecture in C++, Java, Python, etc.

This is an ALPHA release, so please be patient and kind. There is very little documentation, but the code (labVIEW) is very clean (perhaps too clean in spots :) ). This public release is geared towards getting our process out there and seeing if there is interest to continue this project as an open development.

This release is the Dragons' 2011 off season trainer where our new software students will be able to work anytime and anywhere to learn general programming concepts as applied to a real competition robot. The robot is hard coded to a parametric "arm bot" and the graphics are fixed to our speciffic dimensions.

To get started you'll need : Windows, LabVIEW, a joystick or gamepad, Nate Robin's GLUT DLL, and the two files on the virsys.org downloads page.

If you want a quick demonstration of the physics, remove the rocker from the wheels (make the "z" coordinate on all of the wheels the same number in "robot.txt"... perferably "3.0" inches) then re-run and try to turn the robot! Or gradually move the "Chassis Center of Gravity" higher and see how easy it is to flip over. If you take out the friction out of the Arm and zero out the bump stop, you can really get it swinging around. With no friction in the bearing, the trick is making it stop.

Have Fun! And let us know what you think.

blakeelias 26-06-2011 11:43

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Cool! How would we be able to help make a Java version?

Also, is there a way to run the robot without a joystick (I don't know how to work with LabVIEW code)?

James Critchley 26-06-2011 15:38

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Great!

You're the second person to make the joystick comment, we'll have to remove that / make it optional.

The field render and dynamic model run outside of LabVIEW, so all you need to do is figure out how to send and receive the same messages.

To get started running with Java (Java robot code), you just need 2 things.

(1) The ability to run your java code on your PC as opposed to deployment on the robot. I do not work with Java or common FIRST project structure outside of LabVIEW. This SHOULD be easy, but I can see how it could be difficult if not planned from the outset of a robotics project.

(2) a UDP socket - send and receive implementation. You can look this up on Google and find LOTS of links. VIRSYS is going to have a few special features beyond the most generic stuff you find in those searches but not much. I can help you setup a nice communications class that does exactly what we need, then you can add it to the project.

See how far you can get on (1) and (2) and let me know (PM). I can install Java if necessary to help.

Once communications are completed you would create the same type of demo using the 302 robot from Java.

FYI: The generic robot dynamics code is now complete but I don't have a scripting feature for building anything yet. Another couple of months and you'll be able to build your own robots.

goodsky 27-06-2011 11:38

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Exploding Bacon has been making C++/Java robot simulator since last build season.

We were considering making a Labview version in the future, but it looks like you have that covered! We are planning on releasing a stable version later this summer.

Very cool work though! This can be extremely useful!

James Critchley 29-06-2011 11:47

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
goodsky,

I can't find your team's website. Google suggests FIRST team content, but it looks like it's been taken down. Is there anywhere we can see your simulator?

blakeelias 13-07-2011 22:14

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Quote:

Originally Posted by blakeelias (Post 1066842)
Cool! How would we be able to help make a Java version?

Also, is there a way to run the robot without a joystick (I don't know how to work with LabVIEW code)?

This thing is AWESOME.

My team is developing both a Python and Java version. Right now the Python version is well on its way, with a few WPILib classes. Java still needs to be designed.

https://github.com/prog694/VIRSYSPy
https://github.com/prog694/VIRSYSJ

hdastwb 07-08-2011 11:43

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
1 Attachment(s)
Attached is a version of the trainer code with keyboard input instead of joystick input (and a picture documenting my changes). You can drive the robot with the I, J, K, and L keys and activate the button with the U key.

James Critchley 07-08-2011 21:35

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Outstanding. You beat us to it!!!

I *believe* we already have a slightly larger update to share on this topic. I'm checking on that.

robs 20-10-2011 11:10

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Is there a way to simulate a lift device in VIRSYS?
Rob Steele
818 395 4657

James Critchley 21-10-2011 09:10

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Quote:

Originally Posted by robs (Post 1081905)
Is there a way to simulate a lift device in VIRSYS?

Not in the "alpha" version. We are mainly concerned with showcasing the basic interface to the coding environment. We use LabVIEW and are looking for others to do Java and C++.

I do have the 3D physics to do generic articulated systems (your request). The trick is matching a generic configuration with the visualization and software environment interface. I want to get all of this going in a package that 90% of FRC teams could learn on thier own and use. Unfortunately it's a good size project, I don't have the time on my own to keep development on any kind of schedule, and last year's seniors who were helping have graduated.

The more requests I get, the more likely I will be to find the time to make this work. At this time my reply must be, "please wait for the Beta release which is under intermittent development."

JohnGilb 08-11-2011 16:27

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
What changes would need to be made in order to support other 4-wheel drive types? (Holonomic, Swerve)?

James Critchley 08-11-2011 21:53

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Quote:

Originally Posted by JohnGilb (Post 1084334)
What changes would need to be made in order to support other 4-wheel drive types? (Holonomic, Swerve)?

Sorry John, you need the source code for that and it's in no shape for sharing right now.

The intent is to support most any robot in releases beyond "alpha"... Holonomic, nonholonomic, skids and skis, and outriggers are all possible with a small library of configurable wheels and ground contacts. The trouble is getting to a configurable robot software package quickly and making it accessible to everyone.

At the end of next build season I expect to be happy enough with the source code to support an open release and subsequent development of examples in each class of mobility. I do not expect that too many teams will be willing to use the tool in that form. Development would need to continue from there to support interactive design and assembly of robots.

Do you have a particular need? A software testbed for swerve drive was an itch I considered scratching this summer. Sounds like a good off-season programming competition idea for next year. :)

JohnGilb 09-11-2011 00:32

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Good to know it's in the works!

There's no pressing need, but I think software that would let programmers try out new drive types would be a huge asset. One of the things that makes teams wary of implementing holonomic/swerve drive is knowing that the programming for it is going to be more complex than tank drive, and they don't want to hit all the painful issues during the season.

Having a virtual playground where you can test out new programming ideas would give them more confidence, and we'd probably see more complex drives emerge as a result.

Joe Ross 18-05-2012 20:36

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
It appears that the virsys website is no longer available.

James Critchley 16-06-2012 13:36

Re: Virtual Robot System - Introducing VIRSYS (alpha)
 
Sorry all,

I've been pretty busy this year starting a business on the side. unfortunately that effort represents the time I would have otherwise put into mentoring activities with team 302 and developing VIRSYS.

I have re-posted the webpage here:

http://www.multibody.org/VIRSYS/

It is still a very good training exercise for new LV programmers. Not to mention experienced mentors who could spend days optimizing the robot's motion performance.

As things settle down with my first contract, I should be able to spin-off related source code and get VIRSYS development back on track. But don't hold your breath. :)

Best regards,
James


All times are GMT -5. The time now is 18:26.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi