Skip to content

set parameter oplet

JamesNewton edited this page Apr 4, 2019 · 102 revisions

High level Parameters in the Dexter Firmware are set with the "S" Oplet. For direct control of low level FPGA parameters, see the "w" Oplet

# Name Default / Range DDE / Socket Units Socket Type Description
0 "MaxSpeed" 30 / 0.001-45 deg/s / nbits integer Maximum velocity of next move in "nbits"1. Default is 250000. See also StartSpeed below.
1 "Acceleration" 0.0001 / 0.0001 - 0.1 deg/s2 / nbits integer Maximum acceleration of next move in "nbits"1. Default is 3.
2 "J1Force" How hard each joint tries to return to commanded position in force protect modes
3 "J3Force"
4 "J2Force"
5 "J4Force"
6 "J5Force"
7 "J1Friction" 5 / 0-50 unitless fixed point? 2 The friction felt during FollowMe mode
8 "J3Friction" 5 / 0-50 unitless fixed point?
9 "J2Friction" 5 / 0-50 unitless fixed point?
10 "J4Friction" 15 / 0-150 unitless fixed point?
11 "J5Friction" 15 / 0-150 unitless fixed point?
12 "J1BoundryHigh" 180 / -180-180 deg / arcsec integer Set all Boundaries at once with "B" Oplet
13 "J1BoundryLow" 180 / -180-180 deg / arcsec integer
14 "J3BoundryHigh" 180 / -180-180 deg / arcsec integer
15 "J3BoundryLow" 180 / -180-180 deg / arcsec integer
16 "J2BoundryHigh" 180 / -180-180 deg / arcsec integer
17 "J2BoundryLow" 180 / -180-180 deg / arcsec integer
18 "J4BoundryHigh" 180 / -180-180 deg / arcsec integer
19 "J4BoundryLow" 180 / -180-180 deg / arcsec integer
20 "J5BoundryHigh" 180 / -180-180 deg / arcsec integer
21 "J5BoundryLow" 180 / -180-180 deg / arcsec integer
22 "GripperMotor" 500 / 0 - 12000 PWM Set mode to use PWM output on J19 Start with 1, stop with 0. TODO make ON and OFF widths parameters. See W command 73 - 74.
23 "EERoll" 512 / 0~1023 deg / 0.29*deg 6th axis position / Tool Interface Roll (was standard servo, May 29,2018 changed to Dynamixel)
24 "EESpan" 0 / 0~1023 deg / 0.29*deg 7th axis position / End Effector actuation (was standard servo, May 29,2018 changed to Dynamixel)
25 "StartSpeed" Velocity at start (and currently, the end as well) of the next move in "nbits"1
26 "EndSpeed" (not implemented) Currently StartSpeed is the speed for both the start and end of each move.
27 "ServoSet2X" Address, Register, Value (as of May 29,2018 was "End") see: Servo
28 "ServoSet"
29 "RebootServo" May 29,2018
30 "RunFile" FilePathName Oct 12, 2018 If it exists, the file will be opened and all instructions from it parsed and executed. By convention, files end with .make_ins extension. Each line should be one instruction just like any sent over the socket connection (the job, instruction, start, and end time values are NOT included; start with the oplet). A sample line might be
S J1_PID_P 0.2 ; set base drive
Anything after a ';' is ignored.
Was: "Ctrl" parms/values Aug 24, 2018 Compact setting of values related to operational mode. (Depreciated, replaced with RunFile)
31 "J1_PID_P" 0.2 / 0 - 1 unitless float Float Oct 12, 2018 Set Joint PID P with a floating point number. Helps with Issue #33
32 "J2_PID_P" 0.2 / 0 - 1 unitless float
33 "J3_PID_P" 2 / 0 - 4 unitless float
34 "J4_PID_P" 0.1 / 0 - 0.5 unitless float
35 "J5_PID_P" 0.1 / 0 - 0.5 unitless float
36 "AngularSpeed" 30 / 1 - 45 deg/s / arcsec/s integer
37 "AngularSpeedStartAndEnd" 0.1 / 0 - 45 deg/s / arcsec/s integer
38 "AngularAcceleration" 0.1 / 0.0003 - 0.1 deg/s2 integer
39 "CartesianSpeed" 300000 / 10000 - 500000 micron/s integer
40 "CartesianSpeedStart" 0 / 0 - 500000 micron/s integer
41 "CartesianSpeedEnd" 0 / 0 - 500000 micron/s integer
42 "CartesianAcceleration" 1000000 / 0 - 500000 micron/s2 integer
43 "CartesianStepSize" 10 / 1 - 10000 micron integer
44 "CartesianPivotSpeed" 108000 / 1 - 360000 arcsec/s integer
45 "CartesianPivotSpeedStart" 0 / 1 - 360000 arcsec/s integer
46 "CartesianPivotSpeedEnd" 0 / 1 - 360000 arcsec/s integer
47 "CartesianPivotAcceleration" 10800000 / 1 - 10800000 arcsec/s2 integer
48 "EyeNumbers" array of 5 integers Sets the index for which Eye Dexter thinks it is at. Where it is within an eye is calculated with encoder measurements and effectively cannot be set. Takes 5 signed integer arguments where 0 is the circle that contains 0 degrees. See read_from_robot, #EyeNumbers.
49 "CommandedAngles" arcsec / arcsec integer array of 5 Sets where Dexter thinks it is without actually moving the robot. Takes 5 angles in integer arcseconds. These are the same values that are returned in the robot status under *_AT.
50 "LinkLengths" 165100, 340320, 321032, 050800, 140000 microns integer array of 5 Sets the lengths of each link in the arm for the onboard kinematics.
Link 1: Base mount to Joint 2 pivot.
Link 2: Joint 2 pivot to Joint 3 pivot.
Link 3: Joint 3 pivot to Joint 4 pivot.
Link 4: Joint 4 pivot to axis of tool interface.
Link 5: Axis of Joint 4 to end effector (note: this depends on the end effector)

Note 1 nbits are a value added to a register every clock cycle for a 128Khz clock such that once it overflows, an action will be taken. Converted automatically by DDE in the socket communications code for the "MaxSpeed", "StartSpeed", and "Acceleration" parameters. The global constant "_nbits_cf" is 7754.73550222 and the values given are divided by that constant. This converts degrees / second (or degrees / second / second in the case of Acceleration) into nbits.

Note 2 Frictions can be fractional, but are limited to a range of +-(256 + 1/256). E.g. 1.1 becomes 1 plus a fractional value of 25/256

Clone this wiki locally