GithubHelp home page GithubHelp logo

Add position data helper tools about tp_plus HOT 7 CLOSED

kobbled avatar kobbled commented on August 18, 2024
Add position data helper tools

from tp_plus.

Comments (7)

kobbled avatar kobbled commented on August 18, 2024

Assign position in tp+ body

p  := P[1] 
p.group(1) -> [0, 100, 300, 90, 0, 0]
# or
p  := P[1] 
p.group(1) -> [0, 100, 300, 90, 0, 0, N, D, T, -1, 1, 0]
p.group(2) -> [90,0]

Also having a default position set to either the system variable $MOR_GRP[*].$NILPOS, or set as a keyword in an environment variable file to limit amount of redundant information.

default_pose.group(1) -> [0, 0, 0, 90, 0, -90, F, U, T, 0, 0, 0]
default_pose.group(2) -> [0]

Might need a different designation for joint positions

p1  := JP[1]    # joint position
p1.group(1) -> [0, 90, 180, 270, 360, 0]
p2  := P[2]     # cartesian position
p2.group(1) -> [0, 0, 50, 0, 0, 0]

from tp_plus.

kobbled avatar kobbled commented on August 18, 2024

csv data could be in the form of

position_data
{
  'csv' : [
   x1, y1, z1, w1, p1, r1, ex11, ex21, ex31, N, D, T, 0 ,0 ,0
   x2, y2, z2, w2, p2, r2, ex12, ex22, ex32, N, D, T, 0 ,0 ,0
   x3, y3, z3, w3, p3, r3, ex13, ex23, ex33, N, D, T, 0 ,0 ,0
  ]
}
end

or to reduce redundancy include a default_pose

position_data
{
  'default_pose' : [x, y, z, w, p, r, ex1, ex2, ex3, N, D, T, 0 ,0 ,0]
  'csv' : [
   x1, y1, z1
   x2, y2, z2
   x3, y3, z3
  ]
}
end

or save previous pose info, and use for next ambiguous pose

position_data
{
  'default_pose' : [x, y, z, w, p, r, ex1, ex2, ex3, N, D, T, 0 ,0 ,0]
  'csv' : [
   x1, y1, z1, w1, p1, r1, ex11, ex21, ex31, N, D, T, 0 ,0 ,0
   x2, y2, z2
   x3, y3, z3
   x4, y4, z4, w2, p2, r2, ex12, ex22, ex32, N, D, T, 0 ,0 ,0
   x5, y5, z5
   x6, y6, z6
  ]
}
end

Don't know how to approach independent groups for csv format without it getting confusing

from tp_plus.

kobbled avatar kobbled commented on August 18, 2024

potential json position data format:

position_data
{
  'default_pose' : [
     'uframe' : 6,                # global frames so you dont have to specify for each pose
     'utool' : 2,
    'mask' :  [{
        'group' : 1,
       #default config to limit verbosity
        'config' : {
            'flip' : false,
            'up'   : true,
            'top'  : true,
            'turn_counts' : [0,0,0]
            },
        'orient' : {
           'w' : 90.0,
           'p' : 0.0,
           'r' : 0.0
        }},
        {
        'group' : 2,
        'orient' : {
           'w' : 90.0,
           'p' : 0.0,
           'r' : 0.0
          },
        'components' : {
            'J1' : 0,
            'J2' : 90
           }
         }]
     }
   ],
  'positions' : [
    {
      'id' : 1,
      'comment' : 'feed',
      'uframe' : 6,                # pose frames. Should still be able to specify and override frame for each group
      'utool' : 2,
      'mask' :  [{
        'group' : 1,
        'config' : {
            'flip' : false,
            'up'   : true,
            'top'  : true,
            'turn_counts' : [0,0,0]
            },
       #seperate position and orientation. 'components' should still exists and be usable if desired
        'coord' : {
            'x' : -20.0,
            'y' : 0.0,
            'z' : -80.0
           },
       'orient' : {
            'w' : 0.0,
            'p' : 0.0,
            'r' : 0.0
            }
        },
        {
        'group' : 2,
        'components' : {
            'J1' : 90,
            'J2' : 0
           }
        }]
    },
   {
      'id' : 2,
      'comment' : 'start_pose',
      'mask' :  [{
        'group' : 1,
        'coord' : {
            'x' : 100,
            'y' : 0.0,
            'z' : 0
           }
        },
        {
        'group' : 2,
        'components' : {
            'J1' : 90,
            'J2' : 0
           }
        }]
    },
   {
      'id' : 3,
      'mask' :  [{
        'group' : 1,
        'coord' : {
            'x' : 70,
            'y' : 70,
            'z' : 0
           }
        },
        {
        'group' : 2,
        'components' : {
            'J1' : 90,
            'J2' : 45
           }
        }]
    },
   {
      'id' : 3,
      'mask' :  [{
        'group' : 1,
        'coord' : {
            'x' : 0,
            'y' : 100,
            'z' : 0
           }
        },
        {
        'group' : 2,
        'components' : {
            'J1' : 90,
            'J2' : 90
           }
        }]
    }
}
end

from tp_plus.

kobbled avatar kobbled commented on August 18, 2024

Be able to insert plain LS into the positition_data

position_data {
  'ls_positions' : [

P[1:"strt_HT1"]{
   GP1:
  UF : 5, UT : 3,  CONFIG : 'F U T, 0, 0, 0',
  X = 0.0 mm, Y = 0.0 mm, Z = 0.0 mm,
  W = -90.0 deg, P = 0.0 deg, R = 180.0 deg

};
P[2:"strt_HT2"]{
   GP1:
  UF : 7, UT : 3,  CONFIG : 'F U T, 0, 0, 0',
  X = 0.0 mm, Y = 0.0 mm, Z = 0.0 mm,
  W = -90.0 deg, P = 0.0 deg, R = 180.0 deg

};

  ]
}
end

from tp_plus.

kobbled avatar kobbled commented on August 18, 2024

load csv data, of ls data from file

position_data {
   'filename' = 'filename.csv'
}
end

ls position data loading will need a parsing/regex tool

position_data {
   'filename' = 'filename.ls'
}
end

from tp_plus.

kobbled avatar kobbled commented on August 18, 2024
default.config -> [N, D, T, -1, 1, 0]
default.pose -> [0, 0, 0, -90, 0, 90]

p1.coord -> [0, 0, 10]

p2.coord.offset -> [0, 0, 5]
p2.coord.polar -> [th, r, z]

from tp_plus.

kobbled avatar kobbled commented on August 18, 2024

Some features implemented in 1d2a817. Not all content has been implemented up to 1d2a817, but am closing issue as thread is fairly cluttered.

from tp_plus.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.