Google Lunar XPrize

Anything About Anything...
Concord
Reverse Outside Corner Grinder
Posts: 1661
Joined: Sun Oct 21, 2007 5:24 pm

Post by Concord »

and it
was my original post
so don't
blame
(or credit) kyle
:D
User avatar
kyle
Adjust Outside Corner Grinder
Posts: 2004
Joined: Thu Jun 08, 2006 3:33 pm
Location: Indiana, USA, Earth, Milky Way Galaxy, Universe, Multiverse
Contact:

Post by kyle »

ya i just had the website idea
User avatar
Lucifer
Project Developer
Posts: 8765
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

So, taking inventory of the ada bindings for player, I'm finding them surprisingly thin. I'm willing to live with it, but we'll have to extend them a fair amount, which beats the hell out of starting them from scratch.

Here's what I'm thinking for basic rover logic.

Some definitions first. Internal server is the server in the rover control program itself. We'll connect to it with our own desktop application to gain access to our own data structures and see what the rover is thinking. MCP is master control program, which is that desktop application. The MCP should connect to at least the rover's internal server to gain us access to command it and read its data, and may also connect to Player. If we wind up disregarding Player, we still need this setup anyway.

1. Initialize, start up internal server.
2. Scan available hardware.
3. Initialize all hardware and start reading sensors.
4. Check available hardware against an internal list that contains a minimum hardware configuration for operations.
5. Enter standard operations loop and continue until told to quit.
6. Undo everything and power down.

The ada bindings fall down on the second step, scanning available hardware. Ada has a neat way of interfacing to a C library and has a lot of built-in stuff for doing exactly that. So no swig or anything, which is really neat. I'm liking it enough that I'd almost be willing to suggest it as a "script" language for arma. :) But it looks like a fair amount of work to represent a C struct. So the player_client_t struct is just represented with a simple access pointer, which prevents us from reading anything inside it while allowing us to use it everywhere the player_client_t struct is needed. The device list is in that struct, however, and one device is type _player_device_t. So we need to get both of those structs ada-ized to get past step 2.

I kind of looked around for socket information so we can setup the internal server, but didn't find much.

So, classes don't exist in ada, but there is oop still. OOP is through something called a package, which you can pretend is a class and probably survive. There's inheritance and polymorphism, public/private scope, and all sorts of things. But the available tutorials I found, at least the ones I read, are pretty technical reads. So consider this a fair warning, and when you go to find out how to make a class, "package" is the key word you're looking for. Also, the wikibook for ada is pretty complete and detailed, I highly recommend it.

So we have three programming tasks right now. Start the MCP, write the socket class for the RCS (rover control software, I'm American so I love making up acronyms), get those two data structures made available to us in ada.

I'm inclined to do the MCP with PyQt, but there is a licensing issue I hadn't considered. Are we programming for commercial reasons? If we are, we have to pony up for commercial licenses for everyone coding qt code, and then again to riverbank for pyqt. We can probably skate on the ambiguity for now and just use PyQt, but I'm interested in alternatives. We could use pygame for example, but it'll be a lot of work. I'm not at all interested in pygtk, and we do have to require the MCP run on Windows, Mac OS X, and Linux. It's a regular desktop application. I'm obviously very much in favor of PySomething. Any preferences here? (A web application is right out, sorry) There's also wxPython, which I've used and it works well, but it's wxWidgets, which I don't really like. I'm very biased, though, I like PyQt a lot. Is there a py-fltk?

The MCP and the socket class are linked, obviously, because we have to build in a network protocol at the same time. An advantage to using python here is that I've already got a network layer mostly written that I can plug in on the MCP side, but will have to be rewritten with ada. If we find a pretty good C/C++ library that's also very small, we can use that too since ada has builtin facilities for using those libraries.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
Concord
Reverse Outside Corner Grinder
Posts: 1661
Joined: Sun Oct 21, 2007 5:24 pm

Post by Concord »

MachineScience

I don't know
how much it
could really help
but it is cheap
and a non-profit
User avatar
Lucifer
Project Developer
Posts: 8765
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Ok, I'd originally intended to keep discussion here, but I'd like to move it to an email list instead. So please pm me your email addresses and I'll add them to the list.

The list is private, so unfortunately that'll move discussion to a private place, maybe we'll move it to some more public place later. Discussion is welcome here in addition, of course, but I'd like to move core discussion to the list.

Anybody is welcome on the list, just pm me your email address.

This also means we'll need a website pretty quickly where we can post progress and stuff, but that's already on the todo list. Volunteers? I figure I can host it on my webserver just fine. We'll need to name ourselves, though. Minor inconvenience, I don't think "Dave's Stupid Lunar Rover Project" is going to get any takers.... ;)
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
kyle
Adjust Outside Corner Grinder
Posts: 2004
Joined: Thu Jun 08, 2006 3:33 pm
Location: Indiana, USA, Earth, Milky Way Galaxy, Universe, Multiverse
Contact:

Post by kyle »

Lucifer wrote: "Dave's Stupid Lunar Rover Project"
That's a great name.
User avatar
Lucifer
Project Developer
Posts: 8765
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Here's a screenie. This is the mcp connected to a simulator that has one robot in it. The robot in it is just driving around trying not to hit anything.

So you have the lidar display, the gauges, the console, and the list of attached devices.
Attachments
mcp2.png
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6714
Joined: Thu Dec 18, 2003 7:03 pm

Post by Tank Program »

MCP? :wink:
Image
User avatar
Lucifer
Project Developer
Posts: 8765
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Yeah, mcp. :) It could also be Mission Control Program, really. :)

Hey, you guys, stop kicking tires and send me your email address so I can put you on the list. Seriously, discussion is happening there now. :)
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
Concord
Reverse Outside Corner Grinder
Posts: 1661
Joined: Sun Oct 21, 2007 5:24 pm

Post by Concord »

The inside
is nice and warm
come in
come in
User avatar
kyle
Adjust Outside Corner Grinder
Posts: 2004
Joined: Thu Jun 08, 2006 3:33 pm
Location: Indiana, USA, Earth, Milky Way Galaxy, Universe, Multiverse
Contact:

Post by kyle »

I gave you my e-mail for google docs

need it again?
User avatar
Jonathan
A Brave Victim
Posts: 3391
Joined: Thu Feb 03, 2005 12:50 am
Location: Not really lurking anymore

Post by Jonathan »

Same. Note that I'm a bit busy at the moment.
ˌɑrməˈɡɛˌtrɑn
User avatar
Lucifer
Project Developer
Posts: 8765
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Ah right, ok, I'll just use those then. :)

Edit: Since I didn't just take it for granted I could use those addresses before and was wrong, I corrected by using QUARG's also, even though he hasn't replied here to say I can. :)
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
QUARG
Round Winner
Posts: 223
Joined: Thu Sep 14, 2006 2:38 pm
Location: montreal

Post by QUARG »

Ya i got your emails tonight. Feel free to use it. To be honest im quite lost in all of this at the moment. Im not sure were the project documents are now.
User avatar
Lucifer
Project Developer
Posts: 8765
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Heh, still in subversion. Mailing list is for communication, documents are to be kept in subversion. I pmed you the information to get a subversion checkout, right?
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
Post Reply