W axis with gantry kins hal/ini configuration

More
10 years 10 months ago #66625 by guymalpass
loadrt motmod is using what is written in the ini. When AXES=9 I get the problems stated in the first post

Please Log in to join the conversation.

More
10 years 10 months ago #66626 by andypugh

COORDINATES = X Y Z w


Perhaps it is case-sensitive?

Please Log in to join the conversation.

More
10 years 10 months ago #66627 by guymalpass
Just spotted that myself and changed it but to no avail.

Please Log in to join the conversation.

More
10 years 10 months ago #66628 by andypugh
if motmod gets num_joints = 9, and if there is an INI section for every axis, even the ones that don't exist, and if the COORDINATES line is XYZW then it should work.

Are all those conditions true?

Please Log in to join the conversation.

More
10 years 10 months ago #66629 by guymalpass
For the non existent axes is it as simple as just entering [Axes_4] [Axes_5] [Axes_6] [Axes_7] in the ini?

Please Log in to join the conversation.

More
10 years 10 months ago #66630 by Todd Zuercher
The JA9 sim that I tested was a modified version of one of the Sim.Axis configs that came with that version of Linuxcnc

The INI I tested was sim_xyzyw.ini (modified version of sim_xyzbc.ini)
Code:
# EMC controller parameters for a simulated XYZBC machine. # General note: Comments can either be preceded with a # or ; - either is # acceptable, although # is in keeping with most linux config files. # General section ------------------------------------------------------------- [EMC] # Version of this INI file VERSION = 1.0 # Name of machine, for use with display, etc. MACHINE = EMC-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0x7FFFFFFF DEBUG = 0 # Sections for display options ------------------------------------------------ [DISPLAY] # Name of display program, e.g., xemc DISPLAY = axis # Cycle time, in seconds, that display will sleep between polls CYCLE_TIME = 0.02 # Path to help file HELP_FILE = doc/help.txt # Initial display setting for position, RELATIVE or MACHINE POSITION_OFFSET = RELATIVE # Initial display setting for position, COMMANDED or ACTUAL POSITION_FEEDBACK = ACTUAL # Highest value that will be allowed for feed override, 1.0 = 100% MAX_FEED_OVERRIDE = 1.2 MAX_SPINDLE_OVERRIDE = 1.0 # Prefix to be used PROGRAM_PREFIX = /home/todd/linuxcnc/nc_files # Introductory graphic INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 EDITOR = gedit INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in [FILTER] PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image PROGRAM_EXTENSION = .py Python Script png = image-to-gcode gif = image-to-gcode jpg = image-to-gcode py = python # Task controller section ----------------------------------------------------- [TASK] # Name of task controller program, e.g., milltask TASK = milltask # Cycle time, in seconds, that task controller will sleep between polls CYCLE_TIME = 0.001 # Part program interpreter section -------------------------------------------- [RS274NGC] # File containing interpreter variables PARAMETER_FILE = sim_xyzbc.var # Motion control section ------------------------------------------------------ [EMCMOT] EMCMOT = motmod # Timeout for comm to emcmot, in seconds COMM_TIMEOUT = 1.0 # Interval between tries to emcmot, in seconds COMM_WAIT = 0.010 # Servo task period, in nano-seconds SERVO_PERIOD = 1000000 # Hardware Abstraction Layer section -------------------------------------------------- [HAL] # The run script first uses halcmd to execute any HALFILE # files, and then to execute any individual HALCMD commands. # # list of hal config files to run through halcmd # files are executed in the order in which they appear HALFILE = sim_xyzyw.hal # Single file that is executed after the GUI has started. Only supported by # AXIS at this time (only AXIS creates a HAL component of its own) #POSTGUI_HALFILE = test_postgui.hal HALUI = halui # Trajectory planner section -------------------------------------------------- [TRAJ] COORDINATES = X Y Z Y W LINEAR_UNITS = mm ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 80 MAX_LINEAR_VELOCITY = 100 DEFAULT_LINEAR_ACCEL = 300 MAX_LINEAR_ACCEL = 300 POSITION_FILE = position_sim_xyzbc.txt [KINS] JOINTS = 5 KINEMATICS = gantrykins # Axes sections --------------------------------------------------------------- [AXIS_X] [AXIS_Y] [AXIS_Z] [AXIS_B] [AXIS_W] # Joints sections ------------------------------------------------------------- # First joint [JOINT_0] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 100 MAX_ACCELERATION = 300 BACKLASH = 0.000 MIN_LIMIT = -1 MAX_LIMIT = 1000 FERROR = 1 MIN_FERROR = 1 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0 HOME_LATCH_VEL = 0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 1 # Second joint [JOINT_1] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 100 MAX_ACCELERATION = 300 BACKLASH = 0.000 MIN_LIMIT = -1 MAX_LIMIT = 1000 FERROR = 1 MIN_FERROR = 1 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0 HOME_LATCH_VEL = 0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 1 # Third joint [JOINT_2] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 100 MAX_ACCELERATION = 300 BACKLASH = 0.000 MIN_LIMIT = -1 MAX_LIMIT = 100 FERROR = 1 MIN_FERROR = 1 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0 HOME_LATCH_VEL = 0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 0 [JOINT_3] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 100 MAX_ACCELERATION = 300 BACKLASH = 0.000 MIN_LIMIT = -1 MAX_LIMIT = 1000 FERROR = 1 MIN_FERROR = 1 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0 HOME_LATCH_VEL = 0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 1 [JOINT_4] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 100 MAX_ACCELERATION = 300 BACKLASH = 0.000 MIN_LIMIT = -1 MAX_LIMIT = 100 FERROR = 1 MIN_FERROR = 1 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0 HOME_LATCH_VEL = 0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 0 # section for main IO controller parameters ----------------------------------- [EMCIO] # Name of IO controller program, e.g., io EMCIO = io # cycle time, in seconds CYCLE_TIME = 0.100 # tool table file TOOL_TABLE = sim_xyzbc.tbl TOOL_CHANGE_POSITION = 0 0 80

And the hal file sim_xyzyw.hal (modified version of sim_xyzbc.hal)
Code:
# core HAL config file for XYZBC simulation # first load all the RT modules that will be needed loadrt [KINS]KINEMATICS coordinates=XYZYW setp [KINS](KINEMATICS).joint-0 0 setp [KINS](KINEMATICS).joint-1 1 setp [KINS](KINEMATICS).joint-2 2 setp [KINS](KINEMATICS).joint-3 1 setp [KINS](KINEMATICS).joint-4 8 # motion controller, get name and thread periods from ini file loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS # add motion controller functions to servo thread addf motion-command-handler servo-thread addf motion-controller servo-thread # create HAL signals for position commands from motion module # loop position commands back to motion module feedback net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb net Bpos joint.3.motor-pos-cmd => joint.3.motor-pos-fb net Cpos joint.4.motor-pos-cmd => joint.4.motor-pos-fb # estop loopback net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in # create signals for tool loading loopback net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed

Please Log in to join the conversation.

More
10 years 10 months ago #66631 by Todd Zuercher

guymalpass wrote: For the non existent axes is it as simple as just entering [Axes_4] [Axes_5] [Axes_6] [Axes_7] in the ini?


Yes that is all that is needed for the place holders (using the normal 2.7 release of Linuxcnc).

Please Log in to join the conversation.

More
10 years 10 months ago #66633 by Todd Zuercher
I was not able to make a sim using gantrykins work with W in the normal 2.7 release. I could get it to start, but homing and jogging the W never seemed to work right. Maybe I needed to fiddle with it more, but I was not able to find the right combination in the config to make it work. (I can do it with trivkins, but that isn't what you wanted since you have a gantry.)

Please Log in to join the conversation.

More
10 years 10 months ago #66634 by guymalpass
I see, so may this be a bug rather than a config error? Back to Andy's post, yes all the conditions are true. Also if you were to build a Joints_Axes branch wouldn't you use gentrivkins rather than gantrykins?

Please Log in to join the conversation.

More
10 years 10 months ago #66639 by dgarrett
For anyone interested in trying a recent joints_axes9 branch,
the attached tar file (g.tgz) has a simplified sim config with:

X --> Joint0
Y --> Joint1 AND Joint2
Z --> Joint3
W --> Joint4

Important notes:
Code:
[TRAJ] COORDINATES = XYZW # The [TRAJ]COORDINATES item names the letters for gcode # XYYZW or YYXZW or WXYYYYYYYYYYYZW work the same [KINS] JOINTS = 5 KINEMATICS = gentrivkins coordinates=xyyzw kinstype=BOTH AUTO_TELEOP=20 # The coordinates=xyyzw for gentrivkins assigns to joints # in sequence: 0,1,2,3,4 # so here the order and axis names are important
The AUTO_TELEOP option causes a switch to teleop (world)
after homing (wait 20 seconds at most)

In the axis gui, the '$' character toggles joint and teleop modes

Please Log in to join the conversation.

Time to create page: 0.067 seconds
Powered by Kunena Forum