#robotics Logs

Apr 08 2020

#robotics Calendar

04:30 AM rue_bed: so, your trying to do generic forward kin?
04:36 AM rue_bed: opposed to just making something specific to the project?
04:36 AM veverak: yup
04:36 AM veverak: "generic leg"
04:36 AM veverak: rue_bed: but got compromise that seems decent
04:36 AM veverak: I have generic 'leg segment' (joint followed by an arm)
04:36 AM rue_bed: what about all your static offsets and rotations
04:36 AM veverak: so, there can be 'n' segments in a row
04:36 AM rue_bed: I presume your also sticking to rotational joints
04:36 AM veverak: yes
04:36 AM rue_bed: k
04:36 AM rue_bed: so just translate and rotate
04:36 AM veverak: yup
04:36 AM rue_bed: yea
04:36 AM veverak: which is what makes it doable
04:36 AM rue_bed: mhm
04:36 AM veverak: one segment is rotate, than translate, than rotate by angle
04:36 AM rue_bed: mhm
04:36 AM rue_bed: what language?
04:36 AM veverak: I was finally able to find out how to calculate jacobian of that yestrday
04:36 AM veverak: 4xA4 of derivations
04:36 AM veverak: but I've got it
04:36 AM veverak: C++ of course
04:36 AM veverak: but I do not think language is relevant here :)
04:36 AM rue_bed: k, do you have a matrix library?
04:36 AM rue_bed: one that isn't stupid?
04:36 AM veverak: define setupid
04:39 AM rue_bed: I have a matrix library, but I dont use it
04:39 AM rue_bed: I use a 3d library
04:39 AM rue_bed: void Init3d (point3d_t *this) ;
04:39 AM rue_bed: double Dist3d (point3d_t this, point3d_t that) ;
04:39 AM rue_bed: void Set3d (point3d_t *this, point3d_t that) ;
04:39 AM rue_bed: void Scale3d (point3d_t *this, point3d_t that) ;
04:39 AM rue_bed: void Rotate3d (point3d_t *this, point3d_t that) ;
04:39 AM rue_bed: void Translate3d (point3d_t *this, point3d_t that) ;
04:39 AM rue_bed: void Print3d (point3d_t *this) ;
04:40 AM veverak: well I prefer to study the math I've got a bit more
04:41 AM veverak: and than code it properly
04:41 AM rue_bed: for point cloud manipulatoin I ahve a 3d group library
04:41 AM veverak: for example, I am pretty suer that derivation of quaterion 'q' and derivation of 'q^-1' in case I know q \in H_0 are similar enough, so the ydo not have to be calcualted separatedly :)
04:41 AM rue_bed: Status_t g3dInit(g3d_t *this);
04:41 AM rue_bed: Status_t g3dFini(g3d_t *this);
04:41 AM rue_bed: Status_t g3dAdd2(g3d_t *this, point3d_t * p0, point3d_t * p1) ;
04:41 AM rue_bed: Status_t g3dAdd(g3d_t *this, point3d_t * that);
04:41 AM rue_bed: Status_t g3dDel(g3d_t *this, int index);
04:41 AM rue_bed: Status_t g3dScale(g3d_t *this, point3d_t that);
04:42 AM rue_bed: Status_t g3dRotate(g3d_t *this, point3d_t that);
04:42 AM rue_bed: Status_t g3dTranslate(g3d_t *this, point3d_t that);
04:42 AM rue_bed: Status_t g3dProject(g3d_t *this, double distance);
04:42 AM rue_bed: Status_t g3dShow(g3d_t *this);
04:42 AM rue_bed: Status_t g3dAddLots(g3d_t *this, ...);
04:42 AM rue_bed: Status_t g3dAddg3d(g3d_t * target, g3d_t * source);
04:42 AM rue_bed: Status_t g3dFreeAll(g3d_t *this) ;
04:42 AM rue_bed: I want to get into quaternions some time
04:42 AM veverak: I am using them
04:42 AM rue_bed: nice
04:42 AM veverak: kind of like them compared to tradional angles because they do not really use cos/sin
04:42 AM veverak: (apart from the gimbail lock problem)
04:43 AM rue_bed: I thought quaternions didn't have gimbal lock?
04:43 AM rue_bed: I might be ill...
04:44 AM veverak: they do not have
04:44 AM veverak: but that is usually the selling point
04:44 AM rue_bed: yea, thats what I was attracted to
04:44 AM veverak: however
04:44 AM veverak: for me
04:44 AM veverak: the good part is that 'rotation of quat by quat' and 'rotation of point by quat'
04:44 AM veverak: are operations that only do summation and multiplication of numbers
04:44 AM veverak: no sin/cos involved
04:45 AM rue_bed: yea, my library is all sin/cos so, you do too much and you can see the rounding errors
04:46 AM veverak: and sin/cos can be slow on embedded
04:46 AM veverak: (I mean, it can be problematic even on x86)
04:46 AM rue_bed: yea, I wouldn't use it w/o a math co-pro
04:47 AM rue_bed: the hexapod I have has an onboard pII
04:47 AM rue_bed: poor thing, I need to work out its overload boards
04:51 AM veverak: https://scontent-prg1-1.xx.fbcdn.net/v/t1.15752-9/92439124_1142205089449049_3648074603370119168_n.png?_nc_cat=103&_nc_sid=b96e70&_nc_ohc=RoR9e-OkUH8AX-ESrNb&_nc_ht=scontent-prg1-1.xx&oh=d4dd8582f6c0c12a869fb5c7d430aa3e&oe=5EB295A1
04:52 AM veverak: W_n is substituion for quaternion thta contains 'v_n' angle
04:52 AM veverak: Q_n is substituion for rotational offset, so just constant
04:53 AM veverak: well I need to writer proper documentation for this
05:04 AM rue_mohr: I got it once, but currently I dont get quaternions
05:04 AM deshipu: they are like UDP jokes
11:37 AM Tom_shop is now known as Tom_L
03:31 PM zhanx__ is now known as zhanx
06:14 PM BitEvil is now known as SpeedEvil
08:37 PM BitEvil is now known as SpeedEvil