Roboclaw ROS Driver: Encoder Ticks Per Meter Of Travel

I had to look through this code earlier to learn "Motor 1" of the Roboclaw should be the right hand motor and "Motor 2" the left, but up to this point I've only ran this code enough to verify the correct motors turn in the correct direction. Now that I have to configure the driver parameter details to match my physical robot.
A critical parameter is ticks_per_meter
, the number of encoder counts that transpire when the robot travels a meter. This encapsulates multiple pieces of information about a particular mechanical implementation: things like motor gear ratio and wheel diameter. This count is required for accurate velocity control, since velocity is specified in meters per second. It is also obviously important to calculate robot odometry, because Roboclaw tracks distance in encoder counts and ROS expects position information in meters.
To test this, I send a command "travel forward at 0.1 meters per second" for one second of time. Configuration is successful when this command makes Phoebe travel 10 centimeters, with corresponding confirmation in output odometry calculations. First I ran the test with default parameters, which resulted in a little over 1 centimeter of travel implying my robot's ticks_per_meter
is almost ten times that of default.
I then re-ran the test with a much higher value for ticks_per_meter
parameter and the travel distance didn't change. Then I tried even larger values, and smaller values, and no matter what the robot kept going forward the same amount. After I double checked that I was spelling my parameter correctly, I went looking into the code.
Thankfully the author had included a line to output parameter to ROS debug log system. (rospy.logdebug("ticks_per_meter %f", self.TICKS_PER_METER)
) Once I found this debug message in the log, I was able to confirm that the default value was always used no matter what value I passed in.
Backtracking through the code, I found the cause: The call to retrieve parameter value has a typo, so it is looking for parameter tick_per_meter
(singular tick) instead of the intended ticks_per_meter
(plural ticks.) Once I added the missing 's
', Phoebe started moving the correct distance. Once verified I submitted this fix via a pull request.