![]() |
Re: How important is Linux?
To get more people involved with programming robots from their personal computer , FIRST must have a robot simulator. Microsoft Robotics Studio or Player/Stage are easy to interface if you have a x86 controller for a robot (or another commonly used micro-architecture). I think teams should have the option to include an RTOS controller. The development can actually start as a plug-in to the existing IFI Robot Controller. AdamBots FRC#245 has put together a great guide to integrating a Co-processor to your FIRST robot.
|
Re: How important is Linux?
Quote:
While the .NET Framework would be a nice solution, as you said it would be overkill for the task at hand. And what I think is more important, the .NET Framework is only available for Windows XP, 2003, and Vista. All the school computers in Team 228's high school still run Windows 2000 Professional; our team owns three iMacs and one desktop PC running XP. And it's not uncommon to see Ubuntu running on our programmers' laptops. The ideal new control system would be one which is programmable from any of these operating systems, especially since the number of people using Linux and Mac OS X has only been growing. (If MSRS was cross-platform compatible, then I'd support it.) |
Re: How important is Linux?
I personally want Linux (old UNIX hacker) as a development environment (GNUtools mainly) but as the system running on the robot - no.
If you had a small well documented RTOS running on the RC that'd be great - as long as we can learn and understand it all in the six weeks. That's the main barrier - new programmers with no prior experience have to be able to pick up the language/OS, understand the RC, learn how to modify it etc. The default program goes a long way to making the current RC easy to work with but be very careful about increasing the complexity. There's no guarantee that people from last year are on this years team. |
Re: How important is Linux?
Making a coprocessor running Linux easier to integrate would be a bonus for those teams that want to go that way.
|
Re: How important is Linux?
Everything I've ever heard in programming advice is "don't start with .NET." I did start with .NET (thanks to my high school for that one), and the advice is right.
While .NET is a valuable tool for adhoc programming, particularly by non-programmers, it's a sledge hammer where you often need a chisel. Rather than being tailored to what you need, .NET simply gives you everything you might need. Not only is this resource intensive for even the simplest applications, it also leaves you clueless about some of the things that .NET puts in the back-end. The result is easy to learn, but leaves you without basic coding practices that you'll need later in life. (This post is mostly about VB.NET. I know that some of it also applies to C#.NET. I don't know about VC.NET, ASP.NET, or any other .NET language, but I think my point holds for .NET in general.) That said, I know how much our programmers have to know just to write an autonomous mode (their voodoo amazes me), and it may be time for an easier platform. The real question is whether linux would even be easier. Most of the students with linux experience have desktop linux experience. The build of linux that they would find on a FIRST controller would be a whole different world, and they might find that just as difficult to work with as they find the current microcontroller, but as linux is a more complex system, there would be even more opportunity to get lost in it. |
Re: How important is Linux?
I'm still hard pressed to see how utilizing a RTOS increases complexity in programming. With multiple layers of abstraction, we can create a system that makes it extremely easy for novice programmers to get their bot up and running. In addition this allows more experienced developers to innovate beyond anything we could accomplish now, all without slow hardware interfaces.
|
Re: How important is Linux?
Quote:
Rationalizing the interrupt service code, and incorporating some of Kevin Watson's contributions (interrupt-driven A/D conversions, for example) could make it even easier. The past couple of years, we've taken the default code's "user" files apart and put them back together in a slightly different shape. The architectural philosophy of putting separate functionality in separate places, including keeping input and output processes detached from each other, seems to work very well. To bring this back to Ed's comment, having that detachment makes doing autonomous programming relatively simple. |
Re: How important is Linux?
Ignoring the whole "which RTOS?" discussion, here's my $.02.
The current generation of controllers just don't have a prayer of running an RTOS. Period. No easy multi-threading, inefficient indirect referencing, and a collection of other architecture issues make it pretty much impossible. One of the issues of using any RTOS is the complexity of developing code for a new device. While I have no experience with any RTOS, I know that if you miscode a kernel module (or w/e the term is for the RTOS of your choice), the debugging could be a real hassle. Even if you don't write code at a kernel level, you can still have issues with threading that just don't appear in current code. At this time, FIRST robots do not (generally) meet complexity requirements to justify an RTOS. |
Re: How important is Linux?
Quote:
Quote:
Quote:
Quote:
-Kevin |
Re: How important is Linux?
Quote:
|
Re: How important is Linux?
Quote:
I think many teams will expand their programming to fill the capabilities of the new system, whatever they may be. Also, I think we should all assume (as Kevin stated) that even with a RTOS running, teams have the option of coding in a very simple fashion without having to deal with the OS at all. |
Re: How important is Linux?
Before I start: I'm not well-qualified to comment. But that never stopped me.
Quote:
Quote:
Quote:
Quote:
All of the HS kids I met who demanded Linux for their devel system could not really give a good reason, other than "it's not MS" (Dave's point kinda). Arguments of stability or 'openness' don't fly with me. So, Linux as RTOS in the RC wouldn't make a lot of sense for these folks, as it would look foreign (Mark's point). The latter points are right on - FIRST robots are not sophisticated partly because the teams program to the current RCs capabilities. Increase capacity and you will see more sophisticated robots. So, the more power the better, IMHO. On the other hand, if we consider a FIRST robot a learning tool, I would rather see lower-level programming than higher-level. But, considering the range of capabilities out there, Easy C is pretty high level (or can be if you let it). And, it is needed. Conclusion: An RTOS might be great, it does not have to be Linux, the dev tools are what carry the greatest weight for me. Don PS: Quote:
|
Re: How important is Linux?
I started another thread - chicken or the egg - in the control section. Discussing a software programming environment with out knowing some details about the hardware design to me makes no sense. If First would give us a hint at the architecture they are considering, then we could go around and around discussing the advantages and disadvantages of every software platform discussed in this thread. With out some hardware details this thread can not lead to any meaningful discussion. First seams to intend to keep the new control system secret. When it is released we can revisit this thread and comment on they should have used Linux, Rtos would have been perfect, why didn't they use xyz system and on and on. Unless First opens up how can we debate the software. There are allot of smart people on this forum that could make meaningful comments on the platform direction. Don't think it's going to happen. Come on FIRST open up a little.
|
Re: How important is Linux?
Quote:
|
Re: How important is Linux?
Quote:
Using Linux on the other hand is too much work, for no gain. For one thing, it needs more than a PIC with 3KB of RAM, and 1KB of EEPROM. Secondly, interfacing with the hardware is too much work, and even if there was a nice API for it, it would again have too much overhead. Linux also adds another point of failure. What I would like to see are some Linux developer tools. MPLAB is WINE works, but its far from perfect. IMO, a good solution would to be to create a nice API in the default code for drive code, sensors, autonomous, and all the other things. Right now we don't have that and our team is working very hard to create one, but it is a big undertaking. When it comes down to it, this is what embedded programmers do. Embedded systems don't need preemptive multitasking kernels and CPU hot plugging. I think it's important for everyone to try programming on the bare metal of the controller as it's a good learning experience. |
| All times are GMT -5. The time now is 20:02. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi