After weeks of delays, the two weeks of handling & shipping, followed by a business travel and school exams, my 12-year-old and I finally found the time to sit together for a whole afternoon to build the Roli robot we ordered. We were both so excited to finally work on this. We had spent two evenings looking for the right robot kit to buy, to hack with.
We unpacked the box, followed a few videos, got the Roli together in little time. Though the instructions weren't perfect, I was able to fill-in the blanks with enough of my past experiences: I'm a SW engineer, with electronics background. I mostly code in C++, but worked on the whole stack, from server side PHP/HTML code, to Android apps in Java & C++, work on Linux, Mac and Windows regularly for work, and even wrote a few HW drivers when the need arose. I build my PCs from parts, and many many years ago, I was good enough at hand soldering together "decoders" composed of roughly a hundred electronic components to make pocket money (different time, different country...). So while this is my first experience of the kind, and never enjoyed electronics classes, I should have enough experience in all the areas involved to do this.
Here are the pain points we're stuck with: the servos are super unreliable, some of them are working ok, some are working half the time. Sometimes, the robot "dance" works reasonably well, sometimes an arm get stuck. And yes, I've checked & verified all the connections, making as sure as possible they were tight. I also opened the body of the rover, following the online instructions, and double-checking all the internal connections. No difference. I can calibrate the robot reasonably well, 50% of the time. It then can go to the "rest" position, but not always, as often, an arm won't lift up. That, after hours of tinkering, well past my kid's patience. I'm on my own now.
So OK, the arms are not a deal breaker: all we set to build was a robot we could control with a joystick, that would stream video to the PC, to check our crawlspace. The arms are gravy.
But then, the rover won't move as expected.
The forward arrow will make the left side go forward, but the right side is idle, neither moving or preventing me from making the wheels turn in either direction. Sometimes the right side actually moves forward a tiny bit, but so much slower than the left side that the rover still turns to the right, almost around the right wheels.
The right arrow nearly works: both side move in opposite direction, with similar force & speed. At least, they do now: it used to be that one side was very significantly stronger & faster than the other.
The back arrow make the right side spin fast, and it's the left side that's almost stuck this time.
As for the left arrow, it makes nothing happen. I can't remember that it ever did anything.
So both the right and the left motors work, but only in one direction. I'm hoping that this behavior can be explained by some simple wiring issue. Any idea?
As for the servos, I'm not sure if that's just what it is, and I should just not have expected more. The way I see it, they are barely strong enough to hold the arms for calibration, and fear they're already burning out in the process, because the arms are stretched forward in the calibration position, not up, to minimize the power needed to maintain position. Sometimes, the robot starts to shake to maintain the position, and I have reduce the weight of one arm slightly, to make the shake disappear... The arms seem just to heavy to hold themselves with enough ease. When I start the robot again (of course, after a full charge), I have to re-calibrate the arms, and had to apply massive increments of about 45° in some cases (apparently, that one servo moved by that much after a few hours, and a day later, I have to undo that offset). How does this make any sense?
I'm just massively surprised by what I found: not only does the whole thing appear to be super flaky and weak, with enough warnings about burnt servos to understand that I should not expect them to live very long, as mistakes will burn them out quickly, but the software is clunky and unintuitive. I can't imagine ever recommending this to a school, which I was hoping to do, as I have yet to work on the problems I was hoping to work on: making an inventory of the parts available, deciding what part to use and how, figure out how to wire them, how to control them from some simple test code, hook the joystick controls to these commands to make them do what we decided to...
Instead, I'm spending my time figuring out where things are in the UI, how to make them reappear when they're gone (I even uninstalled & reinstalled the software to restore projects, since opening the online Roli project leads to XML parsing errors...), and worst of all, I'm trying to make the robot itself work well enough that I can try to look at writing any script.
Just the fact that the servos can burn out easily if you don't use them correctly, means this is just not right for a school were mistakes are part of the process. Had all the rest been 100% perfect, that fact alone is a deal breaker.
Thanks for the extensive write up. Sounds like there's easy solutions to your questions. To summarize, some sections of the tutorial has been skipped and the software is outdated. We'll get you up and running like the rest of us in no time!
1) You will find the Roli course, which explains how to properly assemble the robot here: http://www.ez-robot.com/Tutorials/
I see you have marked courses as completed. However, i know there's a lot of content and it may take some people a little longer than others, don't let that discourage you. If you do not follow the instructions, the robot will behave or operate incorrectly, as you are experiencing. The steps that are most important to your symptoms are...
- Assembly instructions (ensure the servos are in the correct place): http://www.ez-robot.com/Tutorials/Lesson/27?courseId=3
From the description, one or more of the servos are connected to the incorrect port of the ez-b. This is like connecting your arm muscle nerves to your leg - that would be funny to see but not very useful to accomplish anything
- HBridge connection (this is why your robot is moving incorrectly): http://www.ez-robot.com/Tutorials/Lesson/39?courseId=3
You will notice in the HBridge tutorial that there is a note which directs you to connecting the hbridge internally if the robot is responding incorrectly. Since your robot "may" be responding incorrectly for movement, it's a good idea to follow the instructions. It's important to follow the directions, as this is a learning platform . However, your robot may be turning left because the speed dials are not adjusted (but i'd check the connection as well)
2) The software has a default project for each roli, which you have discovered. This is covered in the learn section for the respective robot. However, once you load the software and experiment with the default settings, you may wish to begin programming. At the end of the lesson in the learn section for your robot (Roli), there is a paragraph directing you to the Activities, which has not been followed. Visit the Activities to begin learning how to use the robot and learn the software.
You cannot simply close windows and change the software without learning first. The learn section is very extensive and important for new users. As a programmer, you're more than experienced with that statement . One step at a time, or in this case... one tutorial at a time - this isn't a toy.
3) The movement buttons are going to move the robot IF the speed sliders are set. The learn section has a section for Roli that explains how to make the robot move. It's in the Roli lesson and is titled "Making Roli Move", here's a link: http://www.ez-robot.com/Tutorials/Lesson/39?courseId=3
Reading that lesson will teach the PWM Sliders which control speed. The speed of each motor will have to be configured if the arrow keys are going to be used for driving the robot. There is a screenshot in the tutorial and a paragraph introducing the concept of PWM speed control. In further lessons, you will slowly learn more.
4) You're absolutely correct about recognizing the messages/warnings regarding servos. EZ-Robot's are not toys. Servos are not designed to carry anything. The servos and platform is designed to teach you..
- how to assemble a robot
- how to control a robot
- how to program a robot
The robot is not a toy for carrying objects. The warnings about servo motors is to ensure you..
- understand their weight limitations
- do not over exert them by assuming the product is a toy
The resting position of a Roli has his arms upward for resting. Only during Servo Fine Tuning will the arms be outward.
5) If your roli requires servo fine tuning of 45 degrees, then..
- you are not calibrating to the correct image matched on the computer monitor
- the servos require physical calibration requiring a philips screw driver as per the lesson in the roli tutorial.
Good news, all you have to do is follow the learn section and you'll be up and running Have fun!
oh, i forgot to tell you the exact tutorial step in my last response. There is a section in the Roli lesson titled "Calibration And Wiring". If your servos are not initializing to the resting position during connection, then they must need to be calibrated. This requires a Phillips head screw driver and the instructions on the Roli learn section.
Everything you need is in the learn section
Even though you may have "rechecked" the wiring numerous times, it sounds to be still incorrect. The last time you need to check it will be the time you get it right
If you can post questions, there's a lot of people on the forum here who will help you get up and running.
According to your usage log, the version of EZ-Builder is very out of date. When the software is loaded, a prompt informs you that an update is necessary. Update the EZ-Builder software when you see the prompt for a new version available. Out dated versions of the software cannot load newer versions of projects.
Please update the software and you will no longer receive errors when attempting to load projects. I can see the errors you have been receiving and it is due to outdated EZ-Builder software.
Visit www.ez-robot.com and click on the SOFTWARE tab. Download and install EZ-Builder for windows. That will help
Thanks DJ for the replies.
I'm confused by the outdated software advice though, because I installed the software when I ordered a few weeks ago, and when I ran it again this week-end, I was prompted quickly to update, which I did immediately. I eventually uninstalled & reinstalled the software completely, as I could not recover the project as I had it initially, so I should really have the latest software already... I'll check again, if for some reason I ended up downloading an outdated version, but I know for sure the section that prompts for updates isn't asking me to update at the moment. I downloaded this package twice this week-end, but of course, I see now that a new version was just posted, I'll try it.
As for the lessons you're pointing to, https://www.ez-robot.com/Tutorials/ tells me I've covered 100% of the Roli material.
I'll go over all this with the material, again. But it's not like I haven't been through all the Roli material, several times already.
The inconsistent behaviors of the arms don't agree with the calibration theory. While some might not be perfectly calibrated, I have seen the robot dance correctly a couple of times, so I know the orientations are correct now (they weren't initially all correct). Then one arm stopped working. Then it worked again.
At some point, it was stuck down. I gently lifted it, and halfway up, the servo kicked-in and lifted it all the way up, where it was supposed to be. Until it got stuck in the lower position again. This happened a number of times, and that's what I call flaky.
I know all the wiring is correct, because the calibration phase demonstrates that I got that all that wiring right: I can use the UI to adjust each servo individually as expected. It's just that the settings don't seem to stick over time. As for the wiring the of the hbridge, I posted a picture that shows it all, and I double checked the internal wiring already and found no mistake in the assembly.
So while bad connections or incorrect orientations are always possible, incorrect wiring isn't an explanation that's credible, as it is directly contradicted with the direct manipulation of each individual servo as expected during calibration.
What I'm really left with, is:
- I'll check the new version of the software. I'll uninstall everything and install the latest version.
- I will disassemble the arms and calibrate & test each servo one by one. I guess that's where I should have started.
- I'll check the hbridge & motor sections. I've spent less time on this part, so maybe I missed something.
EZ-Builder is very active development. Click on the release notes within EZ-Builder download page. You will see there are updates sometimes weekly with new features. It's a very active community here
As a programmer, you will enjoy the plugin section once you are familiar with the EZ-Builder software environment. The plugin section has a great step-by-step tutorial that will have you creating custom fun plugins in no time!
As for the servos - if you find the servo is occasionally "not holding position", it may be one of two things
1) a loose connection to the ez-b. Meaning the plug to the ez-b may not be making connection. This can happen when the Roli Rover Lid is added
2) the servo is indeed faulty and will need to be replaced
Rarely do the servos require a calibration from factory, but due to varying tolerances of combining both electrical and mechanical parts, some servos may require manual calibration. Once a servo is manually calibrated using a philips screw driver, they will never need to be calibrated again. Calibration really means configuring the plastic lever to rest at the correct position of what the servo thinks 90 degrees is.
If you find the servos are occasionally not holding position or being "flaky", as you described, those servos may need to be replaced. I would personally like to see the flaky servos for testing to understand what strangeness you have experienced.
Let me know - we're all here to help out and grow the product
Oh - one last thing - and apologies for flooding your email box.
When EZ-Builder is updated, use the latest Roli project instead of your custom roli project. There were a few modifications to it in the latest EZ-Builder releases.
Make a video in youtube.
You can use your Phone.
A Video say more as 1000 words.
When I read your post,
I thought of using a wrong control console.
With a little video,
we can see better your problems.
All right then.
- I updated the software
- I disassembled the robot
- I calibrated every single servo (3 or 4 needed adjustment, but nothing major). Hopefully, when I reassemble the robot, the arms will work a little better.
- I re-checked the internal connections of the Roli.
And I finally found the problem that prevented the robot from moving: the entire internal wiring was backwards, as shown on the picture attached!
As you can see, they connected the 4 wires to the wrong series of 4 pins, and the 2 remaining wires to the wrong series of 4 pins... Because the shape of the pattern and the apparent order of the wires was the same, I did not catch this mistake the first time around! So this one's on your team, DJ! :-)
Now, the robot moves correctly, and even the joystick is working as expected.
Here is the picture of "our" wiring, as I meant to post it the other day (I did not hit the upload file button, and did not realize the photo was not uploaded...)
Our first "real" project then, will be to make the second thumb of the joystick control the camera position.