Encoder wheels have not enough friction

After putting encoder wheels on our X-Drive, our actually powered wheels start slipping, and our left wheels have more friction than our right wheels, so the robot turns right when trying to drive straight.
Any suggestions?

How much (or little) does your robot weight? Are you driving on foam tiles? It’s quite uncommon to see the wheels slip that easily. In terms of the robot not driving straight and the wheels slipping only on one side, it’s most likely because the weight of the robot isn’t balanced and one side is heavier than the other. Try to shift your center of gravity to the center of the robot.

Are you saying that your encoders are mounted onto wheels that are totally separate from the wheels that drive the robot? If so, perhaps the encoder/wheel assembly is lifting up the robot in such a way that your powered wheels are not making adequate contact with the floor. Is that the problem?

Maybe a picture could help, I am having a hard time understanding exactly the situation.

Try using passive tracking wheels.

Have unmotored wheels and put shaft encoders on them. If you want higher resolution, you can gear it but it isn’t needed.

If you still have problems with the wheels not touching the ground completely, you can rubber band them so that they are always exerting force on the ground.

Ahh, sorry, I didn’t quite get what you were saying.

It sounds like that you try to make the robot go straight but it turns.

You can use a 2 PID controllers feeding into each other. One to keep the robot facing a desired angle, and another to move the robot.

No 2 motors are going to be identical, so no matter how close the motors are to being identical, they wont be.

The wheels slip more on one side, but all of them slip.

I now realize that it could have been because all the weight is distributed on all 7 wheels, and the 4 powered ones don’t have enough friction, so they slip.

As others have said, it sounds like some of your unpowered encoder wheels are sitting slightly lower than some of your powered wheels. When I first began testing with encoder wheels, I put them on hinges so that they would be floating freely, and optionally could have rubber bands attached to them to give them extra traction. The idea was to mount an encoder and wheel to a small c-channel or other small piece of metal, then rather than directly mounting that to the chassis, there would be a small pivot connecting the two, so that the encoder wheel assembly could lift and lower slightly, meaning even if the robot sank down into the tiles slightly more, or lifted off of the ground slightly, the encoder wheels would always have traction with the floor, without lifting the powered wheels up. Here is a photo of the first drive I built with unpowered encoder wheels, connected to the chassis via a pivot:

Another example of the encoder wheel on a hinge is Wingus and Dingus’s NBN robot.
It’s at the end of the video.