# Motion Model for Holonomic Robot

We are working with an holonomic robot equipped with three (120 degree shifted) omnidirectional wheels. The relative movement is estimated by dead reckoning using wheel encoders. To improve this estimation we installed an gyroscope to measure the change in orientation. Furthermore the robot has a 270 degree laser range finder.

In order to solve the kidnapped robot problem we implemented a particle filter. In every step each particle is updated according to the odometry and gyroscope readings. Since these readings are distorted by noise we need a motion model to include these errors. As described in Probabilistic Robotics by Thrun (Page 118 - 143) there are two commonly used motion models (velocity motion model and odometry motion model). However these models seem to describe the behavior of differential drive robots not omnidirectional robots. I base this thesis on the fact that the error in relative y-direction is proportional to the error in orientation as far as the motion models by Thrun are concerned. This is appropriate for differential drive robots as the orientation and the heading of the robot are identical. For omnidirectional robots this assumption can not be made since the heading and the orientation are completely independent. Even if we assume perfect information about the robots orientation we can still obtain error in relative y-direction.

I would like to discuss if my assumption - that the velocity/odometry motion model fails for omnididrectional robots - is correct or not as i am not sure about that. Furthermore i am curious if there are any other motion models for omnidirectional robots that might fit better.

• You are right, the model discussed in Thrun is not for omnidirectional drives. I think there was a note made in the bibliographical comments at the end of the chapter pointing out this fact as far as i remember – user10157 Jul 16 '15 at 21:06

I agree that the motion models in Probabilistic Robotics are badly suited for omnidirectional robots. I always interpreted the models presented there as examples only that should enable you to devise a custom model for your own robot.

First of all you need to model and solve the forward kinematics for this kind of omnidirectional drive. I guess you already managed to do that, but just in case you might want to check Section III.b) in this paper.

Second, there are many ways of turning a kinematic model into a probabilistic model. The easiest way is to just take the kinematic model and add some "process noise" in pose space. A probably better alternative is assuming noisy wheel encoders, i.e. sample and add noise to wheel encoder readings before transforming these according to the kinematic model.

I had good results applying a particle filter to a robot with the same geometry with the latter option a while ago, but your mileage may vary.

I think you have two problems; first, on the mathematical side, the models aren't matching your geometry, so the assumptions about error accumulation are wrong, as you've ascertained. I suspect that's fixable.

The second problem is harder and is related to the messy physics of omnidirectional robots (at least for 120-degree and Mecanum) - they generally involve so much nonlinear slip that odometry just doesn't work. I don't have the mathematical rigor to defend this assertion, but if your output error component isn't significantly less than the ideal model output component, you might as well do dead reckoning based on a random number. :-)

I found a paper (Learning probabilistic motion models for mobile robots) which examines the constraints of the motion models introduced by Thrun and presents a more general model.

Abstract:

Machine learning methods are often applied to the problem of learning a map from a robot's sensor data, but they are rarely applied to the problem of learning a robot's motion model. The motion model, which can be influenced by robot idiosyncrasies and terrain properties, is a crucial aspect of current algorithms for Simultaneous Localization and Mapping (SLAM). In this paper we concentrate on generating the correct motion model for a robot by applying EM methods in conjunction with a current SLAM algorithm. In contrast to previous calibration approaches, we not only estimate the mean of the motion, but also the interdependencies between motion terms, and the variances in these terms. This can be used to provide a more focused proposal distribution to a particle filter used in a SLAM algorithm, which can reduce the resources needed for localization while decreasing the chance of losing track of the robot's position. We validate this approach by recovering a good motion model despite initialization with a poor one. Further experiments validate the generality of the learned model in similar circumstances.