(Autonomous Robot Control Software)
Make robots with the easiest robot programming software. Experience user-friendly features that make any robot easy to program.
Change Release Notes
This is a small release with one new feature for the camera control
- new Camera Variable: $IsCameraActive which returns the status of the camera. Can be configured to a custom variable name in the camera config dialog
ARC Downloads
ARC Free
Free
- Includes one free 3rd party plugin robot skill per project
- Trial cloud services
- Free with trial limitations
For schools, personal use & organizations. This edition is updated every 6-12 months.
Recommended
ARC Pro
Only $8.99/mo
- 2 or more PCs simultaneously
- Includes unlimited skills
- Cloud backup
- And much more
Experience the latest features and bug fixes weekly. A Pro subscription is required to use this edition.
Runtime
Free
- Load and run any ARC project
- Operates in read-only mode
- Unlimited robot skills
- Early access fixes & features
Have you finished programming your robot? Use this to run existing ARC projects for free*.
- Minimum requirements are Windows 10 or higher with 2+gb ram and 500+MB free space.
- Recommended requirements are Windows 10 or higher with 8+gb ram and 1000+MB free space.
- ARC Free known-issues can be viewed by clicking here.
- Get more information about each ARC edition by clicking here.
- See what's new in the latest versions with Release notes.
Compare Editions
Feature | ARC FREE |
ARC PRO |
---|---|---|
Get ARC for Free | View Plans | |
Usage | Personal DIY Education |
Personal DIY Education Business |
Early access to new features & fixes | Yes | |
Simultaneous microcontroller connections* | 1 | 255 |
Robot skills* | 20 | Unlimited |
Skill Store plugins* | 1 | Unlimited |
Cognitive services usage** | 10/day | 6,000/day |
Auto-positions gait actions* | 40 | Unlimited |
Speech recongition phrases* | 10 | Unlimited |
Camera devices* | 1 | Unlimited |
Vision resolution | max 320x240 | Unlimited |
Interface builder* | 2 | Unlimited |
Cloud project size | 128 MB | |
Cloud project revision history | Yes | |
Create Exosphere requests | 50/month | |
Exosphere API access | Contact Us | |
Volume license discounts | Contact Us | |
Get ARC for Free | View Plans |
* Per robot project
** 1,000 per cognitive type (vision recognition, speech recognition, face detection, sentiment, text recognition, emotion detection, azure text to speech)
** 1,000 per cognitive type (vision recognition, speech recognition, face detection, sentiment, text recognition, emotion detection, azure text to speech)
Upgrade to ARC Pro
With ARC Pro, your robot is not just a machine; it's your creative partner in the journey of technological exploration.
Hi DJ. Its awesome to see the updates rolling out, I know you and your team have been busy.
This is very useful. I had a camerastart ControlCommand() in my init script, and if the camera was already running, it would crash ARC (no errors in the debug log).
Now I have an IF statement to see if the camera is already running, and no more issues.
Alan
please dont foreget about the the virtual ports to match the digital ports
Sorry just downloaded ,, thought i had it ,, Thank you @DJ Sures for the update I have been waiting for this so i can continue and once again you come through!
Thanks again.
Hmm.... Actually, $IsCameraActive is only initialized once the camera has been started at least once. So if I have just opened the project, and haven't started the camera yet, I get an error in the log "Variable Not Defined $isCameraActive".
If I have started the camera at least once, then the IF statement to check if it is active or not works.
Also, you said:
I don't see anywhere to do that.
Alan
@Alan... Can you set it to 0 in an init logon script? That way you won't get variable not defined error...
I tried (actually, since the whole issue is I am trying to see if the camera is on or off, and 0 is off, I set it to 2 then had the IF statement looking for != 1) but I guess since the IF statement is also in the Init script, it is still seeing it as undefined. I guess I need to create another script, and call it with control command.
I'll figure it out....
Alan
Calling the script that checks to see if the camera after setting the IsCameraActive variable to 2 eliminates the undefined variable error, but if the camera is active, when the init script runs, it sets the variable to 2, and then the script causes the nasty error that sometimes crashes ARC when I run the ControlCommand() to start the camera.
This is the error: 11/17/2014 6:07 PM - Camera Initialized: EZB://192.168.1.105 @ 320x240 11/17/2014 6:07 PM - Camera Initialized: EZB://192.168.1.105 @ 320x240 11/17/2014 6:07 PM - EZ-B v4 Camera Error: System.IO.IOException: Unable to read data from the transport connection: A blocking operation was interrupted by a call to WSACancelBlockingCall. ---> System.Net.Sockets.SocketException: A blocking operation was interrupted by a call to WSACancelBlockingCall at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at EZ_B.EZBv4Video.() 11/17/2014 6:07 PM - Camera Disabled 11/17/2014 6:07 PM - Camera Disabled
Usually crashes ARC without the error getting written, but this last time it just threw the error without crashing.
Alan
The variable is set here:
If using the latest ARC, the variable is set soon as the camera is loaded. does not matter if the camera has been activated or not, the variable is set. Never, ever set a variable that is automatically set by a control. The variable is set by the control, not by you.
I knew about where to find the list of various control variables, but thanks for letting me know not to mess with setting them via initialization type scripts... Good to know... thanks
Have you added any delay prior to the IF to make sure the camera control is loaded before checking if it's running? As DJ said, the variables are there on the control being loaded.
That's a really good point @Rich.... Some complex controls I assume need extra time to load... ARC being a multi threading program means that running scripts may not wait for those controls to load...
Yes, there is several seconds of delay throughout my initialization script, and I was attempting this on the last step.
I have figured out the sequence of events that causes the issues.
If I start ARC and open my project before starting Roli, the camera fails to initialize, so the variable is not initialized (none of the camera variables appear in variable watcher, and the script using the IF statement fails).
If on the other hand, Roli is started before opening the project, the camera initializes and starts, but if I run ControlCommand("Camera", CameraStart) and the camera has already started, then ARC intermittently crashes.
There does not seem to be a way to use the variable to check the camera status if the camera has not already been run at least once in this session.
However, I think I found a solution.
Running ControlCommand("Camera", CameraStop) when the camera is not running records errors in the log, but so far has not crashed ARC, so I will add this to the end of my initialization script:
ControlCommand("Camera", CameraStop) sleep(1000) ControlCommand("Camera", CameraStart)
That way, if the camera was not running, it will start, and if it was running, it will stop, wait a second, and re-start. Avoiding the issue with the variable.
Alan
From memory (which is fuzzy at best right now) is there a toggle for the camera start/stop? Possibly use the ControlCommand for toggle twice in quick succession may kick the variables in for the camera and allowing the IF to work and avoiding stopping a stopped or starting a started camera control.
There is not a documented CameraToggle (there are toggles for tracking, recording, etc). But now I can't find where CameraStart and CameraStop were documented other than forum posts by DJ and others. They aren't in the list of ControlCommand parameters in the script reference.
Alan
Alan, certain you have the most recent version of ARC?
I'm unable to reproduce similar results. The code initializes the variables when the camera control is added to the project - whether active or not...
Yes, I have the latest version.
Are you opening an existing project with a camera in it, or adding the camera to a new project? I am seeing it when I open my existing project.
If you think it might be project related, mine is on the cloud. name is "myroli" (original, I know) and it is tagged as rovers, incomplete.
I can test later today on different computers. The one I was doing most of the testing on is Windows 7 Professional (64 bit), but I can try on my Windows 8.1 tablet later.
Alan
I confirmed that opening my existing project on Windows 8.1 has the same issue. Adding a new camera to a new project, all the Camera variables do appear, but when I save that project, stop ARC, restart ARC and load that project, no Camera variables appear until the first time I successfully start the camera for that session.
While I was testing, you released version 2014.11.18.00 so I installed it and re-tested with the same results.
Alan