Skip to content

hsrwrobotics/niryo_one_ros

 
 

Repository files navigation

Niryo One ROS stack

Licensed under GPLv3 (see LICENSE file)

(Niryo One : https://niryo.com)

niryo one rviz simulation

This repository contains all ROS packages used on Niryo One (Raspberry Pi 3B - Xubuntu for ARM).

✨ What's New ✨

How to use Niryo One with a graphical interface ?

You can download Niryo One Studio (Linux, Windows and MacOS compatible).

How to install Niryo One ROS packages on your computer (x86) - Simulation Mode

Requirements :

  • Ubuntu 16.04
  • ROS kinetic (other versions are not supported)

First install ROS kinetic "Desktop-Full" (tutorial here).

You'll need to install some additional ROS packages :

sudo apt-get install ros-kinetic-robot-state-publisher ros-kinetic-moveit ros-kinetic-rosbridge-suite ros-kinetic-joy ros-kinetic-ros-control ros-kinetic-ros-controllers ros-kinetic-tf2-web-republisher

You'll also need to install an additional Python module :

sudo -H pip install jsonpickle

Create a catkin workspace and clone Niryo One ROS stack :

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/NiryoRobotics/niryo_one_ros.git .

Build the packages :

cd ~/catkin_ws
catkin_make

Don't forget to use those commands before you try to launch anything (you can add them in your .bashrc) :

source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash

You can now launch Rviz with Niryo One (only display mode with some cursors to move the joints):

roslaunch niryo_one_description display.launch

You can also launch the complete Niryo One ROS Stack instead, which you can control from Niryo One Studio.

roslaunch niryo_one_bringup desktop_rviz_simulation.launch

The main differences between this launch file and the launch file executed on Raspberry Pi 3B (rpi_setup.launch) is that the hardware functionalities are disabled, and you get a 3D simulation view with Rviz.

Note that Niryo One ROS packages have been developed with ROS kinetic, on Ubuntu 16.04. Other ROS versions and OS distributions are not supported.

✨ How to use Niryo One in Gazebo

You'll need to install some additional ROS packages :

sudo apt-get install ros-kinetic-gazebo-ros-control

You can now launch Gazebo with Niryo One:

roslaunch niryo_one_gazebo gazebo_niryo_one.launch

niryo one moving in gazebo

🐛 Niryo One with Gripper

Theres a new urdf file that loads gripper onto Niryo One in Gazebo. The following command launches Niryo One with gripper and related controllers

roslaunch niryo_one_gazebo gazebo_niryo_one.launch without_gripper:=false

Thanks to the gazebo_grasp_plugin from @JenniferBuehler 's gazebo-pkgs, you should now be able to perform and visualise simple pick and place operations in Gazebo.

Currently our repo only supports gazebo visualizations. In order to visualize objects and develop a pipeline in Rviz, you need to clone the entire gazebo-pkgs and follow the instructions and tutorials found in their wiki.

❗ In case you run into issues while trying to build the gazebo_grasp_plugins on ROS Kinetc, please follow these intructions in issue #10


(Optional) After you install ROS packages and execute catkin_make you still have some installation steps if you want to use Blockly ("Niryo Blocks" on Niryo One Studio).

Make sure that you have a recent nodejs version (not the default installed one)

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Install node modules in the blockly_code_generator directory (where you can find package.json) and create an executable.

cd ~/catkin_ws/src/niryo_one_user_interface/blockly_code_generator
npm install
sudo npm link

That's it, you have now all the Niryo One functionalities ready to be used.

Niryo One ROS Stack overview

Here's a global overview of the Niryo One ROS Stack :

niryo one ros stack - global overview

You can find more specific and detailed info in each package's README.

Developer Documentation

Any question ?

If you have a question and you don't find the answer here or on our documentation, please send us a message.

Thank you !

Packages

No packages published

Languages

  • Python 47.1%
  • C++ 45.2%
  • JavaScript 3.8%
  • CMake 2.6%
  • C 1.3%