@@ -858,6 +858,46 @@ Blockly.Blocks['niryo_one_execute_registered_trajectory'] = {
858
858
}
859
859
} ;
860
860
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
+
861
901
Blockly . Blocks [ 'niryo_one_save_last_learned_trajectory' ] = {
862
902
init : function ( ) {
863
903
this . appendValueInput ( 'TRAJECTORY_NAME' )
@@ -1079,6 +1119,47 @@ Blockly.Blocks['niryo_one_gpio_select'] = {
1079
1119
}
1080
1120
} ;
1081
1121
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
+
1082
1163
Blockly . Blocks [ 'niryo_one_set_pin_mode' ] = {
1083
1164
init : function ( ) {
1084
1165
this . appendValueInput ( 'SET_PIN_MODE_PIN' )
@@ -2929,6 +3010,97 @@ BlocklyPy['niryo_one_execute_registered_trajectory'] = function (block) {
2929
3010
return [ code , BlocklyPy . ORDER_NONE ] ;
2930
3011
} ;
2931
3012
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
+
2932
3104
BlocklyPy [ 'niryo_one_save_last_learned_trajectory' ] = function ( block ) {
2933
3105
var trajectory_name = BlocklyPy . valueToCode (
2934
3106
block ,
@@ -3259,6 +3431,18 @@ BlocklyPy['niryo_one_gpio_select'] = function (block) {
3259
3431
return [ code , BlocklyPy . ORDER_NONE ] ;
3260
3432
} ;
3261
3433
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
+
3262
3446
BlocklyPy [ 'niryo_one_sw_select' ] = function ( block ) {
3263
3447
var dropdown_sw_select = block . getFieldValue ( 'SW_SELECT' ) ;
3264
3448
var code = dropdown_sw_select ;
@@ -4867,6 +5051,14 @@ const TOOLBOX = {
4867
5051
kind : 'BLOCK' ,
4868
5052
type : 'niryo_one_execute_registered_trajectory'
4869
5053
} ,
5054
+ {
5055
+ kind : 'BLOCK' ,
5056
+ type : 'niryo_one_execute_trajectory_from_poses'
5057
+ } ,
5058
+ {
5059
+ kind : 'BLOCK' ,
5060
+ type : 'niryo_one_save_trajectory'
5061
+ } ,
4870
5062
{
4871
5063
kind : 'BLOCK' ,
4872
5064
type : 'niryo_one_save_last_learned_trajectory'
@@ -4919,6 +5111,14 @@ const TOOLBOX = {
4919
5111
kind : 'BLOCK' ,
4920
5112
type : 'niryo_one_gpio_select'
4921
5113
} ,
5114
+ {
5115
+ kind : 'BLOCK' ,
5116
+ type : 'niryo_one_do_di_select'
5117
+ } ,
5118
+ {
5119
+ kind : 'BLOCK' ,
5120
+ type : 'niryo_one_ao_ai_select'
5121
+ } ,
4922
5122
{
4923
5123
kind : 'BLOCK' ,
4924
5124
type : 'niryo_one_set_pin_mode'
0 commit comments