Asked — Edited
Resolved Resolved by irobot58!

Lumpy, Lets Compare Notes On Kangaroo X2 Please

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.


ARC Pro

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.

#33  

What device are you using for feedback? 3 flashes is a control error. From the manual:

Quote:

Control error, channel disabled. Check to make sure your feedback sources are working and the system matches how it was set up during the tune.
If you are using an encoder? You probably know this but you need to home the motor each time you restart.

If you are sitting on a limit switch on start up you will have issues.

How are you sending your commands? Simple Serial through the Uart or servo commands? Some of my motors I have controlled by the Kangaroo I have attached to EZB's digital ports and control using servo commands. I have had issues with them nor responding if they are out of position on startup. However I don't get an error code so this is probably not your issue.

PRO
USA
#34  

I am using a gear motor with encoder. Using EZB digital ports and servo commands to send commands. Now that you mention it, I believe it might be a homing issue. The motor does seem to start to move just a bit, then quit. I believe I saw a setting in Describe control software where you can set the Origin and homing positions. I’ll take a look at that tomorrow and see what I can set/try.

#35  

If you are using digital pins with servo commands I don't know of any way to home manually. When using servo commands I set the Min/Max settings and position and speed for these Sabertooth/Roo controlled DC motors in my INT script. It seems that the motor first moves on it's own to a limit switch the first time I send a servo command then moves to it's command position. Sometimes if the motor is in the center of it's travel it wont do it on it's own. I have to send a position manually then it will find a limit switch and then proceed to the position.

PRO
USA
#36  

I think I finally got this figured out. When the Kangaroo is programmed using the Teach Mode of Auto-tune, it assumes that the start position is in the middle. So when it first powers up, it reads the PWM setting from the EZ-robot, then calculates how much/direction it needs to move the motor to get it to the PWM setting. In other words, if the PWM is at say 50 (of 1-180), it would be 40 units short of center, so the Kangaroo moves the motor 40 units backwards from center. If at power up, the motor is actually at PWM position 20, when the Kangaroo powers up, it again assumes it is at center, figures it needs to move 70 units backwards (to get from 90 to 20), and then the motor hits the limit of travel, and the Kangaroo errors. Turns out, there is a setting called Origin which can be set via the Describe software. That Origin is the line count of the encoder, and is set to 0 when you do the Teach Mode (line count goes from negative to positive, with zero being center of travel). Using the Describe software to set the Origin to the min or max line count (shown on the position tab of Describe), will make the Kangaroo assume the start position at power up is that min or max value of the Origin. In my case, the min line count was -1375, max was 1375. I set the Origin to be 1375, and updated Kangaroo with the new settings. Then I did a power off/on, and now everything works like I need it. I make sure my motor is at the start position (1375) on power up, and the PWM setting on EZ-robot is 1, and then there is no initial homing of the motor. Of course, I must make sure when powering down, the EZ-robot moves the motors back to the initial start positions, before I turn the power off, but that is something that has to be done anyway. Only issue will be if the power is ever cut off before returning to start positions, then everything gets out of sync. But that’s another problem, for another day.