RaspberryPi, actually a couple of RaspberryPis’ are running ROS, but the actual “heavy lifting” of powering the motors is being handled by a pair of motor controllers from Dimension Engineering. I am using a pair of their 2x32 amp Sabretooth motor controllers, along with their KangarooX2 PID modules which allow for closed loop operation by monitoring the encoders on the motors.
With this combination, I am able to issue speed commands from ROS to the KangarooX2 module which takes care of maintaining a constant speed for me (it looks at the load on the motors and will vary the power to each motor to maintain the commanded speed).
I do not have the odometry feedback to ROS figured out yet, but I think others may have already accomplished this.
This is still a work in progress… I don’t have all the answers yet, but happy to pass on what I have learned so far.
Duane