Skip to content

Commit f04d06a

Browse files
committed
release
1 parent 0f9668d commit f04d06a

File tree

6 files changed

+80
-107
lines changed

6 files changed

+80
-107
lines changed

core/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
global.dde_version = "3.8.15" //require("../package.json").version
2-
global.dde_release_date = "Sep 24, 2023" //require("../package.json").release_date
1+
global.dde_version = "3.8.16" //require("../package.json").version
2+
global.dde_release_date = "Sep 12, 2023" //require("../package.json").release_date
33

44
console.log("dde_version: " + global.dde_version + " dde_release_date: " + global.dde_release_date +
55
"\nRead electron_dde/core/job_engine_doc.txt for how to use the Job Engine.\n")

doc/guide.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
<details class="doc_details"><summary>About</summary>
1010
This is <a href="http://hdrobotic.com/" target="_blank">Dexter</a> Development Environment<br/>
11-
version: <span id="dde_version_id">3.8.15</span><br/>
12-
released: <span id="dde_release_date_id">Sep 9, 2023</span>
11+
version: <span id="dde_version_id">3.8.16</span><br/>
12+
released: <span id="dde_release_date_id">Sep 12, 2023</span>
1313
<p></p>
1414
DDE helps you create, debug, and send software to a Dexter robot.
1515
You can use any JavaScript augmented with DDE-specific functions to help find out about,

doc/release_notes.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,19 @@
66
.doc_details summary { font-weight: 600; }
77
</style>
88

9+
<details class="doc_details"><summary>v 3.8.16, Sep 12, 2023</summary>
10+
Highlights: Bug fixes to the Calibration dialog box.
11+
<ul>
12+
<li>In calibrate_ui.js, removed the first def of init_calibrate as that was
13+
just getting overwritten with the 2nd.</li>
14+
<li>In calibrate_ui.js, increased the window height to 660 to get rid of the vertical scroll bar
15+
in some situations.</li>
16+
<li>New version of function: <code>init_view_eye</code> in file: ViewEyeRealTime.js
17+
and other fixes for the new number widgets at the bottom of the dialog involving
18+
"Number("</li>
19+
</ul>
20+
</details>
21+
922
<details class="doc_details"><summary>v 3.8.15, Sep 8, 2023</summary>
1023
Highlights: defaults.makeins and Calibrate Dexter dialog improved.
1124
<ul>

low_level_dexter/ViewEyeRealTime.js

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,19 @@ function smLinex(run_backwards = false){
2828
result.push (make_ins("F"))
2929
//out(run_backwards)
3030
for (let j = 0;j < size;j++){
31+
if(j === 0){
32+
result.push([
33+
make_ins("S", "MaxSpeed", Number(RapidSpeed_id.value)),
34+
make_ins("S", "Acceleration",0.0001),
35+
make_ins("S", "StartSpeed",0),
36+
])
37+
}else if(j === 1){
38+
result.push([
39+
make_ins("S", "MaxSpeed", Number(MaxSpeed_id.value)),
40+
make_ins("S", "Acceleration",Number(Accel_id.value)),
41+
make_ins("S", "StartSpeed",Number(StartSpeed_id.value)),
42+
])
43+
}
3144
let i = j
3245
if(run_backwards){
3346
i = size - j
@@ -201,6 +214,19 @@ function display_center_guess(){
201214
append_in_ui("svg_id", thehtml)
202215
}
203216

217+
function update_step_size(){
218+
let step_size = Number(StepSize_id.value)
219+
out("Setting Step Size: " + step_size)
220+
AxisTable = [
221+
[[step_size, 0, 0, 0, 0], Dexter.J1_A2D_SIN, Dexter.J1_A2D_COS, [-648000*_arcsec, 0, 0, 0, 0], 1240 / 2, [0, 0, 0, 0, 0]],
222+
[[0, step_size, 0, 0, 0], Dexter.J2_A2D_SIN, Dexter.J2_A2D_COS, [0, -324000*_arcsec, 0, 0, 0], 1900 / 2, [0, 0, 0, 0, 0]],
223+
[[0, 0, step_size, 0, 0], Dexter.J3_A2D_SIN, Dexter.J3_A2D_COS, [0, 0, -500000*_arcsec, 0, 0], 1500 / 2, [0, 0, 0, 0, 0]],
224+
[[0, 0, 0, step_size, 0], Dexter.J4_A2D_SIN, Dexter.J4_A2D_COS, [0, 0, 0, -190000*_arcsec, 0], 1800 / 2, [0, 0, 0, 0, 0]],
225+
[[0, 0, 0, 0, step_size], Dexter.J5_A2D_SIN, Dexter.J5_A2D_COS, [0, 0, 0, 0, -148000*_arcsec], 4240 / 2, [0, 0, 0, 0, 0]]
226+
]
227+
//TODO: this will fail if the joint is looping and the sign of step size in negative
228+
}
229+
204230
var old_point_color = "#dedede"
205231

206232
var cal_saved_points_old
@@ -248,23 +274,29 @@ function DisplayOldEyePoints(J_num)
248274
function init_view_eye(){
249275
//this table has to be here rather than top level in the file even though it is static,
250276
//because _nbits_cf and the other units cause errors if referenced at top level.
251-
AxisTable = [[[800/_nbits_cf, 0, 0, 0, 0], Dexter.J1_A2D_SIN, Dexter.J1_A2D_COS, [-648000*_arcsec, 0, 0, 0, 0], 1240 / 2, [0, 0, 0, 0, 0]],
252-
[[0, 800/_nbits_cf, 0, 0, 0], Dexter.J2_A2D_SIN, Dexter.J2_A2D_COS, [0, -324000*_arcsec, 0, 0, 0], 1900 / 2, [0, 0, 0, 0, 0]],
253-
[[0, 0, 800/_nbits_cf, 0, 0], Dexter.J3_A2D_SIN, Dexter.J3_A2D_COS, [0, 0, -500000*_arcsec, 0, 0], 1500 / 2, [0, 0, 0, 0, 0]],
254-
[[0, 0, 0, 800/_nbits_cf, 0], Dexter.J4_A2D_SIN, Dexter.J4_A2D_COS, [0, 0, 0, -190000*_arcsec, 0], 1800 / 2, [0, 0, 0, 0, 0]],
255-
[[0, 0, 0, 0, 800/_nbits_cf], Dexter.J5_A2D_SIN, Dexter.J5_A2D_COS, [0, 0, 0, 0, -148000*_arcsec], 4240 / 2, [0, 0, 0, 0, 0]]]
277+
//let step_size = 800/_nbits_cf
278+
279+
280+
update_step_size()
281+
/*
282+
let step_size =
283+
AxisTable = [[[step_size, 0, 0, 0, 0], Dexter.J1_A2D_SIN, Dexter.J1_A2D_COS, [-648000*_arcsec, 0, 0, 0, 0], 1240 / 2, [0, 0, 0, 0, 0]],
284+
[[0, step_size, 0, 0, 0], Dexter.J2_A2D_SIN, Dexter.J2_A2D_COS, [0, -324000*_arcsec, 0, 0, 0], 1900 / 2, [0, 0, 0, 0, 0]],
285+
[[0, 0, step_size, 0, 0], Dexter.J3_A2D_SIN, Dexter.J3_A2D_COS, [0, 0, -500000*_arcsec, 0, 0], 1500 / 2, [0, 0, 0, 0, 0]],
286+
[[0, 0, 0, step_size, 0], Dexter.J4_A2D_SIN, Dexter.J4_A2D_COS, [0, 0, 0, -190000*_arcsec, 0], 1800 / 2, [0, 0, 0, 0, 0]],
287+
[[0, 0, 0, 0, step_size], Dexter.J5_A2D_SIN, Dexter.J5_A2D_COS, [0, 0, 0, 0, -148000*_arcsec], 4240 / 2, [0, 0, 0, 0, 0]]]
288+
*/
289+
256290

257291
window.cal_working_axis = undefined //global needed by calibrate_ui.js
258292

259293
new Job({name: "CalSensors", keep_history: true, show_instructions: false,
260294
inter_do_item_dur: .5 * _ms,
261295
robot: cal_get_robot(),
262296
do_list: [
263-
function()
264-
{
265-
let J_num = window.cal_working_axis+1
266-
DisplayOldEyePoints(J_num)
267-
},
297+
make_ins("S", "MaxSpeed", Number(RapidSpeed_id.value)),
298+
make_ins("S", "Acceleration",0.0001),
299+
make_ins("S", "StartSpeed",0),
268300
Dexter.move_all_joints(0, 0, 0, 0, 0),
269301
Robot.label("loop_start"),
270302
make_ins("w", 42, 64),
@@ -279,15 +311,25 @@ function init_view_eye(){
279311
make_ins("S", "J5BoundryLow",-648000*_arcsec),
280312
make_ins("S", "J5BoundryHigh",648000*_arcsec),
281313

314+
make_ins("S", "MaxSpeed", Number(MaxSpeed_id.value)),
315+
make_ins("S", "Acceleration",Number(Accel_id.value)),
316+
make_ins("S", "StartSpeed",Number(StartSpeed_id.value)),
317+
318+
/*
282319
make_ins("S", "MaxSpeed", 25*_deg/_s),
283320
make_ins("S", "Acceleration",0.00129),
284321
make_ins("S", "StartSpeed",5),
322+
*/
323+
324+
285325
//scan_axis(),
286326
smLinex,
287327
display_center_guess,
328+
/*
288329
make_ins("S", "MaxSpeed",40),
289330
make_ins("S", "Acceleration",0.00129),
290331
make_ins("S", "StartSpeed",5),
332+
*/
291333
function(){
292334
if(cal_is_loop_checked(window.cal_working_axis+1)){ //if looping
293335
return [
@@ -298,15 +340,21 @@ function init_view_eye(){
298340
]
299341
}
300342
},
343+
make_ins("S", "MaxSpeed", Number(RapidSpeed_id.value)),
344+
make_ins("S", "Acceleration",0.0001),
345+
make_ins("S", "StartSpeed",0),
346+
Dexter.empty_instruction_queue,
347+
Robot.wait_until(1),
301348
Dexter.move_all_joints(0, 0, 0, 0, 0),
302349
Dexter.empty_instruction_queue,
303350
function() {
304351
let J_num = window.cal_working_axis+1
305352
let start_button_dom_elt = window["Start_J_" + J_num + "_id"]
306353
start_button_dom_elt.style.backgroundColor = "rgb(230, 179, 255)"
307354
cal_instructions_id.innerHTML =
308-
"Click in the center of the dot_pattern circle."
309-
}
355+
"Click in the center of the dot_pattern circle.<br/>"
356+
},
357+
Dexter.set_parameter("RunFile", "Defaults.make_ins")
310358
]})
311359
cal_init_view_eye_state = false
312360
}

low_level_dexter/calibrate_ui.js

Lines changed: 1 addition & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -456,95 +456,7 @@ function init_calibrate()
456456
//init_calibrate_optical() //will define (or redefine the calibrate_optical job, which is ok)
457457
show_window({
458458
title:"Eye Center Calibration",
459-
x:680, y: 0, width:680, height: 650,
460-
//x:325, y: 0, width:680, height: 640,
461-
content:
462-
"1. Choose a Dexter to calibrate: " + make_dexter_robot_menu_html() + "<br/>" +
463-
"2. <span id='cal_instructions_id'>Calibrate optical sensors by<br/>&nbsp;&nbsp;&nbsp;&nbsp;choosing each joint to calibrate.</span><br/>" +
464-
"<table style='margin:0px;padding:0px;'><tr><td style='margin:0px;padding-right:10px;background-color:#ffc69e;'>" +
465-
make_calibrate_joint_buttons_html() +
466-
"</td><td><table style='border-collapse:collapse !important;border;0px;'><tr><td>" +
467-
//"<div style='width:20px;height:410px;display:inline-block; transform:rotateZ(-90deg);'>" +
468-
// " Right potentiometer: &nbsp;Clockwise pot rotation &rarr;" +
469-
// "</div></td><td>" +
470-
svg_svg({width:20, height:410, child_elements: [svg_text({x:0, y:380, transform: 'rotate(-90 15 380)',
471-
text:'Left potentiometer: &nbsp;Clockwise pot rotation &rarr;'
472-
})]}) + "</td><td>" +
473-
svg_svg({id: "svg_id", height: window.cal_svg_height, width: window.cal_svg_height,
474-
html_class: "clickable", style:"background-color:white;",
475-
child_elements: [
476-
svg_text({text: "X Axis", x: 150, y: 400, size: 30, color: "#DDDDDD", border_width: 1, border_color: "black", style: 'font-weight:bold;'}),
477-
svg_text({text: "Y Axis", x: 30, y: 250, size: 30, color: "#DDDDDD", border_width: 1, border_color: "black", style: 'font-weight:bold;', transform: 'rotate(-90 30 250)'}),
478-
]}) +
479-
"</td></tr><tr style='border-collapse:collapse;'><td style='border-collapse:collapse;'></td><td>&nbsp;&nbsp;&nbsp;&nbsp;Right potentiometer: &nbsp;Clockwise pot rotation &rarr;</td></tr>" +
480-
"</table></td></tr></table>" +
481-
482-
483-
"Legend: &nbsp;&nbsp;&nbsp;" +
484-
"<span class='dot' style='height:10px;width:10px;background-color:blue;display:inline-block;border-radius: 50%'></span>"
485-
+ " = Previous Center &nbsp;&nbsp;&nbsp;" +
486-
"<span class='dot' style='height:10px;width:10px;background-color:green;display:inline-block;border-radius: 50%'></span>"
487-
+ " = Predicted Center &nbsp;&nbsp;&nbsp;" +
488-
"<span class='dot' style='height:10px;width:10px;background-color:red;display:inline-block;border-radius: 50%'></span>"
489-
+ " = Center to Save" +
490-
491-
"<br><br>" +
492-
"MaxSpeed: " +
493-
"<input id='MaxSpeed_id' title='MaxSpeed value during\neye center calibration\ndefault = 25\nunits = (deg/s)' type='number' style='width:45px;' value='25'/>" +
494-
" Accel: " +
495-
"<input id='Accel_id' title='Accleration value during\neye center calibration\ndefault = 0.001\nunits = N/A' type='number' style='width:65px;' value='0.001'/>" +
496-
" StartSpeed: " +
497-
"<input id='StartSpeed_id' title='StartSpeed value during\neye center calibration\ndefault = 5\nunits = (deg/s)' type='number' style='width:45px;' value='5'/>" +
498-
" StepSize: " +
499-
"<input id='StepSize_id' title='StepSize value during\neye center calibration\ndefault = 0.1\nunits = deg'type='number' style='width:45px;' value='0.1' onchange='update_step_size()'/>" +
500-
" RSpeed: " +
501-
"<input id='RapidSpeed_id' title='RapidSpeed for movements\nbefore and after eye\ncenter calibration\ndefault = 25\nunits = (deg/s)' type='number' style='width:45px;' value='25'/>"
502-
503-
504-
/*
505-
"3. <input type='button' id='calibrate_optical_id' style='margin-top:10px;' title='Do each time you turn on Dexter.'" +
506-
"value='Calibrate optical encoders'/>" +
507-
`&nbsp&nbsp4. <input type='button' style='margin-top:10px;' title='Click to start FindHome Job'
508-
value='Start FindHome'>
509-
</button> &nbsp(Experimental)`,
510-
*/
511-
/*
512-
"3. <input type='button' id='calibrate_optical_id' style='margin-top:10px;' title='Do each time you turn on Dexter.'" +
513-
"value='Calibrate optical encoders'/>",
514-
*/
515-
516-
, callback: handle_cal
517-
})
518-
open_doc(calibrate_doc_id)
519-
setTimeout(cal_reset_ranges, 200)
520-
setTimeout(function(){
521-
try{
522-
//this errors when the robot to calibrate hasn't been chosen yet
523-
let robot_sim = Robot[robot_to_calibrate_id.value].simulate
524-
let sim_actual = Robot.get_simulate_actual(robot_sim)
525-
if(sim_actual === true){
526-
//show_window({content: "Don't Sim"})
527-
open_doc(simulate_doc_id)
528-
confirm("Warning: Simulate is set to true so calibration window will not work. \nTo set to false, choose Jobs menu/Simulate/false.")
529-
}
530-
else if (Dexter.all_names.length === 1) { cal_init_robot() } //Fry added Oct 19, 2018
531-
}catch(err){
532-
533-
}
534-
}, 1000)
535-
}
536-
537-
function init_calibrate()
538-
{
539-
//this has been moved because the robot isn't known yet
540-
//init_view_eye() //will define (or redefine the view eye job, which is ok)
541-
cal_init_view_eye_state = true
542-
543-
544-
//init_calibrate_optical() //will define (or redefine the calibrate_optical job, which is ok)
545-
show_window({
546-
title:"Eye Center Calibration",
547-
x:680, y: 0, width:680, height: 650,
459+
x:680, y: 0, width:680, height: 660,
548460
//x:325, y: 0, width:680, height: 640,
549461
content:
550462
"1. Choose a Dexter to calibrate: " + make_dexter_robot_menu_html() + "<br/>" +

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "dexter_dev_env",
33
"productName": "dexter_dev_env",
4-
"version": "3.8.15",
5-
"release_date": "Sep 8, 2023",
4+
"version": "3.8.16",
5+
"release_date": "Sep 12, 2023",
66
"description": "Dexter Development Environment for programming the Dexter robot.",
77
"author": "Fry",
88
"license": "GPL-3.0",

0 commit comments

Comments
 (0)