Files
2026-08-20 06:17:39 +08:00

371 lines
8.6 KiB
INI

# This config file was created 2015-10-18 15:29:00.438682 by the update_ini script
# The original config files may be found in the /home/seb/linuxcnc-dev/configs/by_machine/scorbot-er-3/scorbot-er-3.old directory
[EMC]
# The version string for this INI file.
VERSION = 1.1
MACHINE = Scorbot-ER III
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
#DEBUG = 0x7fffffff
DEBUG = 0
[DISPLAY]
DISPLAY = axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 2.0
MAX_SPINDLE_OVERRIDE = 2.0
MAX_LINEAR_VELOCITY = 27
DEFAULT_LINEAR_VELOCITY = 27
MAX_ANGULAR_VELOCITY = 27
DEFAULT_ANGULAR_VELOCITY = 27
PROGRAM_PREFIX = ../../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
EDITOR = gvim
TOOL_EDITOR = gvim
INCREMENTS = 10 mm, 1 mm, 0.10 mm, 0.01 mm
PYVCP = gripper.xml
[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 = python3
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALFILE = scorbot-er-3.hal
#HALFILE = ../../common/shuttlexpress.hal
#HALFILE = shuttlexpress-customization.hal
POSTGUI_HALFILE = pyvcp.hal
HALUI = halui
[HALUI]
#No Content
[TRAJ]
AXES = 5
COORDINATES = X Y Z A B
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
#HOME = 0 0 0 0 0
# mm/second
DEFAULT_VELOCITY = 675
MAX_VELOCITY = 675
# mm/second/second
DEFAULT_ACCELERATION = 5000
MAX_ACCELERATION = 5000
POSITION_FILE = position.txt
#
# The Scorbot-ER III User's Manual (6th Edition) Appendix E states that
# motors 1-5 (joints 0-4) use optical encoders with 6 slots/revolution.
# Experimentally, the Scorbot motor control box reports 6 counts per
# revolution.
#
# The arm motors (joint 0, 1, & 2) have gearboxes with a ratio of 127.7:1.
# The wrist motors (joints 3 & 4) have gearboxes with a ratio of 65.5:1.
#
# 6 counts/motor-rev * 127.7 motor-revs/driveshaft-rev = 766.2 counts/driveshaft-rev
#
# 6 counts/motor-rev * 65.5 motor-revs/driveshaft-rev = 393 counts/driveshaft-rev
#
# Each motor then has a different transmission to actuate the joint, but
# they're all 1:1 after the gearbox on the motor.
#
[EMCIO]
#TOOL_TABLE = sim.tbl
#TOOL_CHANGE_POSITION = 0 0 0
#TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = scorbot-kins
#This is a best-guess at the number of joints, it should be checked
JOINTS = 5
[AXIS_X]
HOME = 0.000
MIN_LIMIT = -1000
MAX_LIMIT = 1000
MAX_VELOCITY = 675
MAX_ACCELERATION = 5000
[JOINT_0]
TYPE = ANGULAR
MAX_VELOCITY = 675
MAX_ACCELERATION = 5000
# Motor 0 turns a 24 tooth gear that rolls around a 120 tooth gear.
# 766.2 counts/driveshaft-rev * 1 driveshaft-rev/24 teeth = 31.925 counts/tooth
# 31.925 counts/tooth * 120 teeth/joint-rev = 3831.0 counts/joint-rev
# 3831.0 counts/joint-rev * 1 joint-rev/360 degrees = 10.6417 counts/degree
SCALE = 10.6417
MIN_LIMIT = -1000
MAX_LIMIT = 1000
FERROR = 0.100
MIN_FERROR = 0.010
HOME = 0.000
HOME_OFFSET = -0.100
HOME_SEARCH_VEL = -7.500
HOME_LATCH_VEL = 2.000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
[AXIS_Y]
HOME = 130.000
MIN_LIMIT = -1000
MAX_LIMIT = 1000
MAX_VELOCITY = 500
MAX_ACCELERATION = 5000
[JOINT_1]
TYPE = ANGULAR
MAX_VELOCITY = 500
MAX_ACCELERATION = 5000
# Motor 1 turns an 18 tooth gear that rolls around a 72 tooth gear.
# 766.2 counts/driveshaft-rev * 1 driveshaft-rev/18 teeth = 42.567 counts/tooth
# 42.567 counts/tooth * 72 teeth/joint-rev = 3064.8 counts/joint-rev
# 3064.8 counts/joint-rev * 1 joint-rev/360 degrees = 8.513 counts/degree
SCALE = -8.513
MIN_LIMIT = -32
MAX_LIMIT = 127
FERROR = 0.100
MIN_FERROR = 0.010
HOME = 125.000
HOME_OFFSET = 127.900
HOME_SEARCH_VEL = 7.500
HOME_LATCH_VEL = -2.000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2
[AXIS_Z]
HOME = 0.000
MIN_LIMIT = -1000
MAX_LIMIT = 1000
MAX_VELOCITY = 675
MAX_ACCELERATION = 5000
[JOINT_2]
TYPE = ANGULAR
MAX_VELOCITY = 675
MAX_ACCELERATION = 5000
# Motor 2 turns an 18 tooth gear that rolls around a 72 tooth gear.
# The 72 tooth gear turns a 19(?) tooth timing pulley connected to a 17 tooth timing pulley.
# 766.2 counts/driveshaft-rev * 1 driveshaft-rev/18 teeth = 42.567 counts/tooth
# 42.567 counts/tooth * 72 teeth/axle-rev = 3064.8 counts/axle-rev
# 3064.8 counts/axle-rev * 1 axle-rev/19 timing-teeth = 161.305 counts/timing-tooth
# 161.305 counts/timing-tooth * 17 timing-teeth/joint-rev = 2742.189 counts/joint-rev
# 2742.189 counts/joint-rev * 1 joint-rev/360 degrees = 7.617 counts/rev
SCALE = 7.6171929824561415
MIN_LIMIT = -1000
MAX_LIMIT = 1000
FERROR = 0.050
MIN_FERROR = 0.010
HOME = 0.000
HOME_OFFSET = -30.001
HOME_SEARCH_VEL = -7.500
HOME_LATCH_VEL = 2.000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2
[AXIS_A]
HOME = 20.0
MIN_LIMIT = -1000
MAX_LIMIT = 1000
MAX_VELOCITY = 675
MAX_ACCELERATION = 5000
[JOINT_3]
TYPE = ANGULAR
MAX_VELOCITY = 675
MAX_ACCELERATION = 5000
# Motor 3 turns a 12 tooth timing gear (gear #1) connected by a timing belt
# to a 23 tooth timing gear (gear #2). Gear #2 is connected by another
# belt to another 23 tooth timing gear (gear #3). Gear #3 is connected by
# another timing belt to another 23 tooth timing gear (gear #4).
# Gear #4 is connected to a differential drive in the wrist.
# The drive gear (the part of the diff rigidly connected to the timing gear)
# has 32 teeth. The driven gear also has 32 teeth.
#
# FIXME: Since this motor moves the hand in two degrees of freedom, i'm not
# sure how to think about the units etc here.
#
# At the motor:
# 393 counts/driveshaft-rev * 1 driveshaft-rev/12 teeth = 32.75 counts/timing-tooth
# Then at the end of the timing belt drive:
# 32.75 counts/timing-tooth * 32 diff-teeth/23 timing-teeth = 45.56521739130435 counts/diff-tooth
# 45.56521739130435 counts/diff-tooth * 32 diff-teeth/360 degrees = 4.05024154589372 counts/degree
# FIXME: i'm not sure it's ok to convert diff-teeth to degrees that way since it's a differential
SCALE = 4.05024154589372
MIN_LIMIT = -1000
MAX_LIMIT = 1000
FERROR = 0.050
MIN_FERROR = 0.010
HOME = -30.0
HOME_OFFSET = -56.0
HOME_SEARCH_VEL = -7.500
HOME_LATCH_VEL = 2.000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
[AXIS_B]
HOME = 4.0
MIN_LIMIT = -1000
MAX_LIMIT = 1000
MAX_VELOCITY = 675
MAX_ACCELERATION = 5000
[JOINT_4]
TYPE = ANGULAR
MAX_VELOCITY = 675
MAX_ACCELERATION = 5000
# Motor 4, same as motor 3
SCALE = 4.05024154589372
MIN_LIMIT = -1000
MAX_LIMIT = 1000
FERROR = 0.050
MIN_FERROR = 0.010
HOME = 4.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = -7.500
HOME_LATCH_VEL = 2.000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
#[AXIS_5]
#TYPE = ANGULAR
#MAX_VELOCITY = 100
#MAX_ACCELERATION = 500
# joint 5
#SCALE = 5
#MIN_LIMIT = -8.0
#MAX_LIMIT = 0.0001
#FERROR = 0.050
#MIN_FERROR = 0.010
#HOME = 0.000
#HOME_OFFSET = 1.0
#HOME_SEARCH_VEL = 20.0
#HOME_LATCH_VEL = 20.0
#HOME_USE_INDEX = NO
#HOME_IGNORE_LIMITS = NO
#HOME_SEQUENCE = 0
#[AXIS_6]
#TYPE = ANGULAR
#MAX_VELOCITY = 100
#MAX_ACCELERATION = 500
# joint 6
#SCALE = 5
#MIN_LIMIT = -8.0
#MAX_LIMIT = 0.0001
#FERROR = 0.050
#MIN_FERROR = 0.010
#HOME = 0.000
#HOME_OFFSET = 1.0
#HOME_SEARCH_VEL = 20.0
#HOME_LATCH_VEL = 20.0
#HOME_USE_INDEX = NO
#HOME_IGNORE_LIMITS = NO
#HOME_SEQUENCE = 0
#[AXIS_7]
#TYPE = ANGULAR
#MAX_VELOCITY = 100
#MAX_ACCELERATION = 500
# joint 7
#SCALE = 5
#MIN_LIMIT = -8.0
#MAX_LIMIT = 0.0001
#FERROR = 0.050
#MIN_FERROR = 0.010
#HOME = 0.000
#HOME_OFFSET = 1.0
#HOME_SEARCH_VEL = 20.0
#HOME_LATCH_VEL = 20.0
#HOME_USE_INDEX = NO
#HOME_IGNORE_LIMITS = NO
#HOME_SEQUENCE = 0