### Mobile Robot Navigation

We create and/or tune 2D, 3D and 6D motion planners for robots using Open Source and custom developed software.

Read Mobile Robot NavigationPosted on 09 January 2023

**Part 2: The Key to Controlling your Robot !**

In the context of robotics, kinematics is the study of the motion of robots. This includes the study of how the combination of motions of interconnected active joints, which are driven by motors, cause an end effector to move along a resulting path. It also includes the study of the inverse problem, which is how a set of interconnected active joints must move in order to cause an end effector to follow a given path.

By studying the motion of the robot's joints and the resulting motion of the end effector, we can predict how the robot's joint angles and joint velocities affect the position and orientation of the end effector.

A kinematic chain is a series of interconnected bodies that can move relative to each other. In the context of robotics, a kinematic chain is often used to refer to the series of links and joints that make up a robot's arm or leg. The motion of a kinematic chain is determined by the relative motion of its links and joints, and the position and orientation of the end-effector (the "hand" or "foot" of the robot) can be calculated based on the positions and orientations of these links and joints. In the simple case, one joint rotates around one axis, and most robot arms have 3 to 7 axes. Mobile robots are far simpler and mostly have 2 or 3 axes.

A kinematic solver is a mathematical algorithm or software program that is used to calculate the movements of a robot arm. The solver uses information about the robot's joint angles, velocities, and accelerations to determine the position and orientation of the end effector (the part of the robot that interacts with the environment).

There are two main jobs for kinematic solvers: forward kinematic calculations and inverse kinematic calculations. Forward kinematic solvers are used to calculate the position and orientation of the end effector based on the joint angles of the robot arm. Inverse kinematic solvers, on the other hand, are used to calculate the joint angles that are needed to move the end effector to a specific position and orientation.

Kinematic solvers are an essential part of robot control, as they allow the robot to be precisely positioned and oriented in the workspace.

There are two main types of kinematic solvers: analytic solutions and iterative methods.

Analytic solutions are mathematical formulas that can be used to directly calculate the desired joint angles or end-effector position based on a set of given inputs. These solutions are typically faster and more precise than iterative methods, but they do not always exist, especially for complex robot systems.

Iterative methods, on the other hand, are techniques that use a series of calculations to approximate the desired solution. These methods may not always find the exact solution, but they can often find a solution that is close enough for the purposes of robot motion control. Iterative methods are generally more flexible than analytic solutions, but they may be slower and less precise.

Choosing the right kinematic solver for a robot depends on several factors, including the availability of the forward and inverse kinematic solutions in analytical form, the configuration of the robot, and the different joint types.

If the forward and inverse kinematic solutions are available in analytical form, then an analytical solver can be used to quickly and accurately calculate the required joint angles. Analytical solvers are typically faster and more accurate than iterative solvers, but they have the limitation that the kinematic solutions must be known in analytical form.

If the forward and inverse kinematic solutions are not available in analytical form, then an iterative solver must be used. Iterative solvers use an iterative process to approximate the required joint angles, and they can handle more complex kinematic models than analytical solvers. However, iterative solvers are generally slower and less accurate than analytical solvers.

Regardless of whether an analytical or iterative solver is used, it is important that the solver is able to take into account the configuration of the robot, the joint limits, and the different joint types. This is important because each of these parameters expresses a limitation of the real robot, and if not taken into account, the calculations can give a joint position that is impossible in reality.

Additionally, the solver should be able to handle exceptions such as out-of-reach positions and positions with singularities. Out-of-reach positions are positions that the robot is physically unable to reach, while positions with singularities are positions where the robot's kinematic behavior is undefined. The solver should be able to handle these exceptions gracefully, either by warning the user or by avoiding them altogether.

Kinematics is a necessary tool to control and move robots. There are several types of kinematic solutions available, and it is important to choose the right solver for your robot. Im Part two, we apply these concepts to articulated arm robots and mobile robots and give a brief overview of where to find open source libraries to implement these algorithms.

We create and/or tune 2D, 3D and 6D motion planners for robots using Open Source and custom developed software.

Read Mobile Robot NavigationIntermodalics has been at the core development of the Kinematics and Dynamics Library (KDL).

Read Inverse and Forward KinematicsWe are a ROS-native company, standardising all our tooling on the ROS ecosystem. We offer ROS Consulting and best practices for standard ROS paradigms and insights into ROS design decisions its shortcomings.

Read Robot Operating System ROS