
Hey Lumpy (or anyone who can advise). I'm addressing this first to Lumpy because I know he is using and working with the Kangaroo X2 / Sabertooth setup. If anyone has some insight please chime in.
Anyway, as mentioned in other posts I'm working through issues with my Kangaroo X2 / Sabertooth setup where I'm using two DC motors that have pots for feedback and limit switches. I now have both motors responding through serial commands from ARC. I had an issue where I was continually getting error codes at power up and would have to power cycle the unit to get it to respond to serial commands. However I found I had to make sure the Sabertooth/Kangaroo powered down completely when the robot and EZB was switched off and then powered up after the EZB was powered up.
My issue now is trying to get the speed ramping feature of the Kangaroo to work. There are different ways to set up the Kangaroo; Velocity or Position control. I cant get the speed ramping to work when serial commands are sent from EZB in either control setting. However, I can get ramping to work nicely in Velocity but not Position tests when using the "Live Test" section of the Describe software used to set up the Kangaroo. When doing these test I'm attached directly to the Kangaroo with a Serial Adapter from a USB port of my laptop and EZB is not connected.
Without any ramping my motor will jerk to full speed and stop suddenly. I've e been working with Dimension Engineering on this for weeks but it's been painfully slow. The only way I can get help from them is through e-mail and it sometimes takes days for them to respond. Then I'll get a one sentence question or answer like "sounds like you need to make sure to upload your settings and reboot" or please send us a copy of your settings. This must be a newer product with limited users. I've found no community forums and few people posting info on this board.
One other thing. What is the best way to set servo control to work independently on the Sabertooth/Kangaroo's second motor channel? So far the only way I've been able to get it to work is if I start the first motor Chanel with a servo command and don't release it. I am using a second cable attached to a second digital port on EZB and attached to S2 of the kangaroo. I'll call that port when I want motor 2 to respond to a servo command.
I must say it is a great little board and from what I've been able to set up, it works great. I like the idea of being able to send servo commands to control my DC motors. Very precise and quick. If I can get this speed ramping issue figured out it will be an excellent addition to my B9 robot motor control.
@Dave... sounds good Dave, thanks....
I just ordered C# for Dummies and C++ for Dummies off of Amazon. Free 2 day shipping so it should be here by the weekend. I really want to understand what I'm asking here and hopefully lend a hand. I know it's a complex language and will take some time to learn but at least this will give me a base and a start. Hopefully I'll be able to at least write a simple cammand to send over serial and know what I'm trying to do.
If you buckle down C shouldn't be too difficult... I use EasyC for my vex stuff, but it's not C... it does spit out C pseudo code so one can see how C works as a language... However, EasyC is really just a graphical language that has almost no C programming for the user. Robot C is another Vex controller (among others) language that is nearly full blown C... That I wouldn't mind learning... I do agree with you C is worth learning.. I would learn C for no other reason than to establish a serial connection between my EZB and the Vex controller .... Maybe I should I should learn it, then...
interesting and informative thread, Dave I need hep with this
Hey Reed, good to hear from you. I'll be glad to help as much as I can but I'm at work right now and have a busy evening ahead of me. I'll try to get back to you on this as soon as I can. This is all thread and lots has changed since then. Good news is that the kangaroo now has built-in ramping. You do have to access the controls through the software which means you need cables connected in the proper way to your computer. It's all a little confusing and frustrating at first but once you get the hang of it it's really an awesome and easy to adjust set up. Getting into the software and making adjustments is the best way to get the best results. You will also need a good feedback device attached to your kangaroo and your motor. Pots are okay but I really suggest encoders. Once you have a kangaroo properly tuned and your ramp settings adjusted the ez script to move your motor is very easy. Just a few lines and some sleep commands and you're good to go. By the way I connect my kangaroo 2 my EZB through the serial port. That's the only way you can get feedback to the kangaroo from your encoder. I can send you any commands you will need to put in your script. Good luck and have fun. I'll talk to you later.
David, at the beginning of this post, you mentioned: I had an issue where I was continually getting error codes at power up and would have to power cycle the unit to get it to respond to serial commands. However I found I had to make sure the Sabertooth/Kangaroo powered down completely when the robot and EZB was switched off and then powered up after the EZB was powered up. I seem to be having that issues as well. How did you resolve it? How did you get the Sabertooth/Kangaroo to power down completely, and how did you make sure the Sabertooth/Kangaroo powered up AFTER the EZB was powered up?
This was an issue to me because my robot had a battery attached in line that kept power feeding the even after the robot's main power switch was turned off. At that time my robot pugged into the wall and was powered through a AC to DC converter. I used that battery only for a place to dump the regeneration power created by the Sabertooth. If not used the regen power would have kicked out and possibly damaged the power supply.
I solved that issue by placing a relay between the battery and the sabretooth that was controlled by the EZB and ARC. When the robot was powered up the relay would be in the NO position keeping the dump battery disconnected from the Sabertooth. ARC would then run a script that would close the relay and connect the two. When The robot was powered down the Relay would naturally open and disconnect the dump battery and let the Sabertooth/Roo power down.
A much better solution is to simply buy a Sabertooth 2x32 Sabertooth. the Sabertooth 2x32 can is shipped and configured to allow it's power outputs as a voltage clamp to operate from a power supply without a parallel battery. A much more elegant solution.
I guess my issue is something else then. I am just using batteries at this point. Have the EZ-B on a separate power line than the sabortooth/kangaroo. So what is happening is, after I got the kangaroo "trained" with the limits (used teach mode), I created EZ-B scripts to set the max/min for both motors, set the initial speed, and set the initial position (which is the end/home position). Then I created a script to shutdown the robot, moving motors to the start/home position. Then I powered off the EZ-B and sabortooth. Then I turned them back on, ran the startup script, did some moving of the arms, and then called the shutdown script. Then power off. And repeated. This all worked fine. Then I powered off once more, left it off of several minutes, then powered back on, ran the startup script. Then when I attempted to move the arms, nothing happened, and the LED on the Kangaroo now flashed 3 times. Don't understand why it worked a couple of times, and then quit working. When I re-power up, and run the startup script, all seems fine, no flashing LED, no errors from the script. But as soon as I try moving an arm, the LED starts flashing 3 times.