PRO
afcorson
Australia
Asked
Resolved by DJ Sures!
Arc ver 2021.03.02 is freezing. Need to use previous version. Has anyone else reported problems?
Related Hardware EZ-B v4
How is it freezing? It has passed the same tests as previous versions. Can you provide more detail.
previous versions will soon not work with the new cloud infrastructure.
Not long after initial connection, Mobile interface locks up. Buttons do not respond. Repeated attempts to disconnect or close the App, seems to work. I need to do some more testing to see if there is a pattern.
Can you provide your project to me? You can post it here or save it to the cloud and tell me the project name. You don’t have to make it public if you give me written permission to access it.
Here is my project file. The camera also freezes when a face is detected. BTW, I have 16gb ram on a Dell Latitude 7400. EZMecc.EZB
That's an easy fix - remove the variable watcher. It's consuming all the cpu.
The trouble with the variable watcher is it is super cpu intensive. There's a warning on the manual page about it. But this leads me to believe that I should add optimizations to it. Perhaps a setting for "how often to probe" rather than doing it on every variable change. I should also have it prompt and say "hey, there's a lot of variables so maybe we should slow down refresh"
Also, one good control to add that will help identify "run away scripts" is the Script Monitor. Here is the link: https://synthiam.com/Support/Skills/Scripting/Script-Monitor?id=16062
PS, it is a blast of a fun project - i enjoyed it! Thanks for sharing. The songs and dances are great. I actually learned a lot and still playing with it. Mind if I show it to a few people around the office?
Also, are you using a jd? Because I think your arms are connected in reverse
this is what my jd does - his grippers open and arms up.
I'm going to start building a smarter variable watcher now for you. Probably won't finish it tonight because it's already 10:45 PM
Thanks for your help, I had a feeling it was RAM related because when I tried to use ARC on a laptop that had 8Gb of RAM, I got the same sort of freezing and slow response. I only need some of the variables watched. None of the array variables need to show up really. If I could exclude arrays that would help. I will remove the variable watcher and see what effect it has.
The robot's arms work fine for me. You are welcome to show my program to others if you wish. Much of the functionality has been necessitated by having to get visitors to use touch pens - no hands on because of Covid restrictions. Hence voice prompts and lots of questions. Also the QR coding is a bit out of date so I wouldn't use that part.
Awesome - adding variables to the watcher is a good suggestion. I'll add that to the list.
In the meantime, here's an experimental Smart Variable Watcher that I made for you. I'm tired but it should work: https://synthiam.com/Support/Skills/Scripting/Smart-Variable-Watcher?id=20379
*Note: When the arrays are originally defined in the init script, it may take a while for the grid to render. After that, it should rock quickly.
I'll add a to-do item that lets specifying what variables to watch.
PS, here's your project running and using only 18.3% cpu and 232MB of ram on my i7 desktop from 2012. Boy ARC is efficient!
Stellar work. I look forward to testing it. Pity I left my robot (pictured above) at my workplace but I'll let you know how it performs - very likely much faster. Its a good outcome to have another improvement to ARC. It might help with my next project - an InMoov robot. Thanks again.
WOW nice meccaonoid mod. Mine just sits in the corner gathering dust. Did you upgrade the servos in his arms?
I updated the latest Early Access & runtime with a warning about the variable manager so no one comes across this again: https://synthiam.com/Products/ARC/Releases/ARC-2021-03-03-Early-Access-Runtime-20381
All the Meccanoid's servos were replaced with EZRobot HDD servos. That's why I called it EZMecc.
afcorson, Really like your EZMecc build, very nice. I have a Meccanoid and was wondering how you made the body panels, and if you purchased the head. Maybe I would upgrade it with new servos, EZB, and let the grandkids enjoy it. Anything you want to share about it would be welcome. Thank you, Steve S
I made the main body panels from balsa wood. The legs are shaped from Meccano leg pieces with artist's matt board adhered to the sides. The chest is screwed on to the existing Meccanoid chest and shaped accordingly. The head I vacuumed formed from a mold I made. It could have been less scary but it turned out OK. This Meccanoid stands at 5 feet - the extra length in the legs, feet and arms is from using parts from a spare Meccanoid. I fitted a mouth servo, movement sensor, ultrasonic sensor and camera and the grippers are from an EZRobot JD humanoid. EZ robot HDD servos are the same size but you have to file the inside of the tiny plastic sleeve from the Meccano servo horns so they can be screwed on to the EZ robot servos. The feet required a lot of messing around to fit the EZ robot continuous rotation servos. You can see from the picture below how tall it is compared to the 4' Meccanoids. Obviously I made heads for of all my Meccanoids as I prefer to have some sort of mouth even if it just lights up. Happy to help with more photos or info.
You have a Marvin robot? Ferris Bueller, you're my hero!
Wow what a great collection. I love the mix and match idea to build taller Meccanoids and encasing then. The Marvin robot is great. I would love to see a demo. Is he just as irritable as the real one. Brain the size of a planet and you have me working at a museum.
I used Marvin dialogue from the TV and radio series. There has been little opportunity to do much with my robots since Covid-19, but I did make a music video with them. Here's the link to it if you want to see them working (incl Marvin) ... https://www.youtube.com/watch?v=k5B-sd6zRzI
afcorson, Thank you for responding and sharing info on your EZMecco. Your video is amazing, complete with the drive up arrival. I was also thinking of foam board, to minimize extra weight. Will also look into the balsa wood options. It appears more rigid, and less wobbly then a standard mechanoid. The photo shows well your modifications, having them side by side. I have servos ordered, and this gives me something else to work on besides my navigation robot. My grandkids will really enjoy this. No hurry but, if you have any photos of the rear of the robot, and the claw that would be great. I also have two extra JD claws, and was thinking of utilizing the meccanoid fingers some how. Thanks, Steve S
Hey hey great work indeed,keep it up!:)
@afcorson, Wow, that video was, well, a lot of hard work. It was nicely cartooned and the music was nice. It's interesting to see that our collage kids and future scientists are being thought this kind of brain training and logic.
Wow great robots - thanks for sharing
Any videos of them moving?
The current version of ARC is freezing again. I removed the variable monitor control and this worked well until last week. Now it freezes all the time and is unusable. The attached screen dump shows the process running under ARC. Is this normal? I haven't yet determined any pattern for the locking up, but I have to kill the ARC process every time it locks up. Is anyone else having this problem? I have made no changes to the robot or program. I'll do more testing over the next few days.
Here is the error log...
EZB 0: EZB 1: EZB 2: EZB 3: EZB 4: Windows version: Microsoft Windows NT 10.0.19042.0 Screen Resolution: 1536x864 (96x96 dpi) ARC (Teams) Version: 2021.03.02.00 Speech Recognition Culture: en-GB Loaded speech recognition successfully Attempting connection on 192.168.1.1:23 Connected to 192.168.1.1:23 Reports EZB v4 OS With Comm 2 Firmware 'EZ-B v4.x/2 Native Firmware' on 'EZ-Robot EZ-B v4.x/2' supports the following capabilities:
EZ-B v4.x/2 Native Firmware ID: 48-50-0-0-120-255-59-59-59-38-38-38 Setting battery monitor voltage: 6.5 Setting battery protection: True **WARNING: The low battery warning monitor value is set LOWER than the recommended default of 7v. Your voltage monitor set for 6.5v. If using the LiPo batteries, for battery longevity and your safety we highly recommend that you change the low battery monitor back to 7v. This setting can be found in the Connection Control Config Menu. Setting i2c rate: 300000 EZ-B voltage is 7.678518792 EZ-B temperature is 24.81367440630666168C Connected Comm Err: System.IO.IOException: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 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.EZB.uNCRWAcYFg(Int32 , Byte[] cmdData) BbytesToExpect: 2
Received: 0 0 Disconnected
That error is from disconnected wifi - the "freezing" might be due to a process or script that is repeating and either flooding the data channel or waiting for a data response. I'm leaning toward the power consumption issue on the EZB and it browning out rather than flooding the datachannel.
Check for a good wifi channel that doesn't have any interference. Secondly, if you have the ability, hardwire the ezb to the pc.
Lastly, ensure the EZB isn't "Browning out" due to power supply limitations. Consider if your servos are powered directly off the EZ-B v4 and if they require a better connection than the little ezb traces? How many amps is the robot drawing?
Give this a quick read: https://synthiam.com/Support/troubleshooting/EZB%20Disconnecting
See if your robot checks the boxes for having adequate power.
As an FYI, ARC is primarily tested with a few virtual machines that run through a bunch of unit tests. But, the big test is that ARC is running 4 robots 24/7 connected to Exosphere. They are performing multiple camera tracking, NMS, etc.. And they're live so people use them throughout the day. Generally, you can dismiss ARC core as causing issues. I find it's best to work backward from the robot in this order...
How many amps is the robot drawing?
How many amps is the power supply rated for?
Is the EZB connection over WiFi? Check for the Wi-Fi channel saturation? Use THIS TOOL to check and use a less saturated channel. If possible, consider hard-wiring the EZB to the PC.
Are there any i2c devices connected to the EZB? (i.e. RGB Eyes, Compass, Accelerometer) If so, ensure the wiring and connectors are secure. I2C devices with poor wiring/connections can lock up many microcontrollers
If those items above do not resolve the issue, the next step would be to consider looking at the ARC project.
I think I am getting better at diagnosing my robot problems. First thing I looked at was the LED RGB board which was not lighting up in the usual manner. And sure enough, the wiring was faulty caused by the head be wrenched sideways with too much button pushing by visiting student groups. When the wiring to the RGB board was re-secured, the robot worked perfectly (touch wood). I am so glad this was all it was, otherwise I could have wasted many hours. Thanks for your efforts though.
Great to hear! Were you able to implement the enable/disable buttons in the interface builder?
Not effectively. I use my $ScriptRunning variable to skip to the end of the code if a button is pressed when one is still running. I couldn't work out a way of disabling buttons other than this method.
Here’s a link to your feature request that contains a solution: https://synthiam.com/Community/FeatureRequests/Disabling-button-in-interface-builder-20431