Niryo Studio

Overview

Niryo Studio is a graphical HMI. It allows a fast and direct control of Ned with an external computer.

Its purpose is to provide users with a complete and simple interface for Ned motion, programming environments and current status of Ned.

Through Niryo Studio application, users can:

  • Manage and set Ned parameters;

  • Control Ned motion;

  • Program Ned using Blockly;

  • Execute a program;

  • Manage, set, control and program Ned tools;

  • Manage, set, control and program Ned addons.

Users must read this manual in order to fully understand all Ned and Niryo Studio functionalities.

Note

If you encounter software problems or if you want to access latest updates for your Ned, please give an internet access to your robot (ethernet or wifi) to be able to update it through NiryoStudio. Instructions here

Start-up

Download Niryo Studio

You can download the archive containing Niryo Studio from Niryo Website here

How to launch Niryo Studio

Once you have downloaded the .zip file you need to extract the archive. Then go into the new created folder and search for an executable named “NiryoStudio”. Double click on the executable to start the application. You do not need to install anything on your computer.

../../_images/screen_niryostudio_folder.png ../../_images/screen_niryostudio_executable.png

Operating interface

After launching Niryo Studio on your computer, the window below is shown.

../../_images/screen_niryostudio_home_window.png
  1. The top toolbar allows you to change language and connect to Ned;

  2. 3D Ned visualization or camera stream video;

  3. State section and setting mode.

  4. The left menu allows you to switch between the different sections of the application.

  5. The main window of the application.

Connecting Ned to Niryo Studio

Ned can be connected in three ways:

  • Connected by wire (Ethernet cable)

  • Wireless (Wi-Fi):

    • Hotspot mode.

    • Connected mode (connected on your network).

../../_images/NED_CONNECTIONS.png

Using Ned with Hotspot Mode

If the LED panel is blue, that means you can connect to Ned via its Wi-Fi. In this case Ned IP address is 10.10.10.10.

Ned has its own Wi-Fi network, which starts with “NiryoRobot” followed by a series of numbers and letters. To connect, follow the steps below:

  • Connect the Wi-Fi access point using your laptop with the password “niryorobot”;

  • Click the arrow near “Not connected” to access Ned connection;

../../_images/screen_niryostudio_notconnected.png
  • Select “Niryo Robot Hotspot” and connect;

../../_images/screen_niryostudio_hotspot.png
  • To disconnect from Ned, open the connection panel again and click on “Disconnect”.

../../_images/screen_niryostudio_disconnect.png

Connect to Ned through your Wi-Fi network

If Ned is connected to the Wi-Fi network (see robot setting section below), the LED panel is green. To connect Ned to Niryo Studio, follow the steps below:

  • Connect your computer to the same Wi-Fi network as Ned;

  • If you do not know your robot IP address, open the connection panel, and click on the “Wi-Fi + Search” button. This will search for connected robots inside the current Wi-Fi network. Choose the correct IP address and click “Connect Niryo Robot”;

  • If you gave a custom name to Ned, choose the name.

  • If you already know your Ned’s IP address, click the arrow, enter your IP address, choose and click “Connect to Niryo Robot”.

../../_images/screen_niryostudio_ipaddress_arrow.png ../../_images/screen_niryostudio_ipaddress.png

Connect Ned using an ethernet cable

You can also use an ethernet cable to physically connect Ned with your computer.

  • Connect Ned to your local area network (computer or switch) using the LAN port;

  • Modify the selected IP address on the connection panel to “Niryo Robot Ethernet (default IP)”.

../../_images/screen_niryostudio_ethernet.png
  • Connect to Ned.

Connecting a robot simulator to Niryo Studio

Simulators such as Rviz or Gazebo must be launched on the same computer as the one running Niryo Studio.

  • Click the arrow near “Not connected” to access the robot connection;

../../_images/screen_niryostudio_notconnected.png
  • Select “Localhost” and connect.

Ned software Update

Ned software inside the robot can be updated through NiryoStudio in only a few steps.

First, your Ned must have an access to internet, so you have to connect it to an ethernet (you have to edit via ssh the network configuration of Ned) / Wi-fi network that provides internet.

When your robot is properly configured, at the next boot of the robot, it will check if an update is available. A popup will then be displayed at each following connection from NiryoStudio with Ned to informs you that an update is available for your robot.

You then only have to click on the update button of the popup or the update button in the Software versions panel.

Warning

Ned will reboot himself at the end of the process (in case of update success) so it’s recommended to not do any others operations with Ned before starting an update

Once the update has started, a popup will indicates that Ned is updating and that it’s downloading / applying the update.

../../_images/NS_update_in_progress.png

Note

Update time is heavily impacted by the internet speed of your connection so if you connect to a wifi network, be sure that the raspberry is not too far away from the wifi modem

Once the update has successfully ended, another popup will shown (closing the previous one) telling that your robot will reboot and you may be disconnected from NiryoStudio. Now you just have to wait that the robot initialize properly (red LED turning into green or blue) before reconnecting through NiryoStudio, the update process is done.

../../_images/NS_update_succeedded.png

Warning

In case the update failed, it could be a faulty connection, try to do the update once more and if you still encounters problem, please contact us at contact@niryo.com

Ned settings

The parameters related to Ned can be set in the “ROBOT SETTINGS” panel.

../../_images/photos_niryostudio_robot_settings.png

Robot Name

You can give a custom name to Ned.

  • This name will be used when Ned is in hotspot mode to create the Wi-Fi network name;

  • In Niryo Studio, when Ned is in connected mode, you will see that Ned is represented both by its IP address and its custom name.

You can set a custom name under “ROBOT SETTING”. After choosing the name, you need to reboot Ned.

Ned Wi-Fi setting

If Ned is already connected to a Wi-Fi network and you want to change your Wi-Fi network :

  • Connect to Ned in “Hotspot mode” or in “Connected mode”

Note

If you are not connected to Ned, you will not be able to change its Wi-Fi network.

  • Under “ROBOT SETTINGS”, check your current IP address;

  • Click the Wi-Fi setup button and fill in the Wi-Fi name (SSID) and password of the Wi-Fi network you want Ned to connect to. Make sure to avoid typos in the name and password. Then, click on “Connect robot to Wi-Fi”;

  • Ned will try to connect to the Wi-Fi, depending on the result, robot reaction changes:

    • If successfully connected: the robot will reboot itself, LED will become red then green. Connect to the same wifi network and then connect to Ned (Help: Connect to Ned through your Wi-Fi network.

    • If failed to connect to the SSID: the LED will remains blue (LED didn’t change after ~30 seconds). Verify your password and try to connect again.

    • If ssid cannot be found currently by the Raspberry Pi: you won’t be disconnected from NiryoStudio, an error notification will be show. You can retry in a few seconds (Wi-fi card may be disturbed by others Wi-fi devices) or move your Raspberry Pi closer to the Wi-fi router.

Warning

If you changed Ned network configuration from Wi-fi to hotspot, troubles can occur when reconnecting via NiryoStudio, please reboot your robot in this case

Change Language

The default language of Niryo Studio is english but you can change the current language on the language button on the top toolbar.

../../_images/screen_niryostudio_language.png

Note

The Blockly editor and the logs remain in english

Raspberry PI settings

../../_images/screen_niryostudio_rasppi_settings.png

ROS logs:

In this section, you can see:

  • The available disk size on the Raspberry Pi. If the number is displayed in orange or red, it means there is no enough space on the micro-SD card;

  • The size of the stored ROS logs: after some time, they can take a lot of space;

  • You can choose to remove all previous ROS logs when Ned boots. This is very useful for a normal usage of Ned. Basically, you do not need all the ROS logs that are produced and stored, unless you are developing or debugging a specific point (in this case you might want to switch the option to “NO” and then turn it back to “YES” when you’re done).

Caution

If you never purge ROS logs (on boot or manually), the micro-SD card will eventually become full and might not work as expected. So only change the option to “NO” if you know what you are doing. In any case, if you do not really understand this functionality, always leave the option to “YES”.

  • You can also remove all ROS logs immediately by clicking on the “Purge ROS logs” button;

  • Shutdown Ned.

../../_images/screen_niryostudio_shutdown.png
  • You can shut down Ned with Niryo Studio. The “SHUTDOWN NIRYO ROBOT” will shut down the Raspberry Pi (same behaviour as if you press the physical top button for 3 seconds). Be sure to wait for the LED to turn red before completely powering off Ned.

  • You can reboot Ned by clicking ‘Reboot’.

Note

If you reboot Ned, do not power it off. The LED will turn to purple, then red, then will become blue or green again.

Software versions

You can check that Ned and relative softwares are up to dates by comparing current version and latest version for each of them.

  • Niryo Studio: the desktop app to control Ned.

  • ROS: the current version of the Niryo robot ROS stack running on Ned.

  • NiryoSteppers: a list of the firmware versions running on each NiryoStepper attached to Ned. To update firmware version

Note

All the NiryoStepper motors must have the same version.

  • Latest available versions (directly updated from our website).

Note

If an incompatible software version is detected, if the version you have is not supported anymore or an update is available, you will get a pop-up notification when you connect to Ned. Please follow the displayed instructions.

../../_images/NS_software_versions_latest_version_unavailable.png

a. Message displayed when Ned is not connected to internet

../../_images/NS_software_versions_update_available.png

b. An update is available to update Ned software

Ned commands

Calibration

Ned needs to be calibrated in three cases:

  • At the start-up.

  • If the steppers motors lose their offset positions and need to re-calibrate.

  • If the 3D view and Ned physical movement are not similar.

  • In most of the cases, Niryo Studio will alert you by showing “CALIBRATION NEEDED” on the top right.

Note

In the case of “CALIBRATION NEEDED”, you cannot perform any command on Ned without calibrating it.

To perform a calibration, click on the button “Request new calibration” under the “ROBOT CALIBRATION” section

../../_images/screen_niryostudio_calibration_request.png

After clicking, a “Calibration Needed” warning will appear.

  • A blinking warning “Calibration Needed” will appear on the top right of Niryo Studio if the robot is asking for calibration. You can then proceed to an auto-calibration:

When the “Calibration Needed” warning appears, you can click on it to perform an auto calibration or you can click on the ‘Auto calibration” button under the “ROBOT CALIBRATION” section

../../_images/screen_niryostudio_calibration_needed.png ../../_images/screen_niryostudio_autocalibration.png

By choosing auto-calibration, Ned will execute an automatic sequence by moving axis that needs to be calibrated until they reach their maximum position, so a correct offset can be applied to each motor. This sequence should take about 20-40 seconds. When calibration is over, Ned will come back to a resting position.

Caution

Before launching the auto-calibration, make sure that there is no obstacle near Ned. You should put Ned in a proper position before performing the calibration. The position in the picture below is recommended. This will avoid damaging Ned, collision, and any hazard motion.

../../_images/NED_CALIBRATION_POSITION.png

Note

If the calibration is not successful, the “Calibration Needed” warning will still be displayed. It can happen sometimes. Try 2 or 3 more times to calibrate Ned. If it still does not work, then it means that your robot has a mechanical/hardware issue.

Hint

You can check if the calibration has been successful by moving the robot and examine the 3D view robot motion.

Learning Mode

Niryo robots have two operating modes: Manual Mode (Learning Mode) and Automatic Mode. Current mode can be determined visually via robot or with Niryo Studio, via the Learning Mode button position.

../../_images/screen_niryostudio_learningmode_on.png ../../_images/screen_niryostudio_learningmode_off.png
  • Manual Mode or Learning Mode: When Ned is in Learning Mode, the switch on Niryo Studio is on. In this mode, the user can guide Ned by hand. In this case, there is no applied torque on each joint and motors are in relaxed mode. This mode is recommended when no program is running.

  • Automatic Mode (Learning Mode is deactivated): The Learning Mode does not work under Automatic Mode; it is not possible to move Ned by hand. This mode is active when a program is running or when Ned is performing a motion.

Caution

Do not try to override the motor’s torque when Learning Mode is disabled, you could damage the robot and the motors. Only in case of emergency (Ned blocked or application freezes) you can force to eliminate the risk, or you can unplug the power supply.

Hint

Activate Learning Mode when the program is paused or stopped.

Arm command

../../_images/screen_niryostudio_armcommand.png

On the ARM COMMAND section, you can move Ned arm directly either by moving the robot joint individually or by translating / rotating Ned pose.

Joints

Allows the individual joints to be controlled directly. Each joint can move from minimum value to maximum value (see robot specifications).

If a joint reaches its joint limit, it cannot be driven any further.

You can display current joints by clicking the “SET TO CURRENT” button. These are the values from the current state.

To perform a move joints, you need to:

  • Modify the values of the joints either by writing the desired joint value or by moving the cursor.

  • Click on the “MOVE JOINTS” button to execute the move command.

  • Once the command is done (success or not), you will get a notification at the bottom of the screen.

  • At any time, you can cancel the current command execution by clicking on the “STOP COMMAND” button.

Pose

You can switch to pose on the ARM COMMAND panel. This gives you the possibility to move the pose of the tool center point of Ned. Values can be edited manually by clicking on the coordinate. You can move position by changing x, y and z values and orientation by changing Roll, Pitch, and Yaw values.

../../_images/screen_niryostudio_pose_command.png

Home Position

Click the “BACK TO HOME” button in order to move Ned to its home position.

Select Saved position

If you already saved a position, you can select and use it (See the “Saved Position” paragraph).

Stop command

“STOP COMMAND” button stops Ned’s motion.

Tool command

  • “SCAN” button will detect and add a tool if there is already a connected tool.

  • If you have a gripper:

    • You can set the opening and closing speed of the gripper by changing values (between 100 and 1000) or by moving the cursor of the speed;

    • You can send open and close commands to the gripper by clicking “OPEN” and “CLOSE” buttons.

  • If you have a Vacuum Pump:

    • The “ON” button will pull the air with the Vacuum Pump and the “OFF” button will push the air.

../../_images/screen_niryostudio_tool_command_pump.png

Digital I/O panel

../../_images/screen_niryostudio_digital_pannel.png

You can monitor and set I/O signals from or to Ned. The “DIGITAL I/O PANEL” displays the current state of the I/O “SW1”, “SW2”, “GPIO1”, and “GPIO2” connectors on the back of Ned.

../../_images/DIGITAL_I_O_PANEL.jpg

Note

Check the Electrical Interface section for electrical and connection details.

  • “SW1” and “SW2” connectors can be used to plug a fan, a motor, etc.

  • For “GPIO1” and “GPIO2”, you have, from left to right: GND, 5V, and 3 digital pins. The digital pins can be used to communicate with another device (ex: an Arduino board. Check out this tutorial to learn more about that).

Switches

  • The switches are already set as OUTPUT mode;

  • You can change “SW1” and “SW2” states to “HIGH” or “LOW”;

  • Click the button to change the state.

../../_images/screen_niryostudio_SW1_SW2_high_low.png

GPIO

  • A digital pin (GPIO) can be set as an INPUT or OUTPUT mode;

  • You can change the mode (INPUT or OUTPUT) and the state (LOW or HIGH) for each pin, by clicking on the corresponding mode and state on the “DIGITAL I/O PANEL”;

  • In INPUT mode, you can read the state;

  • For OUTPUT mode, click on the button. You can set the OUTPUT state of the pin (LOW or HIGH).

Note

By default, all the GPIO pins are set to the INPUT mode, HIGH state.

Warning

Make sure to read the Safety Precautions and the hardware manual before using the digital I/O of Ned.

Electromagnet control

The Electromagnet tool can be set up and controlled on the “DIGITAL I/O PANEL”. You can connect the electromagnet cable on the GPIO1 or GPIO2 connector on the back of Ned (see Hardware Manual).

Now, you need to set up a digital I/O pin.

  • Select the pin where you connected your electromagnet cable;

  • Set this pin to OUTPUT;

  • Control your electromagnet by changing the state of the selected pin to LOW or HIGH.

Hint

If you are using the connector provided with the electromagnet, select 1A pin if you connect to the GPIO1 and 2A if you connect to the GPIO2.

Saved positions

Save a position

You can save a position from Niryo Studio.

../../_images/screen_niryostudio_position_save.png

Saved position panel

On the “SAVED POSITION” panel, you can see all the saved positions.

../../_images/screen_niryostudio_saved_position.png

When you select a position, you can see its properties.

  • Basically, a saved position has a name and a list of joints in radian. The position and orientation of the TCP (Tool Center Point) are also saved but not displayed;

  • Edit the position;

  • Delete the position.

Execute a saved position

On the “ROBOT COMMAND” panel and “ARM COMMAND” section, you can reuse any position that you previously saved.

../../_images/screen_niryostudio_execute_saved_position.png

You can also reuse a position in the ROBOT PROGRAMMING section.

Robot programming

Project panel

Click the project button in the left menu to start creating and editing Blocky programs.

../../_images/screen_niryostudio_blocks_button.png

In the figure below, the top is the project Toolbar, and the left is the Blockly menu.

../../_images/screen_niryostudio_blocks_interface.png
  1. Create a new project: click the “NEW” button to create a new project;

  2. Save program: click the “SAVE” button, to save a program. You can save a program on your computer or directly on Ned as an XML file;

  3. Load project: click the “LOAD” button to import a Blockly program either from computer or from Ned. The file is an xml file;

  4. Undo. You can also use CTRL + Z;

  5. Redo. You can also use CTRL + MAJ + Z;

  6. Play the program displayed on the workspace. Once the program is done (success or not), you will get a notification on the bottom of the screen;

  7. Stop the current program execution;

  8. Clear the current workspace;

  9. Add a position block. This will open a pop-up :

../../_images/screen_niryostudio_add_position_block.png

This is the most useful way to add a position command block to your workspace. You can choose between a “Move Joint” block and a “Move Pose” block, and use either the current robot state, or a previously saved position;

  1. Select the save mode when using the top button on Ned;

Hint

While the Niryo Block is open, you can add a “Move joint” or “Move pose” block with current joints values and pose values, just by pressing and releasing the top button.

  1. Help ;

  2. Clicking on this icon will center the workspace on your blocks;

  3. Workspace zoom control;

  4. Workspace zoom control;

  5. To delete a block, simply drag it and drop it onto the trash. You can also select it and press the delete key on your keyboard.

  6. The “Niryo Robot” functions in the block library cover almost all of the possible commands you can execute on Ned:

    • Arm commands;

    • Movement commands;

    • Tool commands;

    • I/O setup and control;

    • Vision commands;

    • Conveyor control.

Note

The “NIRYO BLOCKS” panel contains everything you need to create complete programs for Ned. This is probably the panel on which you will spend most of your time

  1. This is the workspace. Your whole program will be there.

Note

You cannot execute a new sequence while another sequence is running. If you want to start a new sequence, you will have to stop the previous one

Hint

Niryo blocks along with the Learning Mode is the perfect combination to easily create programs in no time. Activate the Learning Mode, then for each position you want, add a position block corresponding to the current state, and that’s it.

Program settings

In the “Program Settings”, you can set an autorunning program, upload a Python program and display a program.

../../_images/screen_niryostudio_program_settings.png

Program Autorun

The “PROGRAM AUTORUN” functionality will allow you to execute a set of sequences, directly by pressing and releasing the top button.

Here is how it works:

  • You program a sequence with Niryo Blocks;

  • You save the sequence on Ned;

  • You add the sequence to the sequence autorun;

  • Now you can trigger the sequence with the top button, without having to open Niryo Studio.

Hint

This is very useful when you use Niryo One in an exhibition event or for a demo. You will just need to power on Ned, wait for the LED to be blue or green, and then press the button to run a given set of programs (that you previously programmed).

../../_images/screen_niryostudio_autorun_program.png
  1. Display the default program triggered with the button;

  2. Select the program;

  3. Choose the “PROGRAM AUTORUN” mode. You have choices:

    1. ONE SHOT when you press and release the top button, the given set of sequences will be run once. After that, Ned will go back to a “resting position” and activate the “Learning Mode”. You can start another run by pressing the button again. If you press the button while the set of sequences is running, it will stop the execution.

    2. LOOP: when you press and release the top button, the given set of sequences will be run in a loop, forever. You can press the button again to stop the execution.

  4. SELECT button: select the program autorun.

Upload program

You can upload a Python script from your computer to Ned.

Programs

You can pick a previously saved program from the select box. Click on a sequence to see all the properties and actions available for this program.

You can display the Python code of the program.

../../_images/screen_niryostudio_last_python_program.png

After the program details, you get a series of available actions.

  1. Play the selected program (same as the “PLAY” button on Niryo blocks);

  2. Stop the current program execution (same as the “STOP” button on Niryo blocks);

  3. Open the program in Niryo blocks. This will make you switch to the “Niryo blocks” panel, and the program will be added to the current workspace;

This functionality is very useful when you want to duplicate and create a new program from an existing one.

  1. Edit the program. You can modify the name, the description, and the Blockly XML;

  2. Delete the program.

Hardware status

In the “HARDWARE STATUS” panel, you can find the hardware status of Ned. In this section, the controller temperature, motors voltage, temperature, and error code.

../../_images/screen_niryostudio_hardware_status.png
  1. Ned hardware version;

  2. Raspberry Pi temperature: the temperature of the Raspberry Pi is displayed in real time. If it’s displayed in orange or red, that means that something is not normal and the board is too hot; Make sure that your board temperature does not exceed 70°C;

  3. List of connected motors: you should have 6 motors (from Joint_1 to Joint_6), if you have a connected tool, it should appear on the list;

  4. Displayed measured voltage of servo motors (Dynamixels);

  5. Measured temperature of each joint;

  6. Error code: displays error code if there is any. Check troubleshooting chapter to resolve the problem;

  7. Reboot motors: this button reboots servo motors without rebooting the entire robot, this can help you to resolve motors errors;

  8. Start motors report: this option helps you to debug Ned. Click the Motor Report button and Start Motors Report.

../../_images/screen_niryostudio_motor_report.png

Logs

At the top of the Robot Status page, you can find 2 sections:

  • Niryo Studio logs: logs produced by the desktop application;

  • ROS logs: logs produced internally by Ned.

Hint

You can save Ned logs or Niryo Studio logs on a text file. You can send this file to our technical support to help you in case of problem.

Niryo Blocks

Concept

Explanation

Example

Logic

Allow either to initiate an action according to a
condition or to manipulate logic variables.

../../_images/logics.png

Loops

Used for iteration (repetition of a series of instructions).
A loop is a programming control structure that allows
the repeated execution of a sequence of instructions.

../../_images/loops.png

Math

Used for mathematical operations.

../../_images/maths.png

Lists

Used to store and then access a list of any variable.

../../_images/lists.png

Variables

Used to create variables and to use them in the program.
A variable is a symbol that associates a name with a value.

../../_images/variables.png

Functions

Used to create and call up functions and procedures.

../../_images/functions.png

Utility

Contains Wait, Break Point & Comment blocks.

../../_images/utility.png

Arm

Allow to set Arm speed and Learning Mode.

../../_images/arm_blocks.png

Movement

Mainly used to move the robot Arm but also to
execute pick & place procedure.

../../_images/movement_blocks.png

I/O

Allow to deal with I/O : change state, change mode, read pin, …

../../_images/io_blocks.png

Tool

Allow to deal with Niryo Tools (Gripper, Vacuum & Magnet).

../../_images/tool_blocks.png

Vision

Allow to interact with the Niryo Vision Set,
by doing Vision pick for instance.

../../_images/vision_blocks.png

Conveyor

Allow to interact with the Niryo Conveyor Belt.

../../_images/conveyor_blocks.png

More details about vision blocks can be found here

More details about conveyor blocks can be found here