Documentation ¶
Index ¶
- func Cross(a, b mat.Matrix) *mat.Dense
- func MakeJointMap(mov []*Joint) map[string][]float64
- func MatPrint(m mat.Matrix)
- func OdeSolver(fn Ode, t0 float64, x0 *mat.Dense, step, tn float64) *mat.Dense
- func RPY(w, p, r float64) *mat.Dense
- func ReadTorques(mov []*Joint) *mat.Dense
- func Rx(q float64) *mat.Dense
- func Ry(q float64) *mat.Dense
- func Rz(q float64) *mat.Dense
- func Txyz(x, y, z float64) *mat.Dense
- type Ik6_Geometry
- type Inertial
- type Joint
- type JointType
- type Link
- func (v *Link) Find(name string) *Link
- func (base *Link) FindIk6Param(ee *Link) *Ik6_Geometry
- func (src *Link) GetCopy() *Link
- func (ee *Link) Jacobian(mov []*Joint) *mat.Dense
- func (v *Link) Predecessors() []*Joint
- func (base *Link) UpdateDyn(g float64)
- func (v *Link) UpdateState(qs map[string][]float64)
- type Ode
- type Path
- type Polynomial
- type Profile
- type Transform
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MakeJointMap ¶
Types ¶
type Ik6_Geometry ¶
type Ik6_Geometry struct { A [3]float64 B float64 C [5]float64 Dq [6]float64 // "deflections" in joints Name [6]string // joint names Q *mat.Dense // matrix of solutions, each solution in separate column R *mat.Dense // correct rotation }
func (*Ik6_Geometry) Closest ¶
func (par *Ik6_Geometry) Closest(prev []float64) int
Find closest solution for the previous state return -1 if solution not found
func (*Ik6_Geometry) ClosestTo ¶
func (par *Ik6_Geometry) ClosestTo(qs map[string][]float64) int
Find closest solution based on joint map
func (*Ik6_Geometry) IkFull ¶
func (par *Ik6_Geometry) IkFull(rot, pos *mat.Dense)
Inverse kinematics Return matrix with 8 solutions Based on Mathias Brandstotter, "An analytical solution of the inverse kinematics problem of industrial serial manipulators ..."
type Inertial ¶
type Inertial struct { I *mat.Dense // inertia matrix Rc *mat.Dense // mass center M float64 // link mass }
Inertial parameters of link
type Joint ¶
type Joint struct { // source Src *urdf.Joint // tree Parent *Link Child *Link // type Type JointType // Parameters Angle float64 Vel float64 Acc float64 // Transformations Trans Transform // constant transformation Local Transform // rotation from current to next Limit [2]float64 //Rij *mat.Dense // from current to next joint Axis *mat.Dense // joint axis // dynamics Tau float64 }
func (*Joint) UpdateLocal ¶
Update current rotation transform
type Link ¶
type Link struct { // source Src *urdf.Link // tree Joints []*Joint Parent *Joint // current state State Transform // inertial parameters Dyn Inertial }
func (*Link) FindIk6Param ¶
func (base *Link) FindIk6Param(ee *Link) *Ik6_Geometry
Find parameters if the robot IK can be calculated via analytical solution for 6 joints
func (*Link) UpdateState ¶
Update chain parameters for the given joint states
type Path ¶
type Profile ¶
type Profile struct { State [3]Polynomial // [lift off, travel, set down] Time []float64 // time markers T float64 // total period (minimal) D float64 // total length }
Speed profile representation
Click to show internal directories.
Click to hide internal directories.