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

Inverse kinematics

The forward kinematics equation provides an updated pose at a given wheel speed. We can now think about the inverse problem.

Stand in pose (x, y, θ) at time t and determine the V-left and V-right control parameters so that the pose at time t + δt is (x', y', θ').

In differential drive systems, this problem may not always have a solution because this kind of robot can't be moved to any pose by simply setting the wheel velocity. It's because of the nonholonomic robots' constraints.

In nonholonomic robots, there are some ways to increase the constrained mobility if we allow a sequence of different (V-left, V-right) movements. If we insert the values from equations (12) and (15), we can identify some special movements that we can program:

  • If V-right = V-left => nr = nl => R = ∞, ωδT = 0 =>, this means that the robot moves in a straight line and θ remains the same
  • If V-right = -V-left => nr = -nl => R=0, ωδt = 2nl * step / l and => x' = x, y' = y, θ' = θ + ωδt =>, this means the robot rotates in position around ICC-that is, any θ is reachable, while (x, y) remains unchanged

Combining these operations, the following steps can be used to reach any target pose from the starting pose:

  1. Rotate until the robot's orientation coincides with the line leading from the starting position to the target position, V-right = -V-left = V-rot.
  2. Drive straight until the robot's position coincides with the target position, V-right = V-left = V-ahead.
  3. Rotate until the robot's orientation coincides with the target orientation, V-right = -V-left = V-rot. Here, V-rot and V-ahead can be chosen arbitrarily.

We will see how we can implement the kinematics equation of the robot using ROS in the upcoming chapters.

主站蜘蛛池模板: 定结县| 迁安市| 休宁县| 麻江县| 扶沟县| 额敏县| 肇源县| 石渠县| 承德县| 西林县| 白山市| 秀山| 芦溪县| 平罗县| 浦东新区| 定日县| 台南县| 普陀区| 大悟县| 电白县| 剑川县| 咸阳市| 梧州市| 商城县| 师宗县| 凤庆县| 获嘉县| 德州市| 阜阳市| 深泽县| 和硕县| 溆浦县| 铜山县| 彩票| 抚宁县| 淮滨县| 丰镇市| 荥阳市| 九江市| 康保县| 高陵县|