micpalmia / youbot_ros_tools

A KUKA youBot description for ROS.
19 stars 16 forks source link

Move the youbot using its wheels #5

Open micpalmia opened 10 years ago

micpalmia commented 10 years ago

At the moment, the robot is floating on the ground using the libgazebo_ros_planar_move.so gazebo plugin.

The structure for the wheels, anyway, is ready to be used, and code from the original repository can maybe be used to move the robot using its own wheels.

ghost commented 10 years ago

It's a really interesting simulation issue.

First of all, let's a look at the wheels. They are not standard wheels, they are mecanum wheels. This kind of wheels help the robot to move and rotate easily in any directions, even in congested area. The movement come from the resulting rotation speeds of the wheels, which are independent. I have found I nice explanation of the relationship between the wheels rotation and the resulting movement on this lego page. On the videos, the youBot looks like gliding on the ground.

From a design point of view, this is convenient, because it is similar to a planar joint + a revolute joint between the base and the ground. Very easy to control.

From a simulation point of view, it is a nightmare.

I doubt that the repo from youBot or WPI-RAIL did the job, because they involve casters. And there is no casters on the real KUKA youBot. If you have a look at their teleop program, you will see that this program align the wheels before the rotation, which is not the design of a mecanum wheel at all. With the mesh of the wheels, you will see it. This not natural (this is also why the wheels solid shape is a sphere). And even worst, the the rotation is therefore not supported. So for me, this model is really poor.

I raised the question on Gazebo answers. Someone suggested to use this planar controller. I considered it as a second choice, but finally, this is very close to the behavior of the real mecanum wheels, as you define the x/y velocity and rotation, which can be directly linked to the wheel individual speeds. I have remove the friction between the wheels and the ground.

On the real robot, this x/y speed and rotation translation to individual wheels speeds would also be very convenient.

A visually better solution would be to add the mesh of the wheels, and rotate them according to the planar messages. No time to work on this.

Finally, if you are looking for a very physical solution, I have found this link, where it has been done in another simulator, by mixing kinematics and dynamics solutions.

That would be really great to have more realistic solution. For my requirement, the planar controller is enough.

ghost commented 10 years ago

Last comment, I had changed the caster joints to fixed joints. The wheels moved otherwise, and this is visible with the mesh.

micpalmia commented 10 years ago

Branching this to issue #9

On Fri, Sep 13, 2013 at 11:37 AM, Arn-O notifications@github.com wrote:

Last comment, I had changed the caster joints to fixed joints. The wheels moved otherwise, and this is visible with the mesh.

— Reply to this email directly or view it on GitHubhttps://github.com/Boanerghes/youbot_ros_tools/issues/5#issuecomment-24383520 .