Skip to content

Conversation

aentinger
Copy link
Contributor

When a joint is entering a dead zone (between 315° and 360°) the application is now showing a big stop sign which shall communicate to the user that he should unwind his latest operation. Joint recording is paused as long as a joint is in the invalid zone. As soon as the user turns the joint to be within a valid range again the stop sign disappears.

This prevents the issue that a user is surprised why a replayed sequence does not exactly mirror the recorded one, given that the joint was within the dead zone during some samples.

IMG_20220516_125454_015

@aentinger aentinger self-assigned this May 16, 2022
@per1234 per1234 added topic: documentation Related to documentation for the project type: enhancement Proposed improvement labels May 16, 2022
@github-actions
Copy link

Memory usage change @ 90df695

Board flash % RAM for global variables %
arduino:mbed_nano:nanorp2040connect 🔺 0 - +148 0.0 - 0.0 🔺 0 - +8 0.0 - 0.0
Click for full report table
Board examples/Braccio_Record_and_Replay
flash
% examples/Braccio_Record_and_Replay
RAM for global variables
% examples/Controlling_Manually_Braccio
flash
% examples/Controlling_Manually_Braccio
RAM for global variables
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
flash
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button
RAM for global variables
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
flash
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button
RAM for global variables
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
flash
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu
RAM for global variables
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
flash
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out
RAM for global variables
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
flash
% examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge
RAM for global variables
% examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
flash
% examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick
RAM for global variables
% examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
flash
% examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu
RAM for global variables
% examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
flash
% examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I
RAM for global variables
% examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
flash
% examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II
RAM for global variables
% examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
flash
% examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors
RAM for global variables
% examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
flash
% examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button
RAM for global variables
% examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
flash
% examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick
RAM for global variables
% examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
flash
% examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge
RAM for global variables
% examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
flash
% examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge
RAM for global variables
% examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
flash
% examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu
RAM for global variables
% examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
flash
% examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I
RAM for global variables
% examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
flash
% examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II
RAM for global variables
% examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
flash
% examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio
RAM for global variables
% examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
flash
% examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio
RAM for global variables
% examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
flash
% examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge
RAM for global variables
% examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
flash
% examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio
RAM for global variables
% examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
flash
% examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge
RAM for global variables
% examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_Record_and_Replay
flash
% examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_Record_and_Replay
RAM for global variables
% examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
flash
% examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge
RAM for global variables
% examples/Tools/Braccio_Basic
flash
% examples/Tools/Braccio_Basic
RAM for global variables
% examples/Tools/Braccio_LearnByDoing
flash
% examples/Tools/Braccio_LearnByDoing
RAM for global variables
% examples/Tools/Factory_Set_ID_Interactive
flash
% examples/Tools/Factory_Set_ID_Interactive
RAM for global variables
% examples/Tools/Factory_Set_Initial_Servo_Position
flash
% examples/Tools/Factory_Set_Initial_Servo_Position
RAM for global variables
% examples/Tools/LCD_Custom_Menu
flash
% examples/Tools/LCD_Custom_Menu
RAM for global variables
% examples/Tools/LCD_Menu_Joystick
flash
% examples/Tools/LCD_Menu_Joystick
RAM for global variables
% examples/Tools/LCD_Motors
flash
% examples/Tools/LCD_Motors
RAM for global variables
% examples/Tools/Test_Inputs
flash
% examples/Tools/Test_Inputs
RAM for global variables
% examples/Tools/Test_Motor_Angular_Control
flash
% examples/Tools/Test_Motor_Angular_Control
RAM for global variables
% examples/Tools/Test_Motor_Communication
flash
% examples/Tools/Test_Motor_Communication
RAM for global variables
%
arduino:mbed_nano:nanorp2040connect 148 0.0 8 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
Click for full report CSV
Board,examples/Braccio_Record_and_Replay<br>flash,%,examples/Braccio_Record_and_Replay<br>RAM for global variables,%,examples/Controlling_Manually_Braccio<br>flash,%,examples/Controlling_Manually_Braccio<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button<br>flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/01_creating_a_button<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button<br>flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/02_designing_the_button<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu<br>flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/03_creating_a_menu<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out<br>flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/04_testing_it_out<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge<br>flash,%,examples/Platform_Tutorials/lessons/01-programming-the-braccio-display/05_display_challenge<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick<br>flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/01_playing_with_the_Joystick<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu<br>flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/02_handling_events_in_the_menu<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I<br>flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/03_navigate_challenge_I<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II<br>flash,%,examples/Platform_Tutorials/lessons/02-navigatting-the-display-menu/04_navigate_challenge_II<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors<br>flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/01_playing_with_the_motors<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button<br>flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/02_selecting_the_motor_with_the_enter_button<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick<br>flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/03_moving_the_motors_with_the_joystick<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge<br>flash,%,examples/Platform_Tutorials/lessons/03-playing-with-the-motors/04_servo_motors_challenge<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge<br>flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/01_playing_with_a_joint_angle_gauge<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu<br>flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/02_selecting_the_motor_in_the_LCD_menu<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I<br>flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/03_learnings_challenge_I<br>RAM for global variables,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II<br>flash,%,examples/Platform_Tutorials/lessons/04-integration-of-previous-learnings/04_learnings_challenge_II<br>RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio<br>flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/01_aligning_braccio<br>RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio<br>flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/02_waving_with_Braccio<br>RAM for global variables,%,examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge<br>flash,%,examples/Platform_Tutorials/projects/p01-moving-braccio/03_moving_challenge<br>RAM for global variables,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio<br>flash,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/01_controlling_manually_Braccio<br>RAM for global variables,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge<br>flash,%,examples/Platform_Tutorials/projects/p02-controlling-braccio-manually/02_manual_control_challenge<br>RAM for global variables,%,examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_Record_and_Replay<br>flash,%,examples/Platform_Tutorials/projects/p03-learning-mode/01_Braccio_Record_and_Replay<br>RAM for global variables,%,examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge<br>flash,%,examples/Platform_Tutorials/projects/p03-learning-mode/02_learning_challenge<br>RAM for global variables,%,examples/Tools/Braccio_Basic<br>flash,%,examples/Tools/Braccio_Basic<br>RAM for global variables,%,examples/Tools/Braccio_LearnByDoing<br>flash,%,examples/Tools/Braccio_LearnByDoing<br>RAM for global variables,%,examples/Tools/Factory_Set_ID_Interactive<br>flash,%,examples/Tools/Factory_Set_ID_Interactive<br>RAM for global variables,%,examples/Tools/Factory_Set_Initial_Servo_Position<br>flash,%,examples/Tools/Factory_Set_Initial_Servo_Position<br>RAM for global variables,%,examples/Tools/LCD_Custom_Menu<br>flash,%,examples/Tools/LCD_Custom_Menu<br>RAM for global variables,%,examples/Tools/LCD_Menu_Joystick<br>flash,%,examples/Tools/LCD_Menu_Joystick<br>RAM for global variables,%,examples/Tools/LCD_Motors<br>flash,%,examples/Tools/LCD_Motors<br>RAM for global variables,%,examples/Tools/Test_Inputs<br>flash,%,examples/Tools/Test_Inputs<br>RAM for global variables,%,examples/Tools/Test_Motor_Angular_Control<br>flash,%,examples/Tools/Test_Motor_Angular_Control<br>RAM for global variables,%,examples/Tools/Test_Motor_Communication<br>flash,%,examples/Tools/Test_Motor_Communication<br>RAM for global variables,%
arduino:mbed_nano:nanorp2040connect,148,0.0,8,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0

@Esquirio
Copy link
Collaborator

@aentinger The image appears correctly in the Record mode, but only for the base and wrist roll movements. For the other joints, the stop image did not appear; is it correct?

@aentinger
Copy link
Contributor Author

Yes, this is correct. The other joints have been mounted in such a way that is mechanically impossible for the user to move the servo into an invalid position.

Copy link
Collaborator

@Esquirio Esquirio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new feature, the stop sign, worked correctly. I still have problems with the Replay mode, but I will write a report on slack.

@aentinger
Copy link
Contributor Author

@Esquirio Shall I align the example within the project tutorials too, i.e. copy over?

@clodpheasant On this topic (keeping the tutorials code-identical with the replay/record and manual control sketch in the top level /examples directory) I've been thinking ... why not keep the tutorial code as is ... which is easy to explain to newcomers and just keep the top-level examples as they are - basically keep them separate. This way there are two sketches to be used for demonstrating to new customers while keeping the code easy and the re-work of the content team at a minimum.

@aentinger
Copy link
Contributor Author

I'll be merging this leaving the code within Platform_Tutorials unaligned for now, given there are still a couple of issues that need to be adressed.

@aentinger aentinger merged commit 88bdca0 into main May 17, 2022
@aentinger aentinger deleted the stop-sign branch May 17, 2022 09:00
@Esquirio
Copy link
Collaborator

I think yes, but first, it is necessary to check the issues with the Replay mode that I reported to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: documentation Related to documentation for the project type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants