BasicMicro_RoboClawThe BasicMicro_RoboClaw provides an interface from RoboRealm to the RoboClaw distributed by BasicMicro. The RoboClaw accepts multiple types of inputs (including PWM) but the module is created to interface via a serial interface in order to take advantage of the quadrature encoder inputs that the board supports. Having PID loops calculated and reacted to onboard the board allows for quick reaction time and offloads this time consuming function from other computing devices.
Note that the serial communication is TTL levels so you will need an additional device such as the Pololu USB-to-Serial Adapter to connect to SW1 & SW2 on the board to a USB cable.
This module expects to communicate with the RoboClaw using Packet Serial Mode. See the documentation for your specific device as to how to set it to receive that form of communication. The assumed address/ID is 128.
1. COM Port - Select the COM port that has registered your USB to serial adaptor. You will only see COM ports that are recognized by your computer. Note that direct serial connections normally use com ports lower than 4 whilst virtual COM ports created by USB connections are much higher. You will know when you have the right COM port by the population of the Controller Model text seen next to the stop button.
2. Baud Rate - The connection speed. No reason to change from 38400 unless your serial adaptor is slow or over a wireless link.
3. Motors - After specifying the COM Port you should be able to move your motors by dragging the sliders to the right or left or by specifying a number within the "Current Value" text box in the Motors area. If the motors do not move (or whine) check your COM Port setting and/or board connections.
4. Variables - Select the appropriate variables that contain or will contain the position value that will be sent to the RoboClaw. This is used to automatically change the motor values based on your VBScript (using the SetVariable function) or Extension based program or other modules. See Variable Control for more information on how to programatically move the robot.
6. Current Value - To manually set the motor position type in the appropriate number (-1000 to 1000, 0 is the default neutral/stop) into the text area or use the slider to adjust the value. The motor speed will be updated as appropriate.
7. Min/Max Limits - You can also use the min/max limits to ensure that even if the variables specify large or low values (due to programming errors) that the robot does not actually attempt to move the motors above or below the specified limits. This can be used as an additional precaution in case you are testing your robot in a precarious position.
8. Encoders - To enable the encoder area click on the group checkbox. This will enable the encoder readings and display the number of encoder ticks that the robot has traveled. This also switches the motor commands to now respect the encoder feedback. You may notice a speed change by enabling this checkbox.
If you enable this area and then move the robot using the Motor sliders you will see the encoder values change depending on how fast the robot is moving. Specifying variables in the dropdown will cause those variables to be set to the current values read from the robot. Also note the "Reset" button that can be used to reset the encoder values on the robot to zero.
9. Kp, Ki, Kd - Specifies the Proportional, Integral, Derivative values that the RoboClaw uses to maintain speed. The board uses these values in a formula to adjust the actual motor values to be different than that of the desired motor values to ensure that the motors are actually moving in such a way that best represents the desired speed. For example, if you are traveling along a flat surface with motor speeds set at 30 (slowly forward) and suddenly encounter a hill this slow speed will not suffice to get the robot over the hill. With the PID loop enabled the lack of actual motion will be sensed by the reduced encoder count and cause the actual motor values to increase such that the encoders continue to report the same count. Thus the robot will not slow down when encountering a hill. See Wikipedia for more information about PID loops.
10. Encoder Pulse Rate - The RoboClaw will drive the motors based on the pulse rate received from the encoders. As you may use different encoders this rate may differ. If you notice that the wheel decrease in speed when the encoders are enabled increase this number till its about the same rate as the non-encoder speed when the robot is raised on blocks (i.e. does not experience any weight). When the speed is about the same with or without encoders you can be sure that the full speed range is being used and your encoder pulse rate is set correctly. The default of 40 is set to the US Digital encoders.
11. Battery - once the RoboClaw is communicating with RoboRealm you can turn on the battery monitor to test the connection. Do this by simply selecting the Battery area checkbox in the interface. The power level will be shown in blue bars with the number of volts in the "Current Value" textbox. If you want to use the volts within other areas of RoboRealm select a variable that the module will write the number of volts to. This variable will then be updated each time the RoboClaw module is run with the current voltage of the robot. Note that this value is multiplied by 10 to keep things in integer format. (You can divide by 10 to get the actual voltage).
12. Stop - press the stop button to quickly stop the motors. The motors controls will then be disabled (in case variables are selected) and will only restart when you click the same button again (now renamed to "Start").
Phidgets Motor Controller
Dimension Engineering Sabertooth
For more information
ION Motion Control RoboClaw
|BasicMicro_RoboClaw Related Forum Posts||Last post||Posts||Views|
Hey Steven, I just picked up a new RoboClaw, looks like they're from IonMC now instead of BasicMicr...