# Mobile robot identification

The problem: line follower robots - non linear systems - use linear PID regulation algorithm in order to bring error to zero. However, using linear regulator is not the best way to drive non linear system.

There is something like global linearization of non linear systems - an algorithm that can bring regulation error to zero. In order to use it, one has to know kinematics of robot: Coriolis, inertion, gravity and friction matrixes. Those were once measured in EDDA manipulator and are now used in science, and that is how I learned about global linearization.

The question: I'd like to identify kinematical dynamical parameters of my line follower robot. I already have kinematical model, since it is simple (2,0) platform. Has anyone got information about good sources on physical parameters identification of mobile robot like this?

"using linear regulator is not the best way to drive non linear system"

All systems are non-linear to some extend; for example, we will always encounter actuator saturation in practical systems. And all practical controllers (e.g., PID controllers) are implemented in such a way as to handle these non-linearities, e.g., preventing integrator windup due to actuator saturation. Thus, controllers for non-linear systems are usually designed to be non-linear when the errors are large, and linear if the errors are small.

"I'd like to identify kinematical parameters of my line follower robot. Has anyone got information about good sources on identification of mobile robot like this?"

Why don't you start off with an analytical model of the robot which describes the dynamics and kinematics. Kinematics (rotational and translational position due to velocity, due to acceleration,...) can be modelled perfectly. If you know which forces and moments the actuators supply, then you only need to know masses, inertias and friction to be able to model the dynamics. These can then be measured or identified.

It is much easier to identify the parameters of a model than to identify the structure of a model... :-)

• Yes, I confused kinematics with dynamics, sorry. I have kinematical model for my robot, it is (2,0) platform so it's pretty simple. Nov 15, 2016 at 9:09

Linear regulators are frequently used to control nonlinear systems. So are nonlinear controllers. Much depends on the system identification from a controls, not kinematics, perspective.

I believe you are confusing the kinematics of motion with the system dynamics. Kinematics is the science of motion without regard to the forces and torques that create or resist that motion.

To identify the dynamic properties of your line follower, a lot more information is needed about your system. Right now this question is overly general in my opinion.

• I don't want you to calculate those parameters for me. I'm searching for some science articles/books about it, but I didn't find anything yet. Nov 15, 2016 at 18:02

If you have a parameterized motion model for your robot, you can include each of those parameters as part of the state space for a kalman filter. Use the parameterized motion model as the kalman filter's motion model and treat the robot's position over time as measurements.

I took this approach in a recent project because I didn't have direct access to the robot and needed the details of its motion model to be calculated automatically. In the following links, kalman.py is a general kalman filter implementation (unscented) and gain_controller.py uses that kalman filter to determine the motion model and choose appropriate values of throttle and brake to achieve a desired acceleration.

https://github.com/ericlavigne/CarND-Capstone-Wolf-Pack/blob/gain_kalman_2018-03-18/ros/src/twist_controller/kalman.py

https://github.com/ericlavigne/CarND-Capstone-Wolf-Pack/blob/gain_kalman_2018-03-18/ros/src/twist_controller/gain_controller.py