Jogging in World coords instead of axis.N ?


Results 1 to 7 of 7

Thread: Jogging in World coords instead of axis.N ?

  1. #1
    Registered
    Join Date
    May 2006
    Location
    USA
    Posts
    14
    Downloads
    0
    Uploads
    0

    Default Jogging in World coords instead of axis.N ?

    I'm using EMC2 to control an inverted tripod machine - three cables on a triangular baseplate support a platform below. I've gotten the non-cartesian kinematics working, and I've installed the joypad jog HAL elements. Once I've calibrated the setup (which is a royal pain in the butt,) I'd like to transition out of machine coordinates and be able to jog the platform in world coordinates. The HAL axis.N jog capability appears to only operate on machine coordinates. I can jog world coordinates from the keyboard, which runs through the kinematic translation layer, but I don't see how to do that from the HAL layer.

    If you're working on a cartesian machine, the trivial kinematics map the axis.N joints onto the XYZ axes. The axis.N jogs work as expected. In non-cartesian machines (tripods, hexapods, etc) you'll want to jog the machine joints for calibration and setup, but also want to jog the system in world coordinates for manual operations while in the middle of a job.

    I'm re-reading the HAL documentation, but I haven't found a way to jog the world coordinates from inside HAL. The UI does it, so it clearly can be done. If anyone has suggestions or hints, I'm all ears.

    Thanks.
    J3

    Similar Threads:


  2. #2
    Registered
    Join Date
    Oct 2005
    Location
    USA
    Posts
    12
    Downloads
    0
    Uploads
    0

    Default

    launch emc, turn the estop off, machine on
    press 'home all' (ctrl-home)
    in a terminal go to the directory your emc.nml file is in (probably the same dir as your config file) and type 'emcsh'
    you should get a % sign prompt
    type 'emc_teleop_enable 1'
    now you can jog in world coordinates, yay!
    it would be a dirty hack, but this could probably be put into a custom m-code if you are in a hurry

    note: not many people use the kinematics functions of emc, and things are likely to be bitrotted. if you find any bugs please tell us



  3. #3
    Registered
    Join Date
    Oct 2005
    Location
    USA
    Posts
    12
    Downloads
    0
    Uploads
    0

    Default

    i gave you the long way around because i dont know my way around the gui, sorry.
    the easy way to switch to teleop mode is to select "World mode" from the View menu in AXIS.

    in CVS i added halui.mode.teleop and halui.mode.joint pins to switch modes. please try it out.
    unfortunately teleop mode jogging is busted in the CVS version of AXIS right now.

    also it'd be great if we could see pictures of your machine.



  4. #4
    Registered
    Join Date
    May 2006
    Location
    USA
    Posts
    14
    Downloads
    0
    Uploads
    0

    Default

    Thanks for the reply. I followed the instructions, and I was able to alter the emc_teleop_enable state, and I could see the result in the TkEMC control panel when jogging from the keyboard. Set to 1, keyboard jogs were World coordinates; set to 0, keyboard jogs were single joints. I can get the same results in the TkEMC control panel by choosing either the Joint radio button or the World radio button.

    I'm trying to get the joystick/joypad control working from within the HAL environment. The examples online and in the documentation all implicitly use a trivial kinematics machine. The axis.N jog commands from within HAL only act on joint operations, and appear to be disabled in teleop mode. When I have emc_teleop_ena set to 0, I can jog the individual joints from the joypad. As soon as I set ena_teleop_ena to 1, the joypad ceases to function.

    The TkEMC control panel has a method of performing World coordinate jogs, but I have yet to find a way to replicate that capability in the HAL environment. I could write a program to convert joystick inputs to G-codes and feed EMC that way, but that'd be a horrible hack. My gut says there's a more elegant solution that can be done within EMC - like changing the values of Dx, Dy and Dz in the tripodkins.c kinematics module - but I don't see how to get the information over there.

    J3



  5. #5
    Registered
    Join Date
    Oct 2005
    Location
    USA
    Posts
    12
    Downloads
    0
    Uploads
    0

    Default

    the proper way to do this is to use the 'halui' module. the axis.N.jog are not what you want. halui provides an interface to emc from hal. this might get a bit tedious over a web forum, perhaps you could join us at #emc on irc.freenode.net ?

    go here for a web-based irc client: http://www.linuxcnc.org/component/op...mid,8/lang,en/



  6. #6
    Registered
    Join Date
    May 2006
    Location
    USA
    Posts
    14
    Downloads
    0
    Uploads
    0

    Default

    Here's an image of the prototype. I built a table-top unit to get the kinematics working. The real machine is intended to be much larger.
    I'm using a stock Xylotex controller and some Lin 4218L motors I swiped from another project. I don't have limit switches or tension controllers
    fabbed here, but the full-size machine must have them. I'm already having tension/backlash issues with my wind-fishline-around-the-stepper-shaft method.

    Overall, it works pretty well so far. I've got one mystery though - the Y and Z cartesian axes got swapped at some point, and it's been persistent
    through power cycles. It happened after switching between Joint and World coordinate modes several days ago, but I haven't chased the problem down yet.





  7. #7
    Registered
    Join Date
    May 2006
    Location
    USA
    Posts
    14
    Downloads
    0
    Uploads
    0

    Default

    Update: the joystick control in World coordinates is working. Many thanks to the folks on the IRC channel for the help. I had to update my system to build from the CVS source. The 2.1.7 binary release doesn't have the necessary HALUI support to make the joystick jogs work outside of joint-mode. EMC reports "2.2 CVS HEAD" when I run, and I confirmed that there are a bunch of new pins and parameters in the HAL environment when running from the source tree.

    I still have to figure out why my cartesian Y and Z axes are swapped - that doesn't seem like a casual thing to have happen, and I didn't see any HAL commands in the config files to explicitly swap them. Odd ...

    I'll probably start a new thread as I build the full-size hardware. The cable reels got built last night - 5" nylon pulleys with custom aluminum hubs bolt directly to the motor shafts.



Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Jogging in World coords instead of axis.N ?

Jogging in World coords instead of axis.N ?