sheaffej / roboclaw_driver

A ROS node providing a driver interface to the Roboclaw motor controller.
MIT License
9 stars 15 forks source link

Method of controlling #1

Closed aaravrav142 closed 4 years ago

aaravrav142 commented 6 years ago

Hi,

I am sorry to be opening this as an issue rather its a general query. I am very interested in the project and I have been thinking lately as to how to control 4 motors with encoders using the roboclaw controller and found this package.

Can you explain the details of your project or guide me to a blog, writeup where you can share some information as to how actually you are controlling the 4 motors. Any pointers would be extremely helpful. If you can provide an email address where you can be reached would be a great help if you do not mind.

Thanks Alex

sheaffej commented 4 years ago

Hi @aaravrav142. My apologies for not seeing this issue until now. I hope you have had great success with your project since opening this issue. But let me answer in case you are still interested.

Actually when you opened the issue, my robot only had 2 drive wheels. That was the first step to building my robot. It was not until recently that I resumed working on this project and moved to a 4 wheel robot.

From the research I performed, I decided to use 2 Roboclaw devices, each driving 2 wheels. But then command both Roboclaws with the same command at the same time. This makes the robot move similar to a tracked vehicle (like a tank).

The operation of the two Roboclaws, reading the same roboclaw_driver/SpeedCommand message works fine. Forward and reverse driving is great, and turning does have slippage like a tracked vehicle would. The only thing I had to do was account for the wheel slippage during turns when calculating the odometry in my base_node. Finding the slippage factor was by trial and error. And it differs between when my robot is on the smooth kitchen floor vs. on the carpet.

This is good enough for my application since I'm using SLAM with Cartographer to localize the robot (still a work in progress). So my odometry calculations can be approximate.

I have moved my robot project blog here if you are interested in reading more. https://sheaffej.github.io/

Best of luck on you project, and again my apologies for not seeing this issue until now.