PDA

View Full Version : What levels of developers are we targeting?


Sienna
04-22-2008, 07:00 PM
Ok, I have to ask this question.

Who are we targeting this system at?

Again, this will need to be discussed in multiple segments:

1) You have the people developing the TRS

2) You have the people using the TRS

As Droid pointed out, a lot of people aren't (and I will be blunt here and quite probably insult people*) 'real' coders. They are business application developers, maybe web programmers, etc. They might be able to use C#, they most likely use VB or similar. I suspect a good majority do not have a four year bachelors in computer science.
*: I am waiting for the machine code programmers say the same to me that I am not a 'real' programmer because I program in C :P

Matt is right, in that it is probably unrealistic to expect these people to have to make a CORBA function or similar. SOAP may be the most complicated thing they understand, and that may be a stretch.

But, just like you can't develop a VB IDE in VB, you need another set of developers
who know 'lower' level languages. You need people who make the C code to actually make the IDE work. (Or, in our paradigm, maybe the people who write device driver abstraction levels)

And then of course, every computer community needs people who take C code and convert it into machine code. (Or, in our paradigm, the embedded code on atmels, etc)


I guess what I am trying to get at, is what are the skill levels we plan on targeting the various levels of the TRS to? (I imagine the answer will be that the TRS is really a very heirarchical system, with levels of abstraction taking each higher level higher in the language chain and conversely more accesible to hobbyists.

Alex
04-22-2008, 08:10 PM
Our main target audience for users of the TRS are high-level developers. We do not want users of this system to be required to learn languages like C/C++ if they don't have to. Of course we also want it so that people who know C and C++ can use those languages with no problems.

We want to make this system simple enough so that high-level developers will be able to easily understand how to use this system. One of the major problems with MSRS (and this comes from many companies that have worked with it) is that it is difficult to use and too time consuming to learn, even for advanced high-level developers.

Common tools such as Web Services, from what I understand, are tools that most high-level developers know how to use and that is why I've been pushing them so much.

Droid Works
04-22-2008, 08:17 PM
I could be wrong but I thought TRS was supposed to be robot control for everyone from the 16 year old kid building his first robot- the real coders. isn't it possible to have both? Maybe it could be developed like free bsd was over time. Im not comparing free bsd to TRS but I like the idea of a basic structure that can hopefully satisfy everyone.

Alex
04-22-2008, 08:25 PM
I could be wrong but I thought TRS was supposed to be robot control for everyone from the 16 year old kid building his first robot- the "real coders". isn't it possible to have both? Maybe it could be developed like free bsd was over time. Im not comparing free bsd to TRS but I like the idea of a basic structure that can be hopefully satisfy everyone.Yes, that is the goal of the TRS. It needs to be easy enough for a 16 year old to use, yet powerful enough for a research company to use even for advanced robotic applications (hey! I just made a cool sounding acronym, ARA:D). Our main target audience are high-level developers though, because that is tons easier for the "average" joe/jane to pick up.

Droid Works
04-22-2008, 08:35 PM
Yes, that is the goal of the TRS. It needs to be easy enough for a 16 year old to use, yet powerful enough for a research company to use even for advanced robotic applications (hey! I just made a cool sounding acronym, ARA:D). Our main target audience are high-level developers though, because that is tons easier for the "average" joe/jane to pick up.

Excellent! you guys had me scared for a minute..lol I like the sound of that ARA:)

Sienna
04-22-2008, 08:48 PM
*sighs*

Again, we may be asking for the moon.

I don't know that you CAN get a good cross section of 'usage' like that.

It was like a comparison that we had in the language thread. VB is 1/100th as hard to learn as C. But, its also 1/100th as powerful as C. Which means, you can get involved really really quickly. But, pretty soon you will reach a limit.

We have that same problem here. Make it really easy, and you have to make it less powerful as a consequence. Make it really powerful, and you make it really hard.

This is like a universal truth.

Which is why I think we need to really evaluate how to build a system of layered complexity.

Alex
04-22-2008, 09:27 PM
It was like a comparison that we had in the language thread. VB is 1/100th as hard to learn as C. But, its also 1/100th as powerful as C. Which means, you can get involved really really quickly. But, pretty soon you will reach a limit.I think you're missing the point;) We're not discussing what language the TRS is going to be developed in (at least not in this thread).

Here in this thread, the discussion (well my understanding of it) is how this system will look (and be interacted with) to users of the system, not the developers that will be helping to build the tools of the TRS. How we expose the TRS to users of the system is a totally different ballgame all together and is why I am pro-web services.

During every step of the developmental process of the TRS, we need to constantly keep the end user (our target audience) and ask ourselves "Is what were building here simple enough for beginning high-level developers to understand?".

I don't know that you CAN get a good cross section of 'usage' like that.

Without a doubt this can be done Sienna. We use API's every single day of our lives in some fashion or another which. These API's are nothing more than a library of classes designed to "wrap" all of the complicated lower level code into a neat little package so that the vast majority of programmers can understand how to use it.

Sienna
04-22-2008, 09:51 PM
I think you're missing the point;) We're not discussing what language the TRS is going to be developed in (at least not in this thread).
I wasn't talking about language here, just drawing an analogy to power versus ease of use.

Here in this thread, the discussion (well my understanding of it) is how this system will look (and be interacted with) to users of the system, not the developers that will be helping to build the tools of the TRS. How we expose the TRS to users of the system is a totally different ballgame all together and is why I am pro-web services.

During every step of the developmental process of the TRS, we need to constantly keep the end user (our target audience) and ask ourselves "Is what were building here simple enough for beginning high-level developers to understand?".
Thats why I asked the question. We need to establish a minimum level of 'skills' needed to both develop the system, and to use the system. Honestly, 'no skill' will never be a valid use criteria. Software takes some skill to use, even something as dead simple as notepad.

Without a doubt this can be done Sienna. We use API's every single day of our lives in some fashion or another which. These API's are nothing more than a library of classes designed to "wrap" all of the complicated lower level code into a neat little package so that the vast majority of programmers can understand how to use it.
I guess my ultimate question is going to be "How many levels of API do you plan to release to satisfy the needs of novice through power users?"

Alex
04-22-2008, 10:03 PM
We need to establish a minimum level of 'skills' needed to both develop the system, and to use the system.Absolutely, and with that said Sienna, it sounds like I may have misunderstood you;)

There are actually three questions that we need to discuss here:



What level of developers are we targeting for the development of the TRS?
Once the TRS is built, what level of developers are we targeting for companies and individuals that wish to plug into (interface their products with) the TRS?
What sort of "people" are we targeting to use this system once it is built?

darkback2
04-22-2008, 10:09 PM
ok...I know I'm probably beating a dead horse...or not. Some robotics programs, and understand I use that term vary loosely have increasing levels of difficulty and power. For example if you look at the robotics software that came with the first lego robotics system, it had different levels...levels for beginners that had pretty much pre-scripted sections of code that had very little power, and also had levels for more advanced users where you could program the robot controller in basic I believe.

I use MAX/MSP. It is a very easy to use program, but also has the potential to do all of the things that I want to do (and no...I don't have a 4 year degree in computer science...though I do have a 2 year MFA in computer based art/music...) I would love to have access to a programming toolbox through which I could have a step up gaining the skills that "real coders" have.

I hope I explained this well enough.

DB

Wingzero01w
04-22-2008, 11:06 PM
Well i support the ~16 adaptability criteria because im naturally around that age range and i would like to see something useful to the age group... and to any intermediate/starter builder. But i also agree that there should be a very advanced side to TRS for the high level developers who want a number of tools to use. I personally think it should be in choices like Starter -> intermediate -> advanced user so everybody can be happy.

metaform3d
04-22-2008, 11:10 PM
As someone very smart said (although I can't find the reference even with the Google): "Simple things should be simple, while complex things should be possible."

I think it's correct to target a range of project goals and experience; this is the norm for a layered system. At the highest levels you find less ability to customize but a lot of encapsulated power, while at the low levels you have the power to customize but have to put a lot of things together yourself. A well-designed hobbyist system gives you a kind of sliding scale.

Sienna
04-23-2008, 06:32 AM
There are actually three questions that we need to discuss here:



What level of developers are we targeting for the development of the TRS?
Once the TRS is built, what level of developers are we targeting for companies and individuals that wish to plug into (interface their products with) the TRS?
What sort of "people" are we targeting to use this system once it is built?



Yep, thats exactly what I wanted to ask.

And I was thinking of something else last night too:

Why are the vast majority of open source projects out there hard to use? Because developers make tools that they can use themselves. Why hasn't Linux won the desktop? Because it will never be easy as Windows or Apple. Most developers aren't altruistic, in that they give their time to make complex software accessible. How do commercial packages get easier to use then their open source counterparts? Its because companies pay developers to do the distasteful work of bringing it to the masses. Its called a job.

And I think that the development of the TRS is going to fall prey to the same paradigm. An open source development effort can make the system work. I am happy to contribute here because I expect to use this on my own bots. Up to a certain level. When the APIs are done for the lower levels, I don't know if I personally will be helping much to abstract the system to the point a 16 year old can use it, because honestly, I am not a 16 year old, and will never use that layer. Maybe there are enough altruistic people out there to help the masses, but I don't delude myself that I am one of them.

Droid Works
04-23-2008, 07:01 AM
Yep, thats exactly what I wanted to ask.

And I was thinking of something else last night too:

Why are the vast majority of open source projects out there hard to use? Because developers make tools that they can use themselves. Why hasn't Linux won the desktop? Because it will never be easy as Windows or Apple. Most developers aren't altruistic, in that they give their time to make complex software accessible. How do commercial packages get easier to use then their open source counterparts? Its because companies pay developers to do the distasteful work of bringing it to the masses. Its called a job.

And I think that the development of the TRS is going to fall prey to the same paradigm. An open source development effort can make the system work. I am happy to contribute here because I expect to use this on my own bots. Up to a certain level. When the APIs are done for the lower levels, I don't know if I personally will be helping much to abstract the system to the point a 16 year old can use it, because honestly, I am not a 16 year old, and will never use that layer. Maybe there are enough altruistic people out there to help the masses, but I don't delude myself that I am one of them.

There are allot of I's in your post. No offense but it seems like you are only interested in Tailoring TRS to your needs. TRS has the potential to change the future of robotics. Forgive me for lack of a better comparison but robotics today is much like the computer industry was before windows. The technology was there but no universal way the average person could use it. TRS could be the standard for robotics or windows of robotics. It seems to me that making it user friendly is what will get you the funding and resources you need to make something that everyone is happy with from the 16 year old kid to the uber coders. Keep in mind the first version does not have to be the final version. But the first version is the one you bring to market and there are allot more 16 year olds than coders. Basically what I am trying to say is you have to look at the big picture and have patience. If its done right the possibilities are endless. I believe that TRS can be a landmark in Robotics history.

Sienna
04-23-2008, 08:58 AM
Let me start out with a disclaimer: I do not work for Trossen Robotics. My views are not Matt's or Alex's. So, when I post, I represent only me. Hence, all the I's.

And about the computer 'revolution', if you want to know how I really feel, the average person SHOULDN'T be using computers. Because they DON'T understand them. How else do you think spam has become 93% of the traffic on the internet? Because the average person with a computer doesn't know enough to even perform basic security. In college, I worked part time at a helldesk. You would be surprised at how many people lose even common sense when they are confronted with that beige/black box.

So now we are facing the same issue with robotics. No one has asked yet if the average person having access to robots is a good thing. People screwed over computing and the internet. Do you really want them doing the same to robotics? I believe that in some things bars to entry are a Good Thing. For instance, you don't license a car to someone without them proving they have some minimum facility with it. Same for handguns, nuclear reactors, etc. I believe it should be the same with computers. I believe it should be the same with robotics. Call me a cynical b***h, I really don't care.

All that said, if *you* feel so strongly about bringing robots to the masses, I take it you are volunteering to help on that front yes? If so, then please feel welcome, as this project will need all the help it can get!

Alex
04-23-2008, 09:19 AM
When the APIs are done for the lower levels, I don't know if I personally will be helping much to abstract the system to the point a 16 year old can use it, because honestly, I am not a 16 year old, and will never use that layer.

And that is perfectly fine Sienna. I really hope that everyone here would respect that decision because it is yours to make. The beauty of open source development is that it "isn't" a job, there is nothing tying anyone down to picking up and moving on.

That aside though, provided of course we build the TRS correctly, since we're developing this system with so many levels of abstraction, other companies or a new team of open source developers can come in, analyze the system and create a sweet Integrated Development Environment (IDE) for the younger, non-programmer, audience. Who knows, maybe this could be the place that some big name company can come in and make some money on the TRS?

I hope all that made sense.... I'm still trying to wake up here...

Droid Works
04-23-2008, 09:25 AM
Let me start out with a disclaimer: I do not work for Trossen Robotics. My views are not Matt's or Alex's. So, when I post, I represent only me. Hence, all the I's.

And about the computer 'revolution', if you want to know how I really feel, the average person SHOULDN'T be using computers. Because they DON'T understand them. How else do you think spam has become 93% of the traffic on the internet? Because the average person with a computer doesn't know enough to even perform basic security. In college, I worked part time at a helldesk. You would be surprised at how many people lose even common sense when they are confronted with that beige/black box.

So now we are facing the same issue with robotics. No one has asked yet if the average person having access to robots is a good thing. People screwed over computing and the internet. Do you really want them doing the same to robotics? I believe that in some things bars to entry are a Good Thing. For instance, you don't license a car to someone without them proving they have some minimum facility with it. Same for handguns, nuclear reactors, etc. I believe it should be the same with computers. I believe it should be the same with robotics. Call me a cynical b***h, I really don't care.

All that said, if *you* feel so strongly about bringing robots to the masses, I take it you are volunteering to help on that front yes? If so, then please feel welcome, as this project will need all the help it can get!
I understand how you feel, I worked in the IT field for 12 years. But its about moving this project forward. My and personal belifes and your personal belifes are irelevent. We have to think about what is the clearest path to sucess and apprach it from a profesional standpoint rather than a personal one. And no matter how you look at it the best path is maketability and useabilty.
I am always willing to help in any way I can. I am currently working on a project with matt. Belive me If I had the skill to help I would be more than happy to. But by no means am I expert in any of the C lang's. I have basic C skils. My main lang is VB. But I do know the industry and one thing is for sure it has to be marketable or it will end up just like MSRS.

metaform3d
04-23-2008, 09:46 AM
One of the growth areas for robotics is education, and there are only a few systems intended for that market. That's a reason -- beyond simple altruism -- to create a TRS layer targeted at the beginning programmer. The mentors of educational robotics programs are clamoring for an easy-to-use, customizable, standard software architecture, and TRS has the a huge opportunity to get a foothold there. Provided MSRS doesn't get there first.

Droid Works
04-23-2008, 09:53 AM
One of the growth areas for robotics is education, and there are only a few systems intended for that market. That's a reason -- beyond simple altruism -- to create a TRS layer targeted at the beginning programmer. The mentors of educational robotics programs are clamoring for an easy-to-use, customizable, standard software architecture, and TRS has the a huge opportunity to get a foothold there. Provided MSRS doesn't get there first.

You hit the nail on the head. I could not have said it better my self.

Wingzero01w
04-23-2008, 10:03 AM
One of the growth areas for robotics is education, and there are only a few systems intended for that market. That's a reason -- beyond simple altruism -- to create a TRS layer targeted at the beginning programmer. The mentors of educational robotics programs are clamoring for an easy-to-use, customizable, standard software architecture, and TRS has the a huge opportunity to get a foothold there. Provided MSRS doesn't get there first.

Excellent summary... i think TRS would be excellent if it included begginer to expert levels.

Matt
04-23-2008, 10:36 AM
Okay, everyone let's get back on topic.

I think I can answer your question Sienna. In the long term we want to see what is being created reach all the levels, even down to really young kids. But that isn't the immediate goal or scope at all.

The immediate goal is to reach your average application developer / programmer. In my mind that means a person should be able to load up the TROM, SCL, add the rendering tool, and what ever simple GUI we build into their development environment of choice and rock and roll. The GUI for the TROM doesn't need to be anything more than an expandable tree control tied to a properties grid. I'd like to see the algorithm library evolve along with this project, but even that is not crucial to getting started.

We aren't focusing on building robotics development environments or motion editing programs or anything near that level. That will be the job of people who come after and wrap up what we've done and layer more tools on top. To begin, you would need to be a fairly smart self starter who is good at developing. The basic tools we have on the table at the moment get it to that level. It will be the job of the person/company with their own goals to take it from there. In the other thread you even listed out more components than I'm scoping into the core list. IE: I'm keeping the scope pretty darn tight on purpose :)

Look at it this way, the TROM and the SCL are the absolute core and low level developers can go nuts at their level with merely those two things. The rendering tool, simple GUI, and algorithm library are the 3 things high level app developers need to dive in. Those are really just a layer of tools ontop of the TROM & SCL that make life a whoooole lot easier for your everyday programmer.

Pictures are worth a thousand words so we made some screen shots of the TROM GUI Alex had built. Top Left is the expandable treeview control, bottom left is the properties grid, on the right is a rendered robot I just totally stole off the internet and slapped in there as a place holder for the rendering tool :) Ideally I'd like to see us rebuild this GUI for the new TROM. It's sweet and simple and intuitive. It allows people to build, edit, manage, watch their robot. But building the actual robotics program... that's up to the developer ;)

236

237

PS: DroidWorks is doing a TON for this cause, starting a company with his own money and evangelizing like mad at all the schools and planning to launch an east coast robotics event. He's a one man army for this cause.

Adrenalynn
04-23-2008, 10:37 AM
Why hasn't Linux won the desktop? Because it will never be easy as Windows or Apple.


Largely a misnomer, IMHO. Are you contending that $20,000,000,000 in marketing has nothing to do with the process? That's just one of the companies over a handful of years.


Most developers aren't altruistic, in that they give their time to make complex software accessible.


Most developers that I've worked with on Open Source projects do it because they love banging-out code...


How do commercial packages get easier to use then their open source counterparts?


Many commercial packages start-out open source, bring it in-house, hire some graphics artists to make it prettier, add a call center for support, and call it the commercial version. Sage and Sugar CRM is an example.


Its because companies pay developers to do the distasteful work of bringing it to the masses. Its called a job.


They also pay sales teams, marketing teams, graphics artists, and people to empty the trashcans.


And I think that the development of the TRS is going to fall prey to the same paradigm.


One reaps what they sow. It's largely about mindset. If you want to hit the moon, aim for the stars.


An open source development effort can make the system work. I am happy to contribute here because I expect to use this on my own bots. Up to a certain level. When the APIs are done for the lower levels, I don't know if I personally will be helping much to abstract the system to the point a 16 year old can use it, because honestly, I am not a 16 year old, and will never use that layer. Maybe there are enough altruistic people out there to help the masses, but I don't delude myself that I am one of them.

The successful Open Source projects that I've experienced tend to have several types of developers. Those that want to see one or two things done and undertake those one or two things and then fade away, and there's a core team that sticks with the project through thick-and-thin. And then there's a couple more types - but those aren't important right now...

I've officially volunteered to undertake the, as you would probably have it, rather "distasteful" undertaking of doing the port. I'd rather be writing spiffy algorithms and nifty math. Without a port, those are kinda useless. So I do what needs to be done to get the project to where those things count. I was doing ports when 16k of RAM was useful, 64k of RAM was substantial, and "no one will ever need more than 640k of RAM". If someone offered me money to port software today - I'd likely laugh at them. Sometimes groking the bigger picture requires checking my ego at the door and looking at what I want in six months, and what I want in 18-24months. I think assessing where my ego is interferring with opportunity is something I've learned over the last ten years or so. Hard lessons...

Alex
04-23-2008, 10:37 AM
As Droid pointed out, a lot of people aren't (and I will be blunt here and quite probably insult people*) 'real' coders.

You state (which implies that you have a strong feeling) that it may insult people, so why say it? There are plenty of more PC ways of stating your point.

The common and accepted terminology for what I believe you are getting with is:

Low-level developers: C/C++, Assembly, Fortran (anybody still use that?), and I'm sure I'm missing a ton
High-level developers: VB, .NET, Java, Max/MSP, Actionscript, etc.

I'm not sure where things like Matlab, Labview, Python, etc. would fall under because I don't have any experience with them.

My point is just because someone does not know low-level programming languages, does constitute them being a "real" coder. It is very insulting and quite condesending to speak in this way.

Matt
04-23-2008, 10:41 AM
PLEASE, everyone, let's get back to the topic. My post just got washed into this flood of various "stuff" please scroll up and check it out, I answer the question and so we can move on to more fruitful things :)

Alex
04-23-2008, 10:43 AM
The GUI for the TROM doesn't need to be anything more than an expandable tree control tied to a properties grid.

*gasp* Windows terms!! Please look past what our all mighty leader stated and see the point that he was getting at;)

Matt
04-23-2008, 10:47 AM
You can take the boy out of the dark side but you can't take the...

Adrenalynn
04-23-2008, 10:52 AM
Matt - my apologies. I hadn't refreshed prior to posting my reply.

Matt
04-23-2008, 11:14 AM
I actually gave another decent summary of the TRS philosophy on another thread. Post #2 (http://forums.trossenrobotics.com/showthread.php?t=1693), please take a minute to check it out as it sums up nicely what we are trying to do and why.

Adrenalynn
04-23-2008, 11:47 AM
*gasp* Windows terms!! Please look past what our all mighty leader stated and see the point that he was getting at;)

Just to keep it "real" here (and appreciating the humor and all) -

Trees and properties aren't MS Windows-inherent concepts. I know property pages were in xwindows display managers from very early on. I think trees are implemented in the window manager and/or the display library, so are probably later. But they are most definitely there regardless of where they come from.

A little research says that Windows had 'em first, Motiff later. Python even has a native tree control... Point being - those concepts are pretty universal, so Matt wins this one. Hah! :tongue:



http://www.jlrdesigns.com/tree.gif

Alex
04-23-2008, 12:14 PM
I stand corrected:)

LinuxGuy
04-23-2008, 12:56 PM
Ok, I have to ask this question.

Who are we targeting this system at?

Again, this will need to be discussed in multiple segments:

1) You have the people developing the TRS

2) You have the people using the TRS
We, the developers, maintainers, and administrators, of TROM will also be its first users. This can be both good and bad if we don't watch how things come together. We can't do much to get TROM out into the masses until we first create the software and prove it can work on a real robot. I think the lowest level we should target here would be the usual two wheeled rover most build as their first robot - the BOE-Bot type robots. W.A.L.T.E.R. is still in this class, albeit getting much more advanced as far as the software, sensors, and ability to interact with the environment go.

All levels of users can be targeted with TROM. How? In the language APIs we will create that will make TROM accessible and usable. I still like to go back and play with the easy software, and I still want a LEGO Mindstorms kit, as well as the more advanced Bioloid Comprehensive kit. I am a tinker/experimenter at heart - I always have been and always will be. I will always be a Toys 'R' Us kid.

My point is that we can create APIs to handle all levels of user, from the person just starting out with their first robot, to the person who is always reaching to do more. There are always those who push a given system, perhaps beyond what its developers ever thought it could or would do, but certainly beyond what it was designed to do.

Let's handle this with the same approach Phidgets has taken. APIs for as many languages as we can see actively being used to develop robotics, animatronics, and process control projects. Yes, there is a bit of robotics in all of these.

The way we wrap around TROM is what will define how it can be used and who might use it at each level. We do not need to confine ourselves to a single API either. We can create the drag and drop type of environment, which would appeal not just to kids, but maybe to their parents also. Kids are getting smarter faster all the time, and at younger ages. Parents are having an increasingly difficult time keeping up with their kids, as far as education goes. We have the possibility of making parents' jobs easier.

Think about this everyone: Our way to a standard is through kids/students and education at all levels. When education embraces a system, whether hardware, software, or both, that system goes places quite fast, verses something education turns its collective back on.

As Droid pointed out, a lot of people aren't (and I will be blunt here and quite probably insult people*) 'real' coders. They are business application developers, maybe web programmers, etc. They might be able to use C#, they most likely use VB or similar. I suspect a good majority do not have a four year bachelors in computer science.
*: I am waiting for the machine code programmers say the same to me that I am not a 'real' programmer because I program in C :P
I always find the limits of any system, whether it be hardware and/or software or a combination. If there are bugs in a system, I will trip over them or otherwise find them. The closest thing I have to degrees are my high school diploma and a one year diploma in electronics technology. My friends tell me I am a rare breed, but I have never been quite sure what they mean by that. I can look at a given system from pretty much any level and tell if it will or will not satisfy that level of user. We can make robotics easier and more accessible to more users. I believe we can address all levels of expertise.

Matt is right, in that it is probably unrealistic to expect these people to have to make a CORBA function or similar. SOAP may be the most complicated thing they understand, and that may be a stretch.
I agree completely! That's why we need various levels of API that expose increasingly more of TROM to the user. We also need to allow for making lower levels of TROM available at higher levels of API. There will always be users who can do pretty much everything they want within a single level of API, but there is this one thing they need to do that requires a lower level API function. I am always that kind of person! :happy: People like me are always reaching beyond what they can do with what they have.

But, just like you can't develop a VB IDE in VB, you need another set of developers who know 'lower' level languages. You need people who make the C code to actually make the IDE work. (Or, in our paradigm, maybe the people who write device driver abstraction levels)
This would be the interface designer and developer. They usually know multiple programming languages and systems, work with several different operating systems with ease, and know how best to connect one thing to another and make it usable by a given level of user. These people can make or break a system, regardless of how well the system is designed and how well it works.

I guess what I am trying to get at, is what are the skill levels we plan on targeting the various levels of the TRS to? (I imagine the answer will be that the TRS is really a very heirarchical system, with levels of abstraction taking each higher level higher in the language chain and conversely more accesible to hobbyists.
Let's do as Phidgets has done, which seems to work very well. We can do the same, and create APIs for each language that offer increasingly lower level access, like going up in an elevator. Each floor or level lets a user do more things. Each level of API also offers a way to plug into lower level functions if required.

Obviously we are going to need APIs for C# and VB, and like it or not, we should address those first. Even though these are platform and OS specific, these will open more doors for us at the outset than others, except perhaps Python would. Python is also being used a lot in higher education, but I don't know if it is used at other levels of education. We will need to have the education community's endorcement, meaning APIs kids can use from K - 12. Yes, we need to include all grades so we don't miss the talented and gifted kids at each level.

8-Dale

Adrenalynn
04-23-2008, 01:11 PM
But, just like you can't develop a VB IDE in VB, you need another set of developers
who know 'lower' level languages. You need people who make the C code to actually make the IDE work. (Or, in our paradigm, maybe the people who write device driver abstraction levels)



Sorry - but I think the air needs to be cleared a little bit here...

Yes - I can develop a VB IDE in VB. In fact, a VB IDE in VB is an ideal application for VB.
Please don't presume to tell other engineers what they can and can't do, just as they've made no presumptions upon your capabilities.

LinuxGuy
04-23-2008, 01:21 PM
So now we are facing the same issue with robotics. No one has asked yet if the average person having access to robots is a good thing. People screwed over computing and the internet. Do you really want them doing the same to robotics? I believe that in some things bars to entry are a Good Thing. For instance, you don't license a car to someone without them proving they have some minimum facility with it. Same for handguns, nuclear reactors, etc. I believe it should be the same with computers. I believe it should be the same with robotics. Call me a cynical b***h, I really don't care.
We shouldn't even worry about this. We can not be responsible for how a person uses what we help create. There will always be those who will misuse something, regardless of what it is. This is not for us to decide or be concerned about. We can not control what people do or how they use something, whether right or wrong. Like it or not, we have free choice, and should not attempt to control who uses TROM or how they use it. We can only hope that appropriate laws will come about that will decide what is or is not legal to do with a given item.

8-Dale

Matt
04-23-2008, 01:34 PM
We shouldn't even worry about this. We can not be responsible for how a person uses what we help create. There will always be those who will misuse something, regardless of what it is. This is not for us to decide or be concerned about. We can not control what people do or how they use something, whether right or wrong. Like it or not, we have free choice, and should not attempt to control who uses TROM or how they use it. We can only hope that appropriate laws will come about that will decide what is or is not legal to do with a given item.

8-Dale

This response is pretty much on the button. It's not our concern nor place to worry about this. The earlier comments by people are also spot on that various levels of APIs, tool, environments can and will eventually be built to allow all kinds of entry levels.

>>>Call me a cynical b***h, I really don't care.

Well I do. I don't want this kind of antagonistic commentary in here. It's not the place. There is a line between thoughtful debate and emotional arguing, let's stay on the nice side of it please. I'm really close to locking down the thread.

darkback2
04-23-2008, 02:08 PM
Could we start out with a dictionary for us non-coders? Also, I think you could get somewhere if everyone who contributes includes lengthy directions/documentation, and a robust help system. One thing that is cool in MAX/MSP and the LEGO NXT software is that each object has a full help file includeing examples that you can either access from a menu or pops up as a mouse rollover. Obviously this would make TRS huge. Perhaps we could have the option for more advanced users of downloading TRS without the instructions when not needed.

DB

PS...Matt...is this the kind of post you are looking for?

LinuxGuy
04-23-2008, 02:11 PM
PS: DroidWorks is doing a TON for this cause, starting a company with his own money and evangelizing like mad at all the schools and planning to launch an east coast robotics event. He's a one man army for this cause.
I am going to introduce TROM at our next PARTS (http://www.portlandrobotics.org) meetings also. We have a good following in local education. I'm sure a lot of folks will be interested in TROM.

8-Dale

Matt
04-23-2008, 02:43 PM
Could we start out with a dictionary for us non-coders? Also, I think you could get somewhere if everyone who contributes includes lengthy directions/documentation, and a robust help system. One thing that is cool in MAX/MSP and the LEGO NXT software is that each object has a full help file includeing examples that you can either access from a menu or pops up as a mouse rollover. Obviously this would make TRS huge. Perhaps we could have the option for more advanced users of downloading TRS without the instructions when not needed.

DB

PS...Matt...is this the kind of post you are looking for?

Hey Darkback :)

I'm sure documentation will all be there as things get built. But you will have to wait awhile before you find a cozy environment like MAX/MSP or LEGO NXT. Non-coders aren't the target right now. You are describing an end product that will eventually evolve from people building ontop of TRS, but not in the initial stages. This post (http://forums.trossenrobotics.com/showpost.php?p=8601&postcount=21) explains the initial target audience fairly well.

Matt
04-23-2008, 02:43 PM
I am going to introduce TROM at our next PARTS (http://www.portlandrobotics.org) meetings also. We have a good following in local education. I'm sure a lot of folks will be interested in TROM.

8-Dale

AWESOME :) :) :)

LinuxGuy
04-24-2008, 12:43 AM
I'm not sure where things like Matlab, Labview, Python, etc. would fall under because I don't have any experience with them.
I would consider these higher level end user and developer applications and languages (in the case of Python). Python is an interpreted OO and scripting language.

My point is just because someone does not know low-level programming languages, does constitute them being a "real" coder. It is very insulting and quite condesending to speak in this way.
I used to program in six different languages at various levels. I used each one for different purposes or because it was required. I don't really know where I would come in at in the scheme of programmers, and it's really not important to me to know. I just do what I do to the best of my ability to contribute and help where I can. I never did like categories and labels and it would probably be extremely difficult to put me in any particular category.

8-Dale

Ravenseye
05-11-2008, 01:56 PM
Let me offer another point of view.

I have no use for code.

I've been talking with Droid when he comes into my shop about 'bot programming, and to be honest, it's daunting for me to even think of typing code up for this. I can and will do it if it is necessary, but I'd prefer to have a set of preset codes that I can copy/paste into a routine to make something work.

I know that some folks will probably react as if I had raked my nails across a blackboard, but it's the truth of things from my perspective.

Maybe I can be a good testbed for you guys, I have no idea what I am doing with code, but I want to get in on the fun!

Who do I talk to?! :)
-Mike

P.S. for all the code weavers out there, I really really admire that you can sit and write it for the time you have to to get where you want to go...I just don't have that in me, and I still want to play with the toys afterwards! :)

Adrenalynn
05-11-2008, 02:48 PM
Different strokes and all that.

What we're building isn't targeted at folks such as yourself. It's targeted at a step below what you're looking for. It's the building-blocks that make up the turn-key package that you're looking for. We're building the piece that lets other programmers take those bits and turn them into a finished product.

You're just in a bit early. ;) Building stuff like this takes lots of engineers lots of time. We're looking to eliminate some of the re-engineering that goes into this stuff time and time again.

Ravenseye
05-11-2008, 03:13 PM
Oh! oops...sorry! I guess I should read about the whole project before I wander in, eh'? :)

-Mike

Adrenalynn
05-11-2008, 03:28 PM
That's ok. I'm supposed to be working on a whitepaper that would help describe it better. I've just been reading through the stuff from Matt and thinking about fixin' to get ready to write a whitepaper. ;)

nbdeveloper
05-24-2009, 09:40 AM
I'm re-writing my first post...

Being a high level developer (its a huge job in itself that can be every bit as complex and powerful as low level development) I REALLY like being able to interact with 3rd party toolbox controls in Visual Studio. When I was first starting out my first intro was dragging and dropping buttons and textboxes onto a winform. I know control development can be challenging (what with the render time attributes and such) but if you've got an opportunity to do something like that it would bring developers in too.

Companies like Infragistics, ComponentOne and NetAdvantage have grown quite a bit in the last few years because of the footwork they do for developers. It let's me focus on the business logic of my software and let's the UI look and work good without having to code it all myself.

Also, using an ORM tool and building the DAL code auto-magically is another big plus in the development world. Maybe you can make a HAL code generator that stubs out some object model for working with the hardware?

Ok, I can't take it, I have to say this one thing...

If high level development is under powered and can't do certain things it's because the low level developers didn't build it in so it's not our fault. I swear that's all I'm going to say about it.

If you're getting broad enough to include kids (my wife is a gradeschool teacher) the highest levels should be obvious and match the physical attributes of the robot design. That's all kids are going to grasp anyway.

What about applying an n-tiered design to your object model that helps to abstract the layers for the different skill levels? Depending on the library that someone chooses more or less things are opened up to them. This gives them the ability to go as deep as they want.

FWIW I've not see library development done this way but generally they don't have such a broad demographic target either. I REALLY like the idea though. I think I might try and make it to the PART meeting June 6th.

Where is the TROM project at? SourceForge? I could carve out some time to contribute...Gotta love Trossen.

Adrenalynn
05-24-2009, 12:51 PM
I think it's really not a development tool in the way you're thinking of development tools.

It's not yet released to public consumption, although I understand some huge strides have recently been made towards that end.

Alex
05-26-2009, 02:43 PM
Being a high level developer (its a huge job in itself that can be every bit as complex and powerful as low level development) I REALLY like being able to interact with 3rd party toolbox controls in Visual Studio. When I was first starting out my first intro was dragging and dropping buttons and textboxes onto a winform. I know control development can be challenging (what with the render time attributes and such) but if you've got an opportunity to do something like that it would bring developers in too.
One of the later goals of the ROM (much later goals) is to build an interactive IDE where you can drag and drop individual components of a robot onto a rendering control and piece together a robot inside the rendering control.

What about applying an n-tiered design to your object model that helps to abstract the layers for the different skill levels? Depending on the library that someone chooses more or less things are opened up to them. This gives them the ability to go as deep as they want.Taking your code from one of your original posts:

public class Hand : Fingers
{
public Hand()
{
Thumb leftThumb = new Thumb();
}

public void MakeAFist()
{
Hand.leftThumb.Collapse();
}
}Actually, this is very similar to the current architecture of the ROM. The ROM will give the developers the tools necessary to break it down to this point of abstraction with relative ease. Right now, it's more generically broken down into pieces of a robot (rods, wheels, joints, etc.).

nbdeveloper
06-08-2009, 05:27 PM
Thanks Alex. I know some of my posts seem off the mark and even irrelevant because I'm so new to robotics, I'm still acclimating to the community too. Sorry for posting, since I'm not part of the project...

Alex
06-09-2009, 08:56 AM
Thanks Alex. I know some of my posts seem off the mark and even irrelevant because I'm so new to robotics, I'm still acclimating to the community too. Sorry for posting, since I'm not part of the project...

No apologies necessary! All of the discussions you see here are public for a reason: It's a community project that everyone here is a part of and able to chime in on. I don't think your posts seem off the mark or irrelevant at all. Part of the intention of the TRS was to help developers such as yourself pick up robotics much easier:)