[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

机器人运动模型

由其他组采集到的轮速数据需要根据公式将速度转化为位移量,具体机器人运动模型有两大类。如下:

模型1

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

模型1 同类表达1-1

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

模型1 同类表达1-2

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

模型2

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

 

模型2 同类表达2-1

用轮速计实现双轮差动机器人的位姿估计

 

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

模型2 同类表达2-2 (图中坐标xy与公式相反)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

模型2 同类表达2-3

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

 

 

mode 1

http://faculty.salina.k-state.edu/tim/robotics_sg/Control/kinematics/unicycle.html

12.1.3. The Unicycle Model

Dealing with the displacement and velocities of the two wheels of a differential drive robot is messy. A preferred model is that of a unicycle, where we can think of the robot as having one wheel that can move with a desired velocity ([学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)) at a specified heading ([学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)). Having the equations to translate between the unicycle model and our wheel velocities is what allows us to simplify the robot with the unicycle model. We have seen how to take measured wheel displacements to calculate the new robot pose. Now we do the reverse and calculate the desired wheel velocities from the unicycle model.

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

The Simplified Unicycle Robot Model

Note

We represent the measured forward velocity and robot orientation with variables [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇). The desired speed and direction are represented with the unicycle model using variables [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇).

In the global coordinate frame, we can represent the velocity of the unicycle robot as:

(1)[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

12.1.3.1. The Jacobian

The kinematics of mechanical systems are often described in terms of Jacobian matrices. A Jacobian defines how movement of parts of a system affect the movement of the whole or a larger part of the system. Let [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) be the velocity vector of the system, [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) be the pose of the system, and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) be the pose vector of certain parts of the system.

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

We can calculate the robot velocity relative to the velocities of the left and right wheels. Recall from Updating the Robot Position that the kinematics of directional drive systems gives us the forward and rotational displacement of the robot within a short time interval based on the displacement of the left and right wheels. The forward and rotational velocities can also be computed using the velocity of the left and right wheels. The forward velocity is the average of the wheel velocities.

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

Note

Remember that [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) have units of radians/second, while [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) has units of meters/second. Multiplying by R, which is the radius of the wheels (meters/radian) does the unit conversion.

The rotational velocity is the difference of the wheel velocities divided by the radius of rotation. In robotics literature, the radius of rotation is [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), or the distance between the wheels. One way to think of this is to consider the case when the left wheel is stopped while the right wheel moves forward. The robot will rotate about the left wheel making an arc with radius of [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇).

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

In the local coordinate frame, the three components of the robot velocity are its forward velocity ([学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)), its perpendicular velocity ([学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)) and its rotational velocity ([学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)) in radians per second. Differential Drive robots can not move perpendicular to the direction of wheel rotation, so [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) is always zero. This is the non-holonomic constraint of a differential drive system.

(2)[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

Thus,

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

In the global coordinate frame, the velocity vector is the time derivative of the pose.

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

Note

  • Another gotcha to pay attention to is the units used when expressing velocities.
    • Since our Optical Encoders do not know the size of wheels on the robot, they report displacement or velocities in terms of radians. Wheel velocities ([学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)) are in terms radians per second. Forward velocities in the Unicycle and Jacobian equations use linear measurements.
    • Meters or meters per second are the most common linear measurements used.
    • In equations, the radius of the wheels is usually represented with the letter [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇).
  • When we talk about the rotational velocity, we are describing its velocity towards turning, so the unit of radians here is the distance between the directional drive wheels. It is sometimes called the base length and in equations, it usually represented with the letter [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇).

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

12.1.3.2. Calculating Wheel Velocities

Starting with the desired forward and rotational velocities, we can calculate the desired wheel velocities. Using the above equations for [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), we can use either inversion of Jacobian or equation substitution with some simple algebra to come up with the needed equations.

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

Note

  • On the National Instruments DaNI robot, [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) meters.

  • In the LabVIEW code that we are developing, we handle the wheel radius, [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), in the Directional Drive VI, so when we calculate the wheel velocities, we can make the abstraction [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) meter. Thus for our calculations, the units for [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) translate to meters / second.

    [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

    [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

A desired forward velocity ([学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)) is an expected input for steering the robot towards a goal, but we don’t normally think of a steering heading in terms of a rotational velocity ([学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)). This is why we need a controller ... continue reading or see Steering the Robot.

 

mode 2

http://faculty.salina.k-state.edu/tim/robotics_sg/Control/kinematics/odometry.html

12.1.1. Using Odometry to Track Robot Movement

Odometry means measuring wheel rotation with the Optical Encoders – like the odometer on your car. Odometry is not always as accurate as one would like, but it is the cornerstone of tracking robot movement.

  • It is on all robots from inexpensive robots for children to multi-million dollar robots.
  • Even when Alternatives to Odometry are used, odometry is used as a supplement or back up.
  • Some Alternatives to Odometry are not easily portable to other locations or may fail to work in certain locations or conditions.

Odometry can be reliable enough to make it quite useful. Just don’t expect it to be perfect. Later, we’ll address the causes of Odometry Errors and analyze the magnitude of some errors.

12.1.1.1. Odometry Calculations

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

With different wheel velocities, the robot spans an arc.

If the two wheel velocities are different but constant long enough, the robot will turn in a complete circle around a center point [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇).

12.1.1.2. Updating the Robot Position

If in a short time interval, [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), the two wheel velocities are relatively constant, then the robot’s forward velocity, [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), and rotational velocity, [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), and can also be considered constant and we can update the global position from [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) to [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇).

For the sake of avoiding repetition, the derivation is not shown here, but it is clearly outlined in this short primer by Edwin Olson at MIT.

A Primer on Odometry and Motor Control

Olson shows that the new position [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) are given by:

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

Now, to significantly simplify the equations, an approximation can be made. If [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) is small, as is usually the case for small time steps, we can approximate [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) and [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇). Now this gives us:

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

and

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

The change in the robot’s direction of orientation, [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), is the difference of the distances traveled by the wheels divided by radius of rotation, [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), which is the distance between the wheels.

The odometry equations for [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇) are:

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

It can also be found in the literature that as a compromise between the full equation and the simplification of assuming that [学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇), that the average orientation angle over the time interval is used to calculate the new position.

[学习SLAM]轮速仪的建模/机器人运动模型详细分析(理论篇)

12.1.1.3. Alternatives to Odometry

  • GPS – limited accuracy

  • Image processing:

    One technique that is sometimes used is to use reflective tape to put a square of fixed size on the ceiling. Then using a camera pointed at the ceiling, images of the square can be used to estimate the robot pose.

  • Triangulation

    With three beacons at known locations and a receiver on the robot, it is possible to caluculate an exact location of the robot. For example, see this IEEE article about a proposed triangulation algorithm.

上一篇:视觉SLAM十四讲——第六讲非线性优化


下一篇:学习日记第一天