Skip to content

Commit 65f03c6

Browse files
committed
added additional blocks for trajectory and pins selection
1 parent 13d5c4b commit 65f03c6

File tree

1 file changed

+200
-0
lines changed

1 file changed

+200
-0
lines changed

src/niryo_one_python_generators.js

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,46 @@ Blockly.Blocks['niryo_one_execute_registered_trajectory'] = {
858858
}
859859
};
860860

861+
Blockly.Blocks['niryo_one_execute_trajectory_from_poses'] = {
862+
init: function () {
863+
this.appendDummyInput().appendField('Execute trajectory from poses');
864+
this.appendValueInput('POSE_1').setCheck('niryo_one_pose');
865+
this.appendValueInput('POSE_2').setCheck('niryo_one_pose');
866+
this.appendValueInput('POSE_3').setCheck('niryo_one_pose');
867+
this.appendValueInput('DIST_SMOOTHING')
868+
.setCheck('Number')
869+
.appendField('with smoothing distance factor');
870+
this.setPreviousStatement(true, null);
871+
this.setNextStatement(true, null);
872+
this.setColour(trajectory_color);
873+
this.setTooltip(
874+
'Execute trajectory from a list of poses. Distance smoothing refers to distance from waypoints before smoothing trajectory.'
875+
);
876+
this.setHelpUrl('');
877+
}
878+
};
879+
880+
Blockly.Blocks['niryo_one_save_trajectory'] = {
881+
init: function () {
882+
this.appendDummyInput().appendField('Save trajectory from joints');
883+
// this.appendDummyInput().appendField('\n');
884+
this.appendValueInput('JOINT_1').setCheck('niryo_one_joint');
885+
this.appendValueInput('JOINT_2').setCheck('niryo_one_joint');
886+
this.appendValueInput('JOINT_3').setCheck('niryo_one_joint');
887+
this.appendValueInput('TRAJECTORY_NAME')
888+
.setCheck('String')
889+
.appendField('under name');
890+
this.appendValueInput('TRAJECTORY_DESCRIPTION')
891+
.setCheck('String')
892+
.appendField('and description');
893+
this.setColour(trajectory_color);
894+
this.setPreviousStatement(true, null);
895+
this.setNextStatement(true, null);
896+
this.setTooltip('Save trajectory');
897+
this.setHelpUrl('');
898+
}
899+
};
900+
861901
Blockly.Blocks['niryo_one_save_last_learned_trajectory'] = {
862902
init: function () {
863903
this.appendValueInput('TRAJECTORY_NAME')
@@ -1079,6 +1119,47 @@ Blockly.Blocks['niryo_one_gpio_select'] = {
10791119
}
10801120
};
10811121

1122+
Blockly.Blocks['niryo_one_do_di_select'] = {
1123+
init: function () {
1124+
this.appendDummyInput().appendField(
1125+
new Blockly.FieldDropdown([
1126+
['DO1', 'DO1'],
1127+
['DO2', 'DO2'],
1128+
['DO3', 'DO3'],
1129+
['DO4', 'DO4'],
1130+
['DI1', 'DI1'],
1131+
['DI2', 'DI2'],
1132+
['DI3', 'DI3'],
1133+
['DI4', 'DI4'],
1134+
['DI5', 'DI5']
1135+
]),
1136+
'DO_DI_SELECT'
1137+
);
1138+
this.setOutput(true, 'niryo_one_do_di_select');
1139+
this.setColour(io_color);
1140+
this.setTooltip('');
1141+
this.setHelpUrl('');
1142+
}
1143+
};
1144+
1145+
Blockly.Blocks['niryo_one_ao_ai_select'] = {
1146+
init: function () {
1147+
this.appendDummyInput().appendField(
1148+
new Blockly.FieldDropdown([
1149+
['AO1', 'AO1'],
1150+
['AO2', 'AO2'],
1151+
['AI1', 'AI1'],
1152+
['AI2', 'AI2']
1153+
]),
1154+
'DO_DI_SELECT'
1155+
);
1156+
this.setOutput(true, 'niryo_one_ao_ai_select');
1157+
this.setColour(io_color);
1158+
this.setTooltip('');
1159+
this.setHelpUrl('');
1160+
}
1161+
};
1162+
10821163
Blockly.Blocks['niryo_one_set_pin_mode'] = {
10831164
init: function () {
10841165
this.appendValueInput('SET_PIN_MODE_PIN')
@@ -2929,6 +3010,97 @@ BlocklyPy['niryo_one_execute_registered_trajectory'] = function (block) {
29293010
return [code, BlocklyPy.ORDER_NONE];
29303011
};
29313012

3013+
BlocklyPy['niryo_one_execute_trajectory_from_poses'] = function (block) {
3014+
var value_pose_1 = BlocklyPy.valueToCode(
3015+
block,
3016+
'POSE_1',
3017+
BlocklyPy.ORDER_ATOMIC
3018+
);
3019+
value_pose_1 = value_pose_1.replace('(', '').replace(')', '');
3020+
3021+
var value_pose_2 = BlocklyPy.valueToCode(
3022+
block,
3023+
'POSE_2',
3024+
BlocklyPy.ORDER_ATOMIC
3025+
);
3026+
value_pose_2 = value_pose_2.replace('(', '').replace(')', '');
3027+
3028+
var value_pose_3 = BlocklyPy.valueToCode(
3029+
block,
3030+
'POSE_3',
3031+
BlocklyPy.ORDER_ATOMIC
3032+
);
3033+
value_pose_3 = value_pose_3.replace('(', '').replace(')', '');
3034+
3035+
var dist_smoothing_value = BlocklyPy.valueToCode(
3036+
block,
3037+
'DIST_SMOOTHING',
3038+
BlocklyPy.ORDER_ATOMIC
3039+
);
3040+
dist_smoothing_value = dist_smoothing_value.replace('(', '').replace(')', '');
3041+
3042+
var code =
3043+
'n.execute_trajectory_from_poses([' +
3044+
value_pose_1 +
3045+
', ' +
3046+
value_pose_2 +
3047+
', ' +
3048+
value_pose_3 +
3049+
'], ' +
3050+
dist_smoothing_value +
3051+
')\n';
3052+
return code;
3053+
};
3054+
3055+
BlocklyPy['niryo_one_save_trajectory'] = function (block) {
3056+
var value_joint_1 = BlocklyPy.valueToCode(
3057+
block,
3058+
'JOINT_1',
3059+
BlocklyPy.ORDER_ATOMIC
3060+
);
3061+
value_joint_1 = value_joint_1.replace('(', '').replace(')', '');
3062+
3063+
var value_joint_2 = BlocklyPy.valueToCode(
3064+
block,
3065+
'JOINT_2',
3066+
BlocklyPy.ORDER_ATOMIC
3067+
);
3068+
value_joint_2 = value_joint_2.replace('(', '').replace(')', '');
3069+
3070+
var value_joint_3 = BlocklyPy.valueToCode(
3071+
block,
3072+
'JOINT_3',
3073+
BlocklyPy.ORDER_ATOMIC
3074+
);
3075+
value_joint_3 = value_joint_3.replace('(', '').replace(')', '');
3076+
3077+
var trajectory_name = BlocklyPy.valueToCode(
3078+
block,
3079+
'TRAJECTORY_NAME',
3080+
BlocklyPy.ORDER_ATOMIC
3081+
);
3082+
3083+
var trajectory_description = BlocklyPy.valueToCode(
3084+
block,
3085+
'TRAJECTORY_DESCRIPTION',
3086+
BlocklyPy.ORDER_ATOMIC
3087+
);
3088+
3089+
var code =
3090+
'n.save_trajectory([' +
3091+
value_joint_1 +
3092+
', ' +
3093+
value_joint_2 +
3094+
', ' +
3095+
value_joint_3 +
3096+
'], ' +
3097+
trajectory_name +
3098+
', ' +
3099+
trajectory_description +
3100+
')\n';
3101+
return code;
3102+
};
3103+
29323104
BlocklyPy['niryo_one_save_last_learned_trajectory'] = function (block) {
29333105
var trajectory_name = BlocklyPy.valueToCode(
29343106
block,
@@ -3259,6 +3431,18 @@ BlocklyPy['niryo_one_gpio_select'] = function (block) {
32593431
return [code, BlocklyPy.ORDER_NONE];
32603432
};
32613433

3434+
BlocklyPy['niryo_one_do_di_select'] = function (block) {
3435+
var dropdown_do_di_select = block.getFieldValue('DO_DI_SELECT');
3436+
var code = dropdown_do_di_select;
3437+
return [code, BlocklyPy.ORDER_NONE];
3438+
};
3439+
3440+
BlocklyPy['niryo_one_ao_ai_select'] = function (block) {
3441+
var dropdown_ao_ai_select = block.getFieldValue('AO_AI_SELECT');
3442+
var code = dropdown_ao_ai_select;
3443+
return [code, BlocklyPy.ORDER_NONE];
3444+
};
3445+
32623446
BlocklyPy['niryo_one_sw_select'] = function (block) {
32633447
var dropdown_sw_select = block.getFieldValue('SW_SELECT');
32643448
var code = dropdown_sw_select;
@@ -4867,6 +5051,14 @@ const TOOLBOX = {
48675051
kind: 'BLOCK',
48685052
type: 'niryo_one_execute_registered_trajectory'
48695053
},
5054+
{
5055+
kind: 'BLOCK',
5056+
type: 'niryo_one_execute_trajectory_from_poses'
5057+
},
5058+
{
5059+
kind: 'BLOCK',
5060+
type: 'niryo_one_save_trajectory'
5061+
},
48705062
{
48715063
kind: 'BLOCK',
48725064
type: 'niryo_one_save_last_learned_trajectory'
@@ -4919,6 +5111,14 @@ const TOOLBOX = {
49195111
kind: 'BLOCK',
49205112
type: 'niryo_one_gpio_select'
49215113
},
5114+
{
5115+
kind: 'BLOCK',
5116+
type: 'niryo_one_do_di_select'
5117+
},
5118+
{
5119+
kind: 'BLOCK',
5120+
type: 'niryo_one_ao_ai_select'
5121+
},
49225122
{
49235123
kind: 'BLOCK',
49245124
type: 'niryo_one_set_pin_mode'

0 commit comments

Comments
 (0)