Fun With A Kangaroo/sabertooth


This is a video to show you guys how good the Kangaroo/Sabertooth motor controller combo is!

Dave, this video starts by showing the ramp-up - full speed - ramp-down algorithm that I coded on the PIC microcontroller, you will see how GET_POS is read and controls the ramping up/down. The ramp-up and ramp down rates can easily be change via a variable. When I get my V4, I will port the algorithm over to an EZ-B script for those that want it.

The second part is to show you folks how important encoders are, here you can see the incredible synchronising that the Kangaroo's auto-tune PID has. I have sent it precision movement (distance) commands for hours with barely no loss of motor synchronisation which means that you can build a robot that will accurately move in a straight line and move/turn to the exact distances that they have been previously programmed/taught. I use this for accurate room mapping and having pre-learnt routines which enable my robots to move from one room to another or to a particular room location.

User-inserted image


@Tony, This is wonderful! I'm so glad you talked me out of ripping out my Kangaroo / Sabertooth and not going back to a regular H-Bridge. You make it look so easy. I fooled around for over a month to get mine to operate even close to what you did in such a short time. I did get my set up to ramp up and down at different speeds and stop at any spot I wanted. However even with useing your precentage suggestion I just couldnt get my script to stop the ramp down the proper way. I even used a pot attached to EZB's ADC ports for feedback to trigger the ramp down script with mixed results. I got flustered and busy with other things around the house and gave up till I got my new EZB. Now that I have the V4 EZB and have two way serial communacation I can use Kanngaroo's Get() function and give it one more try. If I do get it to work I'm sure it will not be as elagent as your script so I'm really looking forward to useing it when you get your V4 and find the time to port it.

Could you tell me how you have the Kangaroo set up? Where do you have the dips? Are you running in Postion or Speed Mode?

By the way, sorry I didnt return your private email last time. Life tends to sweep me away at times. *tired*


That's some great work, you'll have me believing in encoders soon Smile

Sabertooth and Kangaroo are certainly being added to my wishlist now! I don't have anything planned for them but I'm sure I'll think of something.


Yes! This will definitely solve most of my robot challenges if I can get it to work. I was sold with the RC video that dimension put out but your video put it over the top. I just added magnetic encoders to my motors yesterday (tip, don't use a vise to hold a thin ceramic magnet while drilling a larger bore)
However, i'm using the v3. I posted this question to Dave in another thread but maybe everyone here will know. I was reading this in the kangaroo manual yesterday:

[i]Enable multi-Kangaroo mode (shared signal lines)
When disabled, Kangaroo drives the S2 line high when it is not sending data on it, to give a stronger idle signal. One consequence is that S2 cannot be shared.

When enabled, Kangaroo will only drive S2 when it is sending data, and will enable an internal pullup resistor when it is idle. The idle signal is weaker, but S2 can be daisy-chained between them.
[/i ]

would this solve two way with the v3? @Toymaker i'd very much be interested in the v4 script or maybe a control feature on the ez-gui could be added.

Thank you for posting this, it makes me feel better about my project.


@tony i ordered 2 of these for lexi's drivetrain and arm motors. I was under the impression that its a plug and play but i see in your video you have an additional circuit. Is that necessary? I am assuming that the ezb would be sufficient.


Yes the EZ-B should be sufficient however it is not natively supported and will require the SendSerial() command to be used. If popularity increases I am sure DJ will add support for it to his list of additions for EZ-Builder.


@rich so basically the same way im going to be talking to the servo controllers.


I am watching this thread with great interest... i could not get the kangaroo to work as Anthony suggested (plug n' play).... Dave I think used a pot for initial set up of the kangaroo leading me to believe at this point (until maybe an update of ez builder) you'll need more than the ezb to get the kangaroo up and running...


@Lumpy has used the Kangaroo on his R2D2, I was under the impression that it was working fine but I may have missed a post or something.

In theory it should work, it's a serial controlled device which sits between the EZ-B and the Sabertooth. Provided you send the correct serial commands it should work without any problems.


mdeming1, I don't think your idea will work. EZB needs to receive serial commands to let the two work together. The only way I found around this was to attach a pot to the motor and then ezb's ADC port. That way EZB knows the position of the motor and can interact with EZ scripts in EZ builder. Of course with pots you are limited to how many rotations you can go.