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

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.

主站蜘蛛池模板: 垫江县| 龙海市| 吉水县| 木兰县| 乌兰察布市| 兴业县| 景德镇市| 延安市| 呼玛县| 松潘县| 务川| 河津市| 耒阳市| 凤庆县| 乐山市| 眉山市| 会理县| 南溪县| 兰考县| 庆云县| 鄄城县| 兴安盟| 辽宁省| 临城县| 吐鲁番市| 呼伦贝尔市| 鹿泉市| 共和县| 长寿区| 南岸区| 庆城县| 北海市| 西平县| 甘肃省| 荆门市| 北安市| 洛浦县| 德州市| 佛坪县| 龙南县| 山西省|