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
- Workspace, Ref
- reachable
- dexterous
- 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
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
Green are optional
3.3. URDF Parser
XML based file, find the root and iterate over node
defines the structure of the robot- Read all the link and joint by their name
- Iterate over joint
- calculate the translation, orientation
- 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 |
---|---|
3.4. Kinematics
Get the translation and rotation from the URDF
Apply the forward kinematics
Calculate the forward kinematics from code
Simulate the forward kinematics in WebotsHard to get position of the end arm, use python visual insteadSolve 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