Asked — Edited

Programing Jd

I know this must be easy but I just can't find the right settings. I want JD to just see something moving and respond with speech. I also want JD to see a color and not get confused with movement and announce it. Can these both be run at the same time? Is there and activity to help with this movement recognition? Thanks All Ron User-inserted image


Upgrade to ARC Pro

ARC Pro will give you immediate updates and new features needed to unleash your robot's potential!


There is a section of the website called LEARN. You can access it by pressing the LEARN button from the top menu. We have put a lot of effort into the learn section with a great number of tutorials. It's always a good idea to start small with a goal in mind. Learn to hammer a nail before building a house :)

There is a course in the learn section titled Activities. I would recommend completing the activities to get an idea of how to start programming your robot.

If you need more information regarding the learn section, there is a video on the learn home page. That video explains the section and what to expect.

All of the information that you will need is in the learn section. Have fun!


I did check but I didn't see the movement section mentioned. Thanks Ron


Check the camera control under tracking... tick the motion tracking box and presto JD will track motion (well almost)...

Now go into the config part of the same camera control... and tick the box that says "enable servo tracking"... You might have to set the x and y servos if they aren't already set below... Now locate the script tab above... In the Tracking script type in what you want the robot to say when he sees motion (using the say() command of course)....

If you do this right, every time your JD sees something move he will report it...


Thanks Richard I didn't think it explained it. I did go through activities and did do the color recognition but movement is different. Once you get J Dto read movement does it turn off the color recognition while JD is running movement? I did do what you said in the beginning of this but I didn't do anything with enable servo tracking. I did check off enable movement. What does enable servo tracking have to do with the motion of something in front of the camera moving? Sorry if I'm asking too many questions. Thanks very much Ron


Oh boy I give up... @Nomad help this guy will ya'? :P

You don't need to enable the tracking servos but if you do, JD will track or follow the colour, object or face instead of just staring blankly straight ahead... your choice...


Servo tracking will allow JD to follow an object with his head. Alternately, you can have him move to follow the object with his body, or simply populate variables when he sees something cross his vision and use those variables in a script to announce it.

You can have a couple of tracking types selected (color and movement) but if you use too many, he will get confused and not track anything.

While testing however, just do one type of tracking at a time, particularly while training the color tracking, you don't want him moving when you are trying to get him to recognize a colored object that just happens to be moving.

This activity gives a good overview of object tracking:

The activity was specifically designed for Six or Roli, but it will work with JD as well, he just moves slower so it is harder for him to do a movement action on a fast moving object.



Whats with this Richard Oh boy I give up... @Nomad help this guy will ya'? Am I too stupid? I said thanks for your help. I said I didn't see motion explained in the learn sections earlier as DJ said to check. No don't give up, I give up! We waste too much time telling people where to go to read something in 10 sentences to find something that can be answered in two sentences. Sorry I should have used this technique when I taught for 30 years. Asking questions is turning out to be a waste of time along with being insulted.


Relax... I wasn't insulting you... just sarcasm my friend... I am trying to get you to go and try stuff on your own... experiment to see how things work and how changing things affect the project... That's all there is to it... I can give you a fish or teach you how to fish, what would you prefer? How do you think I learned? I asked a few questions then struck out on my own... I often fell on my face, but I got up and tried again....

Cool down, load the JD Example Project and play with it.... and most of all enjoy!



do you have skype,am patrick.dierckx19 on skype


Nomad 6R I don't think I do. I hate to ask a question but here goes. I go to the camera section. I pick device than tracking I check off motion. I go to the motion Gear. I add line 1 control command(camera movement track enable) from scrip cheat notes. than line 2 sayezbwait ( "I see movement") Go down a line 3 and put stop. This does work when motion is noticed.

Than when I do multicolor I pick camera device>tracking>multicolor tab and check off multicolor. I uncheck motion. I set up for color but it says the same thing it said for motion. Aren't these 2 separate programs. I thought if I check motion it would do that program and If I check multicolor it would do a different program. If I change what it says for multicolor it says that for motion. Maybe I'm looking at this wrong. I don't see where it explains this in the learn or activities section. Ron


So, couple of things.

You don't need the control command, and in fact, it is hindering what you are trying to do. You already have movement tracking enabled by checking hte box, so the ControlCommand() is redundant (it is used to allow a script to start motion tracking).

If you are issuing this script When Tracking Starts, then it is turning on motion tracking in your second example when you are trying to do color tracking, so it is then saying that it sees motion, because it probably does.

The script executed within the camera object will always be the same regardless of the type of tracking that triggers it. You would be better off having a script running separate from your camera object that checks for changes in the variable created by the tracked object type and takes action then.

I am at work without a robot, so I can't easily do an example script now, and I am not sure I will have time tonight, but I should be able to put a simple example together for you tomorrow.



Thanks very much. I know I'm doing something wrong. I will catch on eventually. Thanks Ron



dont hate asking questions,its perfectly robotics you wil have a, thousand questions.

for the color learn with one color a time like red.

see that the pic in the camera is as bright like the pic.

User-inserted image



Thanks very much. I know I'm doing something wrong. I will catch on eventually.

I am sure you will. Like Nomad said, don't be afraid to ask questions. We sometimes will point you towards the learn section if we know an answer (or concept that will allow you to figure out the answer) is there, because it forms a great foundation, and prevents those of us who answer a lot of questions the need to answer the same ones again and again, but when you are really stuck, one or more of us will jump in and give more specific instructions.



Thanks ALL I will still be working with this and following your input. Maybe I'll get lucky. I'm working with seeing motion and saying it out loud. Also seeing different colors like the activity. It seems to have a problem if I ask it to do 2 colors like the activity. It does one color fine. I'm also wondering what the box saying point and tract does. Ron


Point and Track is actually a great example of a script which activates when a tracked object is detected.

If you haven't modified the StartTracking script in the camera object, it executes this script whenever a tracked object of any type is detected.

If JD detects a tracked object, he will lift his arm and point at it, and follow it as it moves.

See the notes from the beginning of the script:

# this script will be launched in the camera control
# when an object has been detected
# it will point JD's fingers at the object.
# This script will loop while tracking is eanbled
# If tracking is stopped by the camera or the variable is detected
# the script will stop
# A tracking type will need to be enabled before
# this script is executed. A tracking type could be
# Color, Multicolor, face, etc...
# Check the ACTIVITIES in the LEARN section of the website



I think something is screwed up here and not me. I do the multicolor activity and it doesn't point sometimes it says the colors sometimes it don't. Maybe when the battery goes low it makes a difference. Maybe my robot is nuts. I type in the directions as in the activity and it won't function correctly. Only tried it about 100 times. As for the point and track box I hit start and nothing happens. I see the info you sent for it but I don't know if there is something I have to add to the program to get it working. How long is the robot battery good for when charged up? Thanks all Ron


Hi Ron,

Let me join in and just give my ideas and suggestions.

First, Richard R is a good guy, who will give you direction so you will learn. Don't be too concerned with his "presentation". He is like that with everyone and has been very helpful to all that listen (me included). He gives you enough information to work to get the answer, not give you the answer. Nomad can confirm my statement. Alan is also a great help..

My suggestions are, first, Be sure you battery is fully charged, and you have good lighting in the room. I have found trying to get the camera working properly needs a fairly bright area.

First pick tracking of the head to the color red and confirm all works well. Next try multicolor with the same red object, then once that works, try motion. Continue slowly and step by step to be sure all works. Refer to the tutorials each step of the way if you get stuck. If you get really confused or all goes down the tube, continue to ask here. Someone will help.

Have Fun! from another Ron...

Ron R


You shouldn't need to hit start on the point script box, it is started and stopped by the start and stop tracking scripts in the camera object, but I think you may have removed those commands when you were experimenting.

You might want to start with a fresh copy of the JD sample project and try the activity again (just save your project with a different name so you can go back to it).

The EZ-B will tell you when the battery is low (incessantly). I don't know how long JD lasts on a charge. My Six only gets about 10 minutes but my adventurebot and Roli get quite a bit more. Someone with a JD would better able to answer that.

Are you using JD in AP or Client mode? If client mode so that you have Internet Access, I would be happy to schedule aome time to share screen through TeamViewer or something similar and a phone call to show you some stuff and help out. My best availability is Sunday afternoons.



Thanks very much Alan I don't even know how to check for client mode. I don't see a battery warning even after 30 mins. That bottom screen pops up for 2 seconds once in a while but don't usually get time to read it. I think I saw battery on it once. Maybe your right I should download another JD sample project. How do you get time to work with JD if the battery only last 10 or 20 minutes? Is there a way to test my JD to see if he has a problem? Thanks Ron


Thanks Ron I guess I'm running its battery down too low. I can't tell when its low. In the activities the multicolor setup I think is wrong. If done as stated it will not point. Can someone check it. The command statement seems wrong. Thanks Ron


The EZ-B itself will start saying "my battery is low" over and over again when it ia low. It may start falling off the network before that too.

The thing that uses the most power is moving the servos (which is why Six only lasts a little while) if you are just working on object identification it should last quite a while.

You can add the EZ-B Info object to your project and it will tell you the voltage of the battery.

For client vs AP mode, I'll refer you back to the Learn section. Specifically



I will download another JD and try to program it using the activity for multi color. Maybe it will work with a new down load. I get it sometimes to see two different colors but than it won't point. Than sometimes will only sees one color. I'll try it again. I will also look at that Point and Track again. Thanks for everyones help in getting me started Ron


I downloaded another JD and the same thing. The Eye led activity #1 doesn't say the speech its programed to do even in the video but it does it here. The #2 activity doesn't work unless you use a different command line and still the pointed hand doesn't go down after lifted. Its either interference here or the activities don't function properly. Because I'm sure all of you did do the activities it must be interference here causing it. Try them! I have tried them 100 times. Will continue but discouraged. Thanks Ron


you can find the batt warning on web page when you connect jd in ARC.



I would like to help you through this. I know the frustration level must be very high now and you are sick and tired of people telling you to follow the tutorials or examples when none of that seems to work. At this point you don't know if the problem lies with what you are doing or if it is a malfunction with the robot. It can be difficult for someone who is well versed in all this stuff to truly sympathize with the beginner. Especially those who have been at this for years now and get tired of repeating themselves. I understand that too. It can get to me as well.

Anyway, to help you I need to better understand your problem. There has been so much back and forth, I'm not really sure what it is you are trying to do anymore. Could you please describe, in as much detail as needed, what it is you are trying to do and exactly what you are doing to try to accomplish the task? Step by step.

Take your time and think about what you need to say to get the points across to someone else. It often helps me to pretend I'm talking to someone and explaining what it is I am doing or trying to do. Helps get your thoughts organized. Tell me as much as possible. Doesn't matter if you ramble some. Don't feel you have to be brief.




finaly somebody understand way are pics or video. its a huge diff when explanning to a programmer or a non programmer.

thank you for posting


WBS00001Thanks for your concern. I really don't know again if it a robot problem, me loosing it, or interference to the robot. If you try the Multicolor activity in activities does it work? Do it as it says. Mine will not do the arm point portion. It sometimes does the colors but the arm point it won't do. Try that first. It is very possible I have interference jamming JD. Thanks Ron


does it work with one color?


Can you build something that consistently works and gives you the correct result. This way you can confirm where the problem may be. If you are not able to get a repeatable function, we can look to see if it is a connection problem, hardware issue, or something else. If it does repeat, then we have a better idea of what is needed to help.

Just a suggestion that can maybe help identify your problem.

Ron R


It does one color but it still won't point. Try it! At the start I couldn't connect to JD with WIFI and found that wireless items in the house was causing it. Once they were turned off it connected on the first try. I am wondering if I have interference or the programing is bad or its me doing something wrong. I can't continue until I know what the problem is. I can deal with interference but not with trying to follow poor programing examples. Try the MULTICOLOR ACTIVITY exactly as it says using the command line it uses. If it works it could be interference on my side. There are other things also that are not working right and it could be interference TRY IT PLEASE! Please don't assume it works until you try it. Thanks Ron


It's not the programming... My JD with the download default project points just fine... It basically all comes down to adjusting settings/lighting etc.... But then again, I know ARC like the back of my hand...

If yours fails to do as it should, it is either because the settings are wrong, user error or one or more servos are not plugged in properly or not working at all...



i agree.if he or che dont see it with there eyes it will be diff to solved.


If yours JD works correctly when you put it the script as stated just like this

1 ControlCommand ("Auto Position ", AutoPositionAction, "Point" )
2 3 sayezbWait (" I see a" + $CameraObjectColor) 4 5 Stop() 6 7 and it works my robot is getting interference or the robot has an issue. Make sure your script is in this way as told in the activity. Thanks Ron


i just cheked the i think the color setting are not good enough.


As mentioned I am using the "stock" project with no additional scrips or mods just settings tweaks.... I am using a white background and good lighting... I check colour (single colour but it works with multi once I define the multi colours) tracking. I then hold a red object up to JD's camera and he points at it... If I want him to say something as well, I would just modify the "PointAndTrack" script accordingly with say() commands (in the right places of course)...

My tracking script in the camera control looks like this.... and it is default as mentioned

ControlCommand("PointAndTrack", ScriptStart)


Thats NOT the way its written. I said to do it like it says in the activity. You can use the script your using and it works. That works for me also but if you use the script they tell you to use it WON'T work. Can't anyone do this like it says. "PointAndTrack" script is NOT what they show you to use in the video! They tell you to use ControlCommand ("Auto Position ", AutoPositionAction, "Point)

The 3 lines should be

1 ControlCommand ("Auto Position ", AutoPositionAction, "Point" ) 2 3 sayezbWait (" I see a" + $CameraObjectColor) 4 5 Stop()

DOES IT WORK? Thanks Ron


To be honest I have no idea what you are trying to do as I find the way you explain things somewhat confusing.... All I am going to say is once again and for the last time.... I am using ONLY the default JD project and it works perfectly for me.... And even if it didn't I would change things until it did....

There is nothing else I can do for you except to suggest you do what I have done above.... It won't give you everything you want but it does do the pointing...

Sorry dude... good luck...


Thanks Richard I know this is hard to explain but if you go to the multicolor activity and view the video it will says to use the first ControlCommand() for line 1 ControlCommand ("Auto Position ", AutoPositionAction, "Point" ) and not the one your using. I'm trying to find out why they tell you one thing and we have to use another. Ron


@darticus Just a quick post to let you know I haven't forgotten about your problem, just been busy today. I'll be able to get into it later in the day.

@Nomad You're welcome.


WBS00001 Thanks i hope you will look at activity 3 multicolor video and confirm the first line of script. Thanks Ron


i try it today and i notest that the pic brightness is not good. and it didn work eacther multi color does. so i gess practise in setting the color is the answer.

User-inserted image


You are right that setting the colors is very hard and important. If not done correctly it will not name the colors correctly. The part where it points is the problem. The original video activity 3 multicolor shows it being done wrong. It will not work using their first ControlCommand() thats used in the video. Richards ControlCommand() line (posted earlier) does work. Ron


one thing i notest is that some slider dont work,you cant get the image brighter.

User-inserted image


Okay, I've worked with it for a while now. I can see where there is a good deal of confusion where the activity is concerned. It is very out of date and tells you to do things in an incomplete way. For instance it says:


Select Scripts tab>br /> Select Tracking Start script to edit
That makes no sense. At least the "Select Scripts tab" doesn't. And there is no "Select Tracking Start script" component in the Scripts tab in any event. What it should say is something like:


Click the "Projects" tab Then click the "Add+" tab Next click the "Scripting tab" Finally, click the "Ez-Script" component
Then it should go into what to put into the script and to name it "PointAndClick". It's very hard to follow the way it is. I know what is meant but a beginner would have no idea.

Apparently the Tracking routine runs a script named "PointAndTrack" and does whatever it says to do when it recognizes a color.

The JD Example Project already has a script named "PointAndTrack". It is this script that would be used when running the "Tracking" option. So there is no need to do any of that in the first place. That activity really needs to be revised.

I believe your problem is that the arm on JD won't raise and point when the robot sees the color. I Think you said it does work when running other actions in the Auto Position control. Is that right?

I Think you also said JD's head does track the color? If it is actually tracking the color properly the head should go in a jerky motion as it follows the object. Thing is it's possible the head is not actually tracking since it does that while trying to find a color as well. If so, then the arms don't point because it never actually finds a color it recognizes.

Perhaps the next step is back up and punt on this and first work on making sure the arm(s) work properly. Then tackle the pointing thing step by step.

Let me know the answers to the questions I asked, when you have time, and I will have a better idea of how to proceed. I can make up a project with just the bare essentials and post it to the cloud for you to download. That way we will be working with the exact same project and things should be easier to do remotely like this.


@Nomad Your're not understanding how to use that control... The brightness control slider doesn't make the object brighter... You use it to tune in the threshold of colour that the camera is able to see... Some colours are dull so you need to adjust the brightness slider towards the "dull" in order for the camera to see them better... Some are bright so again, maybe you need to adjust the slider more towards bright...

Using your logic, do you think the "object size" slider makes the object bigger and smaller?... :D

Hint... Read the question marks beside the control...

The object size slider is used to filter out small coloured objects as desired... I mean when you are colour tracking you don't want the camera to track every spec of colour it sees.... You use this part of the control so it will only pick up large coloured objects and ignore small ones....


WBS00001 If we stay to that multi color activity the video shows what you type in under script and its 3 lines. The 3 lines look like this 1 ControlCommand ("Auto Position ", AutoPositionAction, "Point" ) 2 3 sayezbWait (" I see a" + $CameraObjectColor) 4 5 Stop() 6 7 If you set up as described for one or two colors you than go to scripts and add this. It will do the colors but it won't point. The #1 ControlCommand() must be wrong. Thanks Ron



preveous version made pic brighter.jezus


@nomad maybe in your world it did, but sorry the control has always worked the way i described... If you don't believe me the click on the ? for more info....


Richard check your control line its different than the one I said to use. I know yours works but the one they say to use in the video is different. Thanks Ron


Actually, you need to forget that script. As I said, the Activity is outdated. Nonetheless, let's work with it one more time before leaving it

Okay, looks like you have a mistake in the first line. There is a space in there that needs to be removed.

#                          Remove this space
#                              |
  ControlCommand ("Auto Position ", AutoPositionAction, "Point" )

Spaces count. Once you get rid of the space between Auto Position and the quote mark it should work. I'm assuming you don't have those line numbers you show in post #49 actually in the script. Also in order to test the script itself, a Sleep instruction should be added for the moment.

So, erase whatever you have in the script now and copy and paste the following lines into it:

ControlCommand ("Auto Position", AutoPositionAction, "Point" )
sayezbWait (" I see a" + $CameraObjectColor)

Then click the "Start" button on the script. It should point for a couple of seconds and say "I see", then straighten up.

If you like you can test it with the "Tracking" feature. As I said though, we will need to get past this and move on to how it should be now and get it working that way.

Try that and let me know how it went.



thanks i give it a try



Perfect! You used the line they used and it worked. Not because I had a space as I didn't in the program. Originally I clicked on that script so it was right. The problem seemed to be the sleep(3000). Thanks very much! We have been going nuts getting people to see the problem which will probably only bother a new comer trying to follow the directions. This discussion on this has gone on for 3 or 4 days and NO ONE WOULD CHECK IT! THANKS I'M NOT NUTS! The new line they use works but the arm stays up when it points than goes down when it sees a color and goes up again and stays up until another color, repeat. Lets move on! Fantastic! Ron


i used one color and sleep(2000) works perfect. as for the multicolor i cant test cause i have bad lightning.


Sorry to be so late replying. Very glad to hear that things are working now. The introduction of the Sleep instruction as a solution was somewhat inadvertent on my part, but hey, whatever works, right? :)

Let me know if there is anything else on this you need assistance with as you continue on.


WBS00001 Will the sleep instruction also work when doing the same activity with the new control line, shown here earlier from Richard to get the hands to go down after pointing. It seems the hands stay up for some reason.

How can new people to JD work if instructions are incorrect? AGAIN THANKS Ron



did you made this pose that jd does his arm up?if yes did you finich the pose with arm down.


Nomad Using Richards control line, which is the new line used now, I think his arm stays down until JD sees a color than it goes up and stays up until JD sees another color than goes down and up to point and stays up again until another color is seen. This continues to repeat. Ron

New comers need help as we are trying to follow, out of date, and some none working info. after new updates are made.



am newbie to with very little practise. maybe you chould made a pose where jd raise his arm and lower his arm, and try then the color works for me.


@Nomad 6R newbie my butt :P... You have been around here for a couple of years dude... 2.5 years to be more precise... You joined the forum in June of 2013...


I will try that. It might just be a sleep command and a stop command needed in the script lines. I am also new to this but we need to get correct methods. Doing this by trial and error will be somewhat aggravating and frustrating. I think we need more mini labs that will work all the aspects of JD. Than we can use what we learn to advance. I'm trying like everyone else. Once we get it, hang on! Thanks Ron User-inserted image



your jd looks real cool.


2.5 years means nothing if you have to learn averything with one braincell.

haha :)


Nomad I tried that line that they give us with the new JD download. This is the line Richard R had listed. This seems to be what everyone is using. By inserted the line sleep(3000) that WBS00001 added yesterday to the old line it makes the new line put its point down.

After going through all activities and all JD's I'm still looking for help in how things work. Example face recognition. Will check if there is a manual. Ron


@darticus Once again, sorry for the late reply. Things have been a bit hectic this weekend.

I'm a bit confused where you are at the moment. When you speak of the line Richard R listed, are you referring to this line?

ControlCommand("PointAndTrack", ScriptStart)

Also, I agree with Nomad, that is a nice job on the JD wiring and it seems to be perfectly aligned.

There is a manual. It is here:

Unfortunately parts of it are out of date as well. For example, some parts refer to using Bluetooth and have instructions using the previous version of the EZB controller (EZB-3). Bluetooth is not used with the EZB-4, only WiFi.

The manual is really only for reference. There is no step by step guidance from simple to more complex like the tutorials. Nor does it include everything presented in the tutorials and the Activities.


@darticus I'm a little late to this game but here is script you might be interested in. This script will look for the color RED for 5 seconds and IF it see's RED it will it will run the Auto Position and Say the text. IF it does not see RED it will say that text. At the end of the script it stops the tracking and returns the robot to a Rest position. It's easy to change this script for whatever type of tracking you want to do.

ControlCommand("Camera", CameraColorTracking, "red")# change this to what ever type of tracking you want
ControlCommand("Auto Position", AutoPositionFrameJump, "Thumbs up")#put what ever  AutoPosition you want here
sayezbWait (" I see a red object")
Sayezbwait(" I don't see a red object")
ControlCommand("Camera", CameraColorTrackingDisable)#turns off the tracking
ControlCommand("Auto Position", AutoPositionFrameJump, "Rest")

This is pretty basic, you may have to play with the timing and add in your your Auto Position. There are other ways to do this but this will get you going I hope.


WBS00001 That is the line Richards referred to and that is the line in current use. That does work but I did notice that it didn't put the pointed arm back down after pointing. Your sleep(3000) control line before the stop line also corrected the point hand staying up using this line also. If I'm not mistaken JD points the opposite hand when using this ControlCommand() line. Thanks Ron Do you know how to set up the face recognition? Maybe a few hints might help. I go to device turn on the camera go to tracking click on face pick object tab. Than its time to set it up, I guess. Any tips on using this? Thanks Again Ron


Thanks bhouston

I'm sure many will try this and I certainly will. Its nice when some people help out some of us new young and old members. This is a great way to teach the new people what is the correct way to use scripts and get started. Once we catch on we will move on, on our own. Thanks Ron


@darticus Okay. That line should not be used in the PointAndTrack script, ever. What that does is put in a reference to itself. Meaning when that line is executed by the script it is calling itself (the PointAndTrack script). That puts you into what is called a recursive mode. It's like an endless loop. It calls itself, which causes it to run again, which calls itself, which causes it to run again ... and so on.

What Richard was referring to when he showed that line was the setup for the camera itself. Do the following:

1)Click on the little gear icon in the bottom left of the "Camera" control window. That will bring up the Camera settings window.

2)click on the "Scripts" tab at the top of the window.

When you do, you will see that same line near the top center of the window. It is there that the line is used. That is the "Tracking Start" command. Right below that is the "Tracking End" command. What the line in the Tracking Start box is doing is telling the Camera operation program what to do when it recognizes an object, or color, or face, or whatever. It is telling the Camera program to start the script named "PointAndTrack". Then whatever is in that script will be executed. In this case, it makes the robot point. Then it causes the robot to say what it recognized.

Basically, that's it. Once the script has finished running, the robot goes back to how it was before. Sometimes it might not under some conditions and it can be forced to lower it's arm, but I didn't want to get into that here as it would make the thing more complicated. By modifying the "PointAndTrack" script you can make it do all sorts of things.

The same for the line in the "Tracking End" box. You will note that it says "Multiline Script" in that box. What that means is the command for the "Tracking End" instruction is more than one line of code. To see the other line in that part, click the little pencil icon to the far right. When you do, another window will come up showing the two lines of code that tells the Camera program what to do when tracking is turned off. You turn off the tracking off when you uncheck all the boxes in the Tracking tab (like you were doing with the "Multicolor" checkbox). What those two lines are saying is: Stop the "PointAndTrack script now Then stop everything else

Bottom line of all this is that you will need to put the other line back in the "PointAndTrack" script. ie: ControlCommand ("Auto Position", AutoPositionAction, "Point" ).

Feel free to ask questions if that is not clear to you.


what about the light in the room,what is best for the camera. light ubove the camera or in front camera?


Nomad I just use a room as bright as it is normally with your lights on. If not enough light when you adjust your slide levers it still won't see the color or get it wrong. Than look for more light maybe coming in a window. Ron


WBS00001 I think what you said is the line should be the first one we were using which worked when the sleep(3000) ControlCommand was used. ControlCommand ("Auto Position", AutoPositionAction, "Point" ) It seemed to run better and more correct with this. The arm always seemed to go down correctly. Thanks Ron



where comming closer little by little


Nomad I think you may be right. Ron


What about tracking a face or an object. do you have to delete what was put in during working with Multi color or just check off object and uncheck multicolor? It seems to say the color when it see an object. How is this set up to track? Any help would be great. Thanks Ron


You can just un-check one tracking type and check the other to change the tracking mode. What JD says when it sees something depends on how the script is written. If it is a simple script that executes when anything is tracked, it will always say the same thing. If it is more complex and checks for what is being tracked and the variable for that tracking type, it will be more specific. You can have more than one kind of thing tracked at a time if the script is sufficiently "smart", although if you check all of the boxes you will get so many false positives as to be useless.



Thanks Alan How would I be more specific to object or face script thats different than the multicolor that is used to keep it different. This way maybe I can use multicolor or object without the same thing being said. Is there an example of how to do this? Where would you get or how would the lines look to get this specific script. Thanks Ron


There is not an example that I can locate, but the gist is, in your camera object you will execute a script on Tracking Start, and in that script you will have a series of IF statements that look at the value of the $CameraTrackingType variable and take different actions depending on what kind of tracking is currently active (specifically in your case, you want to speak the $CameraObjectName or $CameraObjectColor depending on what you are tracking).



All Greek to me. I do have some programing knowledge but how do you possible work with anything with this robot without and instruction or an example for each of the possible program areas. Please don't say the activities! Maybe we are to guess at how you do this? It seems like when you do the script for an activity example multicolor and it finally works, thanks to all, and than you check off object instead of multicolor and go to scripts the multicolor script is there and running and I guess you erase it and do something different? Are these programs for each type of tracking? Maybe it time for DJ to help some of us new people really get started. Maybe its only me but I think we have a bunch of people that are just patient and not getting this to work either. Ron


There is a comprehensive script manual, and many many script examples and tutorials. The activity is there to teach you the basics of a recognition script so that you can then extrapolate from that and manipulate it to do other similar things.

I have given you the variables you need to act on, and the examples will give the actions you can take. There are dozens and dozens of sample projects all of which use scripts and auto-positions that you can use to learn from.

You don't need to erase the script you did for multi-color tracking, you need to add to it (and it probably makes sense to rename it and use a different script to call it from the camera tracking started field). You would put if statement in the beginning so that the multi-color script is executed when tracking executes and multi-tracking is enabled. You would have a separate if statement that executes the things you want to do when face or object tracking is enabled and a face or object is recognized.

There are SO many different things that ARC can do with the built in functions without even touching scripts, and infinitely more that it can do with script writing, that you are not going to find an example for every thing that you think of that you want to do. Also, not everyone posts their projects or scripts publicly, so even if someone has done exactly what you want, it might not be shared.

If you want to learn how to make the robot do everything you want, use the tutorials, samples and activities, both those written by EZ-Robot and other users and ask specific questions and post your code or project when you get stuck so we can help you.

I will also again encourage you to go through the WiFi modes tutorial and get your JD on your home network so that you can have your ARC machine on the internet at the same time it is controlling JD. That allows me or any number of other people who have offered to help share your screen with TeamViewer or a similar application and show you how to do things directly when you are really stuck.

If you want a robot to do what you want without learning to program it yourself, my consulting rate is $200/hour. Write up your specific requirements and I'll send you a quote. :). It will be a minimum of 3 hours just so that i can afford a JD so that anything I write is specific to your environment, and you won't have to write a single line of script.....



WOW! The robot thing is going to EBAY. This surely is a terrible way to act. I hope people that have no clue like myself see this and decide to not invest and buy some thing that is going to go no where with out proper instruction that we're not getting. I do thank you Guru for trying to help but help above the head of a student is not help its frustration. The activities stink and are not up to date. I have been looking for where the examples are but can't find them. Someone please point the to us! This is not programing this is only a game at this stage with no instructions. If we have to program everything where do we go about it or do we guess. Is there a programing screen, do we name the program? What are the camera things? Are these examples of what we could do if we figure it out? This is out of control. I will continue to read again all the info. I see the objective but it can't be reached with some start up instruction. Ron


I am confused by your reaction. I have given you pointers to where to find information, and offered to remote into your computer and guide you through how to find what you are looking for if you take the one step which will make that possible (it is not possible to remote in when you use JD in AP mode). If you were in the Washington DC area, I would even do a face to face meeting to help you figure it out. I am not sure what else you could want except someone doing it all for you, and I gave you a price for that.

Other than simple robots like the Sphero that can't really do anything except wander around, EZ-Robot is by far the easiest robot to get up and running doing the things you ask it to do. Even Lego Mindstorms, a children's toy, is more complex than this.



I can't get started. Thanks anyway Ron


@darticus Sorry man.... Robotics isn't right for everyone? Alan gave you a seriously generous offer I am surprised as well you didn't take it. I guarantee within 30 minutes he could teach what you need to know about ARC in order to continue on your own...

You won't have any trouble selling JD, he is very popular...


If I may put in my 2 cents worth. Alan has given you the basics of what you need to do the things you want to do. But it has been spread out over several posts so I would like to summarize parts of his explanations to, hopefully, bring it all together.

The first thing to realize is that there is only one script that is run by the camera program when anything is detected. It doesn't matter what it is. It can be a color, it can be a face, it can be a glyph, whatever. Doesn't matter. In your case that script is called PointAndTrack. That is the default script name for most people. You can change it if you want, but there is no reason to. So, if the camera detects a color, it runs (executes) the script named PointAndTrack. If it detects a face, it runs the same script. And so on. It always runs that script no matter what.

So, what does that mean? It means it will do whatever is in that script no matter which kind of thing the camera recognizes. Right now, all you have in the script is what should be done if a color is recognized. So it doesn't matter what it sees and recognizes. All the PointAndTrack script knows is what to do if a color is detected so that's what it will do.

Now what you have to do is modify the PointAndTrack script so it will do different things depending on what kind of thing has been detected. The main way you make the script do different things depending on what is detected is through the use of "IF" statements:

IF the object recognized is a color, then do this. ELSEIF it's a face then do something else. ELSEIF it is a Glyph do yet something else, and so on ENDIF

Okay, fine. Now how do you decide what to do using the IF statements? That is where one of the variables Alan mentioned comes into play. That variable is named $CameraTrackingType. That variable will tell you what kind of object was detected. When the camera detects something it has been set up to recognize, that variable will have a value related to what has been detected. Offhand, I don't know what those values are. You can see them when you use the variable watcher (or a print statement) and put a color or face in front of the camera.

You would modify the PointAndTrack script to do different things depending on what value the $CameraTrackingType variable has:

IF the $CameraTrackingType variable says a color was detected then do whatever you want it to do if the camera detects a color (the code you already have) ...

ELSEIF the $CameraTrackingType variable says a face was detected then do whatever you want it to do if the camera detects a face ...

ELSEIF the $CameraTrackingType variable says a glyph was detected then do whatever you want it to do if the camera detects a glyph ...

And so on ...


I'm assuming you know how to use IF-ELSEIF statements.

There are other variables that can help you further refine what to do when a particular type of object is recognized. Alan also mentioned a couple of them: $CameraObjectName $CameraObjectColor

Their name indicates their function.

I know, a long post, Nonetheless, I hope that helps.


Thanks @WBS00001 for summarizing what I was trying to say. I am a better teacher in person (which is why I was recommending a screen share session) than I am in forum posts. To describe the same thing you did in words, I would have had to take a bunch of screen shots for illustration, or just do a live session. I am trying to answer between doing tasks at work, so screen shots, or even fully crafted instructions were not something I had time for.



One more thing. It often helps to do a search in the forum for whatever you have questions about. In this case enter $CameraTrackingType in the search box and you will get several posts with examples of the variable's use.

The search box is at the top of the Forum main page.


@thetechguru You're welcome. Hope I didn't step on any toes in so doing. :)

@Dave_Schulpius Right you are Dave. I edited the post to add EndIf statements, thanks.


I have steel toe boots, so if you stepped on my toes I didn't notice it ;)



I really Thank all of you MBS00001, Richard R, Alan, Normad etc. for putting up with my questions. I don't know how anyone is able to be successful with this without putting in hours on hours trying to learn its methods without written instruction. It really is a pain to ask things as it seems so easily explained when answered on my level and than sometimes your expected to understand terminology in the explanation and just follow what someone says that you don't understand. I feel like a middle school student in a college class. Don't even know what to say but Richards right get some money back their popular. Maybe its not for everyone. After programing ER1 and Aibo ER7 I thought this would be fun. Really don't see the light. Ron


@darticus.... It's not that hard... really... Take Alan's offer and go from there... What do you have to lose?

FYI When I joined ez robot a few years back, there wasn't the excellent tutorials available... DJ has painstakingly wrote them later... Still, it wasn't difficult to figure out how it all worked (even without the tutorials). Like I said, I didn't have the luxury of the tutorials that are available now.... If you stick with this eventually you will get that "eureka" moment where it all makes sense.... To my knowledge, no one has ever "flunked out" of ez robot school.... don't be the first....:) @nomad is still here and he claims to only have one brain cell (his words not mine).... He does ok most of the time...


Richard R Thanks I just called Brookstone's and I can still return it for full price for Christmas gift. It has to go back before the 31st. Where are the tutorials you are talking about? Just give me a link. Thanks Ron


@darticus.... All the tutorials... They are in the learn section... However, to be honest I learned mostly from loading sample projects (like the JD project) or script examples (like how to use the rgb animator and such) and tweaking them.... Making subtle changes to code to see how it affects outcome... Then as I got more comfortable, making bigger changes ... until I could just do it all on my own... It was a process that didn't happen overnight...


@darticus.... You got two weeks then to play around then... you have nothing to lose...


Thinking about it. 500 BACK OR A BIG HEADACHE! Thanks all Ron


@darticus Maybe it would help if you started with something simpler. The video stuff can be a pain even for those familiar with the Script language. Perhaps something to ease you into the scripting language so you would have more confidence when you tackle the camera stuff again.

How about starting with just having JD raise his hand and put it back down? Or is that too simple?

Let me know and I will post a step by step guide to doing it with details about each line of code.


Thanks WBS00001 I really don't know what to do now. I think my brain is mush. Ron



take a day off,go outdoors or something els then pc robots. then deside what you gonna do,i would take the session with alan or wbs i have a feeling we bolt have same issue go from overexcitment to frustration. what ever you deside is good,aldo i hope you stay keeping frustrated with me.


Thanks but I think I've had it. Good luck ALL. HELP NOMAD 6R. Ron


@Darticus Below is a very simple script that turns on the camera (if off) then turns on motion tracking and finally takes a picture every time it sees movement.... This is just to show you how easy it is to do stuff like this using just one simple script. You may need to adjust the movement sensitivity slider under the motion tab in the camera control to avoid it taking pictures of nothing... Remember, this is just a generic script I wrote that you can run separately on it's own ( not the tracking script from within the camera control).

if ($IsCameraActive != 1) #turn on the camera on if off
  ControlCommand("Camera", CameraStart)
ControlCommand("Camera", CameraMotionTrackingEnable)
if($CameraIsTracking = 1)
ControlCommand("Camera", CameraSnapshot)
saywait("movement detected")


@Richard_R Simple to you. Simple to me. But is it simple to Darticus?


Thanks Richard thanks WBS00001 Thanks to Richard for putting in the time and yes WBS00001 it makes no sense to me. Again I see where he is going with his program but at 67 I don't think its time to study programing that really from what I see must be learned by trial and error with no real instructions or written documentation on using it. Maybe I'm lazy or just don't want to put in the effort. I will always watch the robot development info coming out but even the programing for ER1 was explained and easy to use they just went out of business. Thanks all Ron



good work


well said


what are you looking for in a robot.


2 or 3 cases in the last weeks. I think a lot o people will fill deceived when buying robots (in general not EZR), most platform robots are target to builder minds not consumers.

i think part of the failure is the wrong message people get when they buy the product.



well you have an excample off a wrong message people get? i think ez is the most easiest platform there is.excample another platform, i was looking for one hour to change a foot led in another color. didn find any info about that.with ez 2 sec.


Nomad I think I wanted a robot like this that was just like this that I could expand on like this but with instruction with examples that could be used right off the bat to build and program. I know most will say this is it but remember when you started you sat and waited to learn something or figure something out. You read activities over and over. You did tutorials under JD and sat more. How long did that take 6 months +? This is a great robot but at the moment I can't learn with the documentation provided. Many activities are good and work and many are obsolete and not workable. Tutorials are good but not pertaining to programing JD. I wanted something I could get to walk, turn around look for object in the way and say good morning. As a retired High School Science teacher my kids couldn't get this off the ground without a personal tutor. I know they show it! I know this robot can do this stuff when you learn to program it but I wasted Dec 25 to now and I do nothing but activities that some work and some don't. Last week I got an answer from WBS00001 why an activity didn't work. It took almost 3 weeks of asking people why before someone actually took the time to look at what the problem was. Maybe this will get sorted out but don't have the patients now. Building Hero and Hero Jr back in the 80's was also a robot I had input into building. It had Issues that needed correcting by Heath Kit and they did it. I'm great for finding issues but it sucks. Thanks Ron



good ,take some time to do some other stuff.and remember to stop in time, when you start to feel frustrated.many times i didn understand untill the last part, fits in.atleast you know alot,i dont.try to do a conversation with a person you, feel best with.yourre a good guy.



Sorry to see you go but I understand. My father was/is a very smart guy. He worked on encrypted communications (hardware and software) for the US military in one form or another for about 40 years. He had to know how things worked with technology. Crazy smart dude.

I remember one day he bought a new TV (LED type). I went over to see what he had bought. He made a statement to me that struck me as strange at the time, but I understand as I get older. His comment was "This is the first product that I have purchased that I didn't understand how it worked." I started to explain it to him and he stopped me and said "I don't care how it works."

I dread the day that I get to this point, but I know that it is coming. He had lost his patience for trying to figure this type of stuff out and had lost his drive to figure it out. I understand.

The robot was figured out in about a week by me personally, but I have a programmer background. I still feel the need to understand how things work. I have a desire to dig in and break it, buy another one, break it and so on and so forth.

This is just my two cents but, this hobby isn't for you anymore. I am not trying to be mean or degrading at all. I just don't think that you have the burning desire to put up with the frustrations associated with this hobby. I am sure that you are plenty smart enough to do it. I am sure that it is possible for you to be successful at it. I just think the drive isn't there anymore.


You said it right are absolutely correct. Thanks Ron


I am sorry to hear this isn't going to work out for you, particularly since I encouraged your purchase after your first post saying you wanted more than just a toy. I guess I mis-interpreted what you were looking for.

If you still want to try something that is more than a toy, expandable, and programmable, but with perhaps better documentation in the same price ballpark, you might want to look into Lego Mindstorms. They are significantly less capable because you lose the processing power of a PC Tethered robot, but might be closer to what you were after and the documentation is complete and straightforward if for no other reason than they have been on the market for many years and have the huge Lego corporation behind them including an entire department that does nothing but write documentation.




is it possible that you have a burn out.i hear many teachers get it. and do you also think what you would do if you stop robotics.

i ask myself same question and am 53 old.


I'll get into something . Thanks Ron


have a check up with your doc.see what he says ,let him do some bloodtest. maybe you have a short on something.


@David... That's funny.... My dad was a simple guy... not techie at all, blue collar all the way... Yeah, I know I am blue collar too LOL... Anyway, if I told him that an etch a sketch was a laptop computer he would believe me.... :)


Nomad has it right maybe a B12 shot. Ron


If anyone can help me out I have a new rover body with H bridge. Need to sell as leaving the project for now. If anyone is buying one you might be able to help me out of this. Ron



is it possible to get a pic from the backside jd


Sorry JD has been dissembled already. Wait I think I found 2. Ron User-inserted image

User-inserted image


thank you this is great.