官术网_书友最值得收藏!

Explanations of the forward kinematics equation

We can start by formulating a solution for forward kinematics. The following figure is an illustration of one of the wheels of the robot:

A single wheel of the robot rotating along the local y-axis

The motion around the y-axis is known as the roll; everything else is called the slip. Let's assume that no slip occurs in this case. When the wheel completes one full rotation, it covers a distance of 2π r, where r is the radius of the wheel. We will assume that the movement is two-dimensional. This means that the surface is flat and even.

When the robot is about to perform a turning motion, the robot must rotate around a point that lies along its common left and right wheel axis. The point that the robot rotates around is known as the ICC-the instantaneous center of curvature. The ICC is located outside the robot. The following diagram shows the wheel configuration of the differential drive robot in relation to its ICC:

Wheel configuration for a robot with a differential drive

The central concept for the derivation of the kinematic equation is the ω angular velocity of the robot. Each wheel on the robot rotates around the ICC along the circumference of a circle with a wheel radius of r.

The speed of the wheel is v = 2 π r / T, where T is the time taken to complete one full turn around the ICC. The ω angular velocity is defined as 2 π / T, and typically has the unit of radians (or degrees) per second. Combining the equations for v and w yields ω= 2 π / T, and we can conclude the following:

Equation of linear velocity

A detailed model of the differential drive system is shown in the following diagram:

Detailed diagram of the differential drive system

If we apply the previous equation to both wheels, the result will be the same-that is, ω:

Differential drive wheel equation

Here, R is the distance between the ICC and the midpoint of the wheel axis and l is the length of the wheel axis. After solving ω and R, we get the following result:

Equation to find the distance from the ICC to the center of the robot and the angular velocity of the robot

The previous equation is useful for solving the forward kinematics problem. Suppose the robot moves with an angular velocity of ω for δt seconds. This will result in the robot's orientation or heading changed to the following:

Equation to find the change in heading

Here, the center of the ICC rotation is given by basic trigonometry as the following:

Equation to find the ICC

Rotating the robot ωδt degrees around the ICC

Given a starting position (x, y), the new position (x', y') can be computed using the 2D rotation matrix. The rotation around the ICC with the angular velocity ω for δt seconds yields the following position at the time t + δt:

Equation to calculate the new position of the robot

The new pose (x', y', and θ') can be computed from equation (6) and (8), given ω, δt, and R.

ω can be computed from equation (5); Vr and Vl are often more difficult to measure accurately. Instead of measuring the velocity, the rotation of each wheel can be measured using sensors called wheel encoders. The data from the wheel encoders is the robot's odometry values. These sensors are mounted on the wheel axes and deliver binary signals for each degree that the wheel rotates (each degree may be in the order of 0.1 mm). We will look at the detailed workings of the wheel encoders in Chapter 6, Interfacing Actuators and Sensors to the Robot Controller. These signals are fed to a counter so that vδt is the distance traveled from the time t to t + δt. We can write the following:

n * step = vδt

From this, we can calculate v:

Equation calculating the linear velocity from the encoder data

If we insert equation (9) in equations (3) and (4), we get the following result:

Equation to calculate R from the encoder values

Here, nl and nr are the encoder counts of the left and right wheels. Vl and Vr are the speeds of the left and right wheels respectively. Thus, the robot stands in pose (x, y, θ) and moves nl and nr counts during a time frame of δt; the new pose (x', y', θ') is given by calculating the following:

Equation to calculate the robot's position from the encoder values

where,

Equation to calculate the ICC and other parameters from the encoder values

The derived kinematic equation depends mainly on the design and geometry of the robot. Different designs can lead to different equations.

主站蜘蛛池模板: 榕江县| 卫辉市| 高要市| 旬阳县| 赫章县| 韶关市| 湖北省| 建德市| 左云县| 右玉县| 康定县| 顺昌县| 固原市| 镇远县| 句容市| 务川| 永新县| 孟州市| 阿克陶县| 上犹县| 崇左市| 建昌县| 东莞市| 宁强县| 北安市| 上杭县| 浠水县| 桂平市| 黄大仙区| 鹤岗市| 资中县| 喀喇| 泉州市| 木兰县| 宁安市| 方山县| 广平县| 库伦旗| 瓮安县| 新蔡县| 南康市|