
feroze
USA
Asked
— Edited
Hello All!
I recently ordered my EZ-B Complete Kit and can't wait to receive it.
One of my main interests is writing various programs for the robot so it can act on it's own (autonomous) without me having to control it's every move.
I just want a clarification on how you do this with ARC? Is this done with scripts?
Something like this: http://www.instructables.com/id/My-Autonomous-HomeMade-Wall-E-Robot/
Did DJ Sures do this with ARC or EZ-SDK?
Would I have to use EZ-SDK with Visual Studio to write custom logic? So I would basically follow the visual studio ez-sdk controller tutorial. Then I would have access to all the classes and methods to control EZ-B. That would allow me to write custom program and then run it?
Thanks so much!
It's possible with ARC.
I believe DJ wrote code specifically for the Omnibot, which is available in the C# SDK however, it is not required. You can do everything (and more) in ARC with the built in controls and the very powerful EZ-Scripts.
Unless you have any reason not to, I would suggest using ARC.
Ah so you would use the EZ-Scripts to make the robot autonomous?
Also if you want to be able to store data from the robot to be recalled at a later time, is this possible with EZ-Scripts?
@feros I also had the same questions. There is a Random Personality Generator. Just fill it with things you want it to do or scripts or what ever, then set the time interval between actions and your all set.
This is a pseudo version by there's a list/table and each one of those is an action so on one line I have
Servo(D0,90) Servo(D1,90)
then in the next one I have something like
CommandControl("Sound Board",track_0)
(or something to that effect)
I originally thought I was going have to write a ton of code to do this but I just made a few scripts and called them in the RPG and my little guy will randomly move around, spout out some sound bytes from sealab 2021, throw it's "arms" in the air and spin around. I had some talk commands for a minute but i pulled them in favor of the sound bytes for now. I did this all in about 45 minutes after I discovered the Random Personality Generator.
Sure you can write you own and get super detailed with it but, if you just want to have something that appears autonomous until you can get more experience with the ezb system the RPG is awesome. That's what I did and that's where I'm at.
As far as reading data I believe that some you can and some you can't. I know you can read the positions and speeds of the standard servos that come with the kit. But (I may be mistaken here) I think that you CAN NOT read the position of DC motors or modified servo positions. I think DC motors do not have a data wire. (I'm still learning alot of this myself)
I hope that helps.
That does help. But can you have the robot react to the environment with EZB Scripts? Can you store data from the robot to be recalled at a later time in the program with EZB Scripts?
@feroze. Yes there are several ways. I've only messed with my ezb a little but I'll tell you what I know. The camera has tracking and recognition options. Color, face, glyph, rqcode, and I think 1 or 2 more. Those can be set to work in various ways. This is where I'm currently playing around. They can be set so that the robot will move to follow and/or avoid? I'm not sure about avoid. But it appears that it tries to move in order to keep an object within its view finder.
Then there's a way to set it to where servos for arm(s) and cameras (probably will be your head) so that the whole robot wont move to follow but just the camera or arm(s). I've only just started playing with these so I don't know much about them.
Now something I know even less about. You can do avoidance with the UltraSonic sensor that comes with the EZ complete. I have not hooked mine up yet. I'm moving soon and didn't want to get to invested in it here when I'm about to have a fantastic work space. (Close on Wednesday ;-) So while I'll be getting into these things more in a few weeks but I do know they can be done.
As far as storing data. You can create Variables but I'm not sure on the details too much or their "Life Time". I've messed with the keyboard controls a little and set variables to store a couple of servo positions and then I set the positions using the variables with a different key.
And none of it seems too complicated. And if you have doubts, just ask. The EZ peoples, company and customers are all amazing people. I'm just trying to be helpful and more like them ;-)
What a powerful platform, it can do so much "out-of-the-box"
I think I will start programming my robot with EZ-Scripts to get familiar with the commands then move onto C# to write more complex programs. The methods names are probably the same...
I wouldn't even bother with C# unless you have good reason to do so. You'll find the controls built into ARC will be sufficient in most cases and where they aren't then EZ-Script is powerful enough to do most other things.
Can you give a specific task example for what you are expecting to need to use the SDK for.
You can store data using data files and the WriteFile (or FileWrite I never remember which way round it is). This will store the data for as long as the file is there. I haven't touched the file methods yet but I'm sure there are ways to "import" data too.
To be honest, you would be better off thinking about what algorithms and functions you are planning for your robot that way we can give specific answers. Until we know what it is you are planning we can only give generic answers and no real help.