uh-oh, ray just said on the list that we have leadscrew mapping in emc2, but I don't think we do
heh.. then we'll have to add it back :D
cradek: sorry, you
wanted to talk to you about spindle control
but I'm up to my elbows in it right now.. hang on ;)
I hope you don't expect me to understand how it works
modifiying about 6 files at once
easy to loose track
it's quite easy..
at least the first step
alex_joni: is there a good way to search your irc logs?
other than asking me?
but I'm open to suggestions
maybe google indexes it
[18:31:26] <alex_joni> http://www.google.com/search?client=opera&rls=en&q=site:22.214.171.124&sourceid=opera&ie=utf-8&oe=utf-8
seems like it
need a bit of pointer help
I have a status pointer
EMC_STAT * stat
EMC_STAT is a class that contains EMC_IO_STAT, EMC_MOTION_STAT, etc
cool, I found exactly what I wanted in the logs in just a few minutes
I think I got the right & * combo myself ;)
cradek: help :(
can you look at some structs?
* alex_joni is dizzy dereferencing
do you know EMC_STATUS ?
it's defined in emc.hh
it contains EMC_IO_STAT and EMC_MOTION_STAT
now I want to copy EMC_SPINDLE_STAT to EMC_MOTION_STAT
you mean you want to move it into EMC_MOTION_STAT?
which will put it in EMC_STAT
but I still need to copy the data to EMC_IO_STAT->spindle
so that existing GUI's still can see it
fix the guis instead
before I go and break it
they all have the entire stat buffer, you would just have to change a few lines
either way, I think I didn't put the right thing in emcMotionUpdate
can you look at usrmotintf.cc : usrmotReadEmcmotStatus() ?
this assumes that the two match perfectly.. right?
oops! I added stuff after "tail"
that's not right
I had no idea I had to look out for jankylocking
neither did I
but yes, it's just a memcpy
ok, so basicly the two need to fit
one comes from emc.hh ? and one from motion.h
if I read it right
both of the same type (emcmot_status_t *)
they're both emcmot_status_t
now I wonder where NML comes into play
I guess taskintf.cc
will it mess you up if I fix the jankylocking in motion.h?
can you wait a bit?
or you can do it (just move tail to the end)
it's a new, recently-coined term
see usrmotReadEmcmotStatus() for details
I haven't been following closely so I don't know what you mean
I wish cvsweb could use tags
alex_joni: so what is the "teleop vector" for?
jepler: actually it's a prescription of speeds
one for each carthesian coordinate
(Xvel, Yvel, Zvel, Avel, Bvel, Cvel)
that's a teleop vector
and for joggin in X+ you mainly set a Xvel > 0
not quite sure why teleop has been chosen (probably because stepping is not OK for nontrivial machines)
cradek: do you remember what the spindle on g-code is?
nm, found em (M3 & M5)
oh fsck it.. iosh completely messes the game
as it tries to send spindle commands directly to the iocontroller :((
alex_joni: reading iosh it looks like EMC_TRAJ_SET_TELEOP_VECTOR is used as an alternative to EMC_AXIS_JOG when working with joints?
so does that make pose.x the velocity for joint 0, etc?
but I bet you're reading emcsh not iosh
yeah, what you said
except that you don't send speeds for the joints
and there is no "incremental" jog in joint space
you send speed for the teleop mode (world view)
and motion takes care of transforming that to joint jog commands
to summarize: in joint mode, you send normal jog messages (even incremental)
then you home, and switch to world
then you can't send any jog messages anymore, but need to send teleop messages
huh -- I see that what you describe is right
but it doesn't make sense?
I'm surprised that there's no incremental jog in world coordinates for nontrivial machines
well.. there's none
and no-one ever cried because of that lack :D
is there some difficulty in providing it that I don't understand?
the problem might be obeying limits
one step in world view, could trigger quite a jump in a joint
so I think setting a speed reference acts a bit easier
but I couldn't say really
all these problems would exist for a g0 move as well
I tend to agree
but I'm afraid we might miss something
g91 g0 x1 ( equivalent to a 1" incremental jog in world coords)
or with f-
yes, but you don't know how it goes (at least with g0)
each joint will move with a certain speed
so that they start and finish at once
and in world view it will definately NOT move on a X line
right or wrong, the documentation says both 0 and G1 produce coordinated motion
er, both G0 and G1
[20:12:11] <jepler> http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_33a.html#1012810
I usually assumed something else for G0
at least for robots it's very common that it's not coordinated
well it's coordinated, but not as a geometrical limitation, but as a temporal limitation
jepler: don't be too upset .. I broke compatibility again :(
so what you need is some way of differing between a straight movement in reality and moving all motors at the same constant speed?
or am I just a silly newb poking around in stuff too advanced
jepler: still there?
any issues with the cvs ?
alex_joni: I haven't updated lately
it gives me an error when I try to connect
hm, it must have crashed. the machine sitting right next to it can't ping it.
From bald.unpythonic.net (126.96.36.199) icmp_seq=0 Destination Host Unreachable
I won't be able to reset it before I go home from work, a half hour at least.
was about to diff & read & fix & commit
jepler: don't sweat it
I'll go watch some telly :D
unless you want to talk about teleop
alex_joni: update: he thinks the power went out
cradek: oh ;)
that's why he lost the terminal?
cradek: the good news is that I think I finished
now we will have to work together so I can figure out how to make TP do useful things with it
heh.. right now it's all in a couple of variables
but it's in shared memory and in the motion controller
so you could have some tp calls like tpSetSpindleSpeed()
and alter the HAL pin directly if you like
ok, I know how to do that, I already do that with spindlesync
so that's the commanded speed output to hal
it would be nice to also put the feedback speed in the stat buffer so the guis can display it
well, there is a pin for it already
we just need to hook it up
but it means we need to add loopbacks for all configs that don't use it
yes, if people want to see the readout they will have to do that
jepler: something nice for you
"I had a dude come up to me asking what my settings were when I was taking a pic. He then furiously entered it into the memo of his mobile phone. I laughed my ass off for ages. All I could think of saying was "oh yeah, I use that setting all the time. Gives great results any time of the day." Mean bitch I know, but there it is. I'm really not a big fan of strangers just coming up to me and thinking they can just strike up a conversation, I've had my
alex_joni: cut off at "I've had my"
I've had my share of slimey men
doing that and I tend to just be offside with everyone."
this is something new to me: http://www.deviantart.com/deviation/35980867/
a girl shooting drills ;)
I guess I don't get the joke
wasn't really a joke
but I kinda had that one or two times
when people see you with an expensive camera they want to talk to you about it
cradek: I'm about to commit.. (it works here)
if somethings still screwy .. you can revert if needed :D
alex_joni: what are you working on, anyway?
moving spindle control into the motion controller
out of the iocontroller
what's the advantage?
that way chris can do constant surface machining
ok, sounds like a good idea!
[21:28:05] <alex_joni> http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=128600&group_id=6744&group_project_id=46285
cia's stupid again
emc/usr_intf/xemc.cc:2713: error: 'class EMC_IO_STAT' has no member named 'spindle'
did you not fix all the front-ends yet, or did I get only part of your commit?
oh.. forgot that one :(
I did fix keystick, halui, emcsh, iosh
ll do it if you want
but I probably lack the Xaw libs
I'll have to make the same fix in axis, after all
does it work?
I'm still getting the libs ;)
not sure, I don't run it
but it does build
ok, enough for now :D
you were lots faster than the compile farm :D
./scripts/emc: line 270: 11813 Segmentation fault $HALCMD unloadusr all
let me make sure I didn't do something dumb
try cvs diff
my system seems up to date
no, nothing there
this is halcmd crapping out?
what config did you run?
shouldn't be anything to do with you
maybe I can replicate
btw.. did you rebuild?
I did change the motion variables
jepler@sofa:~/src/emc2$ ./scripts/realtime start
jepler@sofa:~/src/emc2$ ./bin/halcmd unloadrt all
RTAPI: ERROR: failed to map shmem
HAL: ERROR: could not open shared memory
I did a "make clean"
try again, and see if all files are gone
I must have done something wrong .. if I figure it out, I'll let you know
you didn't commit this yet.. right?
the diff you showed yesterday
oh, you did
yes, I did
sorry.. I've lost track :)
and in fact the debugger shows it's dying in hal_ready()
btw: the latest AXIS works OK with the changes in the spindle code
oh, are you talking about the kinematics changes?
no, the hal_ready()
OK, I'm confused. now it works again, and I don't think I changed anything
all I did was walk from the machine where I'd ssh'd in to the machine itself
jepler: it's a matter of FEAR
I get that on the robots a lot
they learned to fear me
so when I'm around everything works as it should
I just love it when a customer calls that a robot is broken
I drive there, and suddenly everything works as it should :D
once I waited about an hour till it broke again :))
I know the experience
it's also frustrating sometimes :(