Asked
Resolved Resolved by Dave Schulpius!

Adjusting Encoders On A Roboclaw 2X15

Was wondering whos the resident expert here on using the Roboclaw  Motor controllers here?  I am aware that it operates simular to the Sabertooth motor controllers.  My issue is in the use of encoders and the Autotune feature on the Motion Control software used with  the controller  and am wondering who might have very results in using getting motors and encoders and the software all to sync up correctly.  I have tried moth RC mode and simple serial mode and get different results every time I try to calibrate the two drive motors to run at same time (trying to run a straight moving forward line ya know).

I have two 78RPM motors with encoders from SuperDroidRobotics that I am using. Seems in RC mode, I can get motors to sync up and the robot moves straight, just not able to get it perfect via the simple serial mode, and I have been using the recommended paramaters as described by the motor controller users guide.

Am wondering if I am missing something here? I just want to make sure the encoders are helping with keeping the two motors running at same rpm to achieve a straight line when moving forward or back.

Also, since I'm using the ARC Sabertooth Plug-in to control ,  I notice that it recommends to use one of the hardware UARTs (ie: UART2 pins D18 and D19), So shouldn't both the TX and RX lines be connected between EZB and controller even though somewhere here its stated to use simplex mode? (why not use both in packet mode?)

User-inserted image User-inserted image User-inserted image

Any help and insight would be great. Wanting to get this up and running quickly before moving onto next part of the build.


Related Hardware EZ-B v4

ARC Pro

Upgrade to ARC Pro

Harnessing the power of ARC Pro, your robot can be more than just a simple automated machine.

#1   — Edited

I've never used RoboClaw but have always wanted totry one out. I dont know if there is a word around for your issue but I don't think you can use encoders the way you want with this controller:

Here's the online Roboclaw manual: https://downloads.basicmicro.com/docs/roboclaw_datasheet_2x30A.pdf From the manual:

It looks like with the Roboclaw encoders are not supported in Simple Serial Mode"

Quote:

Simple serial is a one way format, RoboClaw can only receive data. Encoders are not supported in Simple Serial mode

Quote:

Quadrature encoders are directional. When connecting encoders make sure the leading channel for the direction of rotation is connected to A. If one encoder is backwards to the other you will have one internal counter counting up and the other counting down. Use Motion Studio to determine the encoders direction relative to the motors rotation. Encoder channels A and B can be swapped in software using Motion Studio to avoid re-wiring the encoder or motor.
Are you changing the control mode when switching back and forth between RC and Simple Serial? Control Modes

Quote:

RoboClaw has 4 main functional control modes explained below. Each mode has several configuration options. The modes can be configured using Motion Studio or the built-in buttons. Refer to the RoboClaw User manual for installation and setup instructions.
Do you have the Claw set to Simple Serial mode? 

Quote:

Simple Serial In simple serial mode RoboClaw expects TTL level RS-232 serial data to control direction and speed of each motor. Simple serial is typically used to control RoboClaw from a microcontroller or PC. If using a PC, a MAX232 or an equivalent level converter circuit must be used since RoboClaw only works with TTL level inputs. Simple serial includes a slave select mode which allows multiple RoboClaws to be controlled from a signal RS-232 port (PC or microcontroller). Simple serial is a one way format, RoboClaw can only receive data. Encoders are not supported in Simple Serial mode
Unlike  Roboclaw, a Sabertooth/Kangaroo does suppoer encoders and has two way communication in Simple Serial mode. However you only really need a TX line hooked up. Using the TX connection, ARC will send a Simple Serial command and the ROO and it will do the work to get the Sabertooth to move your motor (or motors if set in dual (tank) mode) properly. If you want the Roo to report back to ARC where the motors are or how fast they are going then you can add a RX connection that the Roo will use to send this information back to ARC.

#2  

Hi Dave, Sounds interesting about the Roo being used with the Sabertooth. I actually do have one of those and a 2x12A Sabertooth controller. I was originally gonna do that configuration but opted for the Roboclaw, since having good luck with them in the past. I just need something to keep the motors synced up. Funny how the RC mode seems to that but not so when using a microcontroller. Ive been tweeking the numbers used for direction and speed somewhat, and will have to continue to try more.

#3  

It's unfortunate that the Roboclaw wont work with encoders in Simple Serial Mode. I wonder if the Roboclaw will accept ARC servo commands like the Roo will? You can use these commands with a Kangaroo/Sabertooth instead of using simple serial if set up properly. Instead of connecting through a UART port you connect to a digital port and send the proper servo command for that port. I can't remember right now if the dip switches need to be changed. There are a couple threads here about how to do this.  I don't know how the Roboclaw works but if you are using RC and a Sabertooth you don not need a Kangaroo. You connect the RC receiver up to it's input ports. Dimension Engineering even have a RC version of the Sabertooth.

#4  

Hi dave, Yes, the Roboclaw does accept the same simple serial commands. I am isomg both type of controllers on different projects. I currently am using it on another robot. Im using port D12 set up for 38400, but not using motors with encoders. Control is via custom settings thru the Continuous Motor Control plug-n. This is my first time using them. Im kinda hoping that by using the Motion Control software, I had wanted to autotune both motors and it is supposedly  suppose to store these values into the Roboclaw boards memory, and is hoping the motors sync up whether rc mode or serial mode. I am awaiting this confirmation from support at BasicMicro about this.  If not, I may just go without the encoders and setup new robot like previous robot and simply tweek the values for each motor. Time consuming but can be done.