0%

Design Process for Robot Arm

1. Goal

Try to figure out a clear path or best practice for robot arm modeling and programming

Input: the requirements and some consideration, limitation

Output:

  • The robot arm model (the math model for kinematics)
  • The control algorithm
  • Kinematics
  • Invser-Kinematics
  • Simulation:(webots)

2. Requirements

  • Payload:
  • Influence: Structure and motor actuator
  • How: the weight, how far from the center of gravity, Ref
  • image-20230221204934948
  • Workspace, Ref
  • reachable
  • dexterous
  • image-20230221210331362
  • Accuracy: determined by sensor
  • Speed: model and actuators
  • Control: software and hardware needed for control and communication
  • Cost: materials, components, labor
  • Safety: vision / lidar
  • Maintenance: repair, parts, mechanical, electrical system

3. Modeling

3.1. Format? URDF

  • URDF: Unified Robot Description Format
  • Simpler, only the basics like geometry, kinematics, dynamics
  • SDF: Simulation Description Format
  • More featured, materials, lighting, camera model, environments

3.2. URDF Crash Course

Matlab Ref

XML based

Nested structure, , ,

  • Elements, , ,

  • Attributes, name , rgba

  • Parent and Child could be indicated by the parent and child elements

  • Model Topology

  • No closed-loop Chain: A could only be one child of

image-20230221223829402

Green are optional

3.3. URDF Parser

XML based file, find the root and iterate over node

defines the structure of the robot

defines the transformation of the robot

  1. Read all the link and joint by their name
  2. Iterate over joint
  3. calculate the translation, orientation
  4. joint origin descsribe how two links related, in default situation

==So only the joint matter the kinematics, the link just matters for physics and simulation==

  • In many case, the collision and visual should be the same, however it should not in the following situation

  • simpler collision for faster processsing

  • Safe zone, make more room in collision

Visual Collision
image-20230412223503445 image-20230412223512348

3.4. Kinematics

  1. Get the translation and rotation from the URDF

  2. Apply the forward kinematics

  3. Calculate the forward kinematics from code

  4. Simulate the forward kinematics in Webots Hard to get position of the end arm, use python visual instead

  5. Solve the Inverse kinematics

4. Motion Planning

4.1. Inverse Kinematics

Problem: many constrains

For 6 or 7 DOF: IKFast, open source, use a approximation, fast and numerically robust solution

  • Fact: the 6D pose constraint on a 6D manipulator has closed form solution

For less constrained for inequality constrained, became an optimization problem

  • Differential IK
  • Full IK

4.2. Trajectory Optimization

Not solving the problem independently, the basic idea is to solve in a optimization form,

4.3. Sampling Based

5. Implementation

workspace calculation, maybe by sampling?

  • 2D to 3D

6. Takeaway

Make the cost function simple

Write minimal constraints