Niryo One and ROS (Robot Operating System)

ROS means Robot Operating System. It’s a robotics framework for developers. If you’ve already tried it, you know that ROS is quite hard for beginners. A lot of struggle, and, most of the time you need to learn on a virtual robot, because industrial robots are too expensive.

Whether you are a beginner or advanced ROS user, with Niryo One (now available) you’ll be able to enjoy learning it, and test some nice industrial applications.

In this post we’ll explain why and how we use ROS to make Niryo One a perfect robot to learn and to test industrial processes at home or at school. 

Why did we choose to use ROS ?

We wanted Niryo One to be more intelligent and independent. At the very beginning we thought about just using an Arduino board to control the robot, but it turned out that it’s not enough for a complete robotics environment, especially for a 6 axis robotic arm.

That’s why we added a Raspberry Pi 3 board, so we can run ROS on it, add a lot more features, and make Niryo One independent. You don’t need to install any software on your computer to control Niryo One, all you need is a web browser or a mobile application.

Here are some reasons why we chose to use ROS :

  • ROS is more and more used in real life applications : industry, but also autonomous cars, drones, research, … Well, ROS is really useful and has a bright future.
  • There is a huge and growing community, from which you can get help, and learn robotics with other passionate people.
  • Most of ROS code is open source, so we can develop more functionalities faster.
  • With ROS, you can do much more interesting things than just blinking a LED : environment perception with camera and sensors, motion planning, complex system management, …

How do we use ROS on Niryo One ?

We run ROS on a Raspberry Pi version of Ubuntu. ROS core base is very light, and runs perfectly on the Raspberry Pi 3 board.

Niryo One software architecture – ROS and everything around it 

Here are some ROS packages we use :

  • Moveit, which is a motion planning framework integrated in ROS. Moveit allows you to plan a trajectory for your robot, given a specific representation (URDF format).
  • Rosbridge : because ROS is mainly running on Ubuntu systems, it can be quite hard to communicate between a ROS system and a non-ROS system. With rosbridge, it is now possible ! Rosbridge will create a websocket server on your ROS system. With some available libraries (java, javascript, …), you can connect a web interface to your robot !
  • Joy, which is a simple package to interface a xbox controller with a ROS system.
  • And many other ROS or Niryo packages…
  • And many other ROS or Niryo packages…

To get access to the ROS system on the Raspberry Pi 3, just use ssh or ethernet connection ! You will also be able to run Niryo One ROS stack on your Ubuntu laptop, to develop faster and get a 3D simulation of the robot (Rviz package).

And… The code will be open source !

We will release the Arduino and Raspberry Pi code in September, after the first shipments of our Kickstarter campaign rewards. (if you haven’t subscribed to our newsletter yet, do it now to be the first to know about special news and offers!)

The code will be available on github, with efforts to make it very clear and documented, so you will be able to learn ROS, ask questions, and contribute if you want to improve some parts or add new functionalities. We will be very open about that, and will open an online forum.

Niryo One and ROS : what you can learn

As the code will be readable and documented, you’ll get the opportunity to learn ROS on a real physical system. We will give you tutorials to understand ROS basics, and learn how to :

  • Handle multiple packages, nodes, launch files …
  • Communicate between all your nodes (topics, services, actions)
  • Use Moveit motion planning framework
  • Communicate with an Arduino board through I2C, and let the ROS system command it
  • Get data from sensors (I2C or SPI) on a Raspberry Pi and publish the data with ROS topics
  • Communicate with other non-ROS systems through Wi-Fi and Bluetooth

Conclusion

We are making things easier for beginner and advanced ROS users, by providing a real robot, open source code, and support from our team.

That’s not finished : in September we’ll also release a tutorial video series on how to learn ROS, including ready-to-use examples with Niryo One. And we’ll be open to any request from you, to help you enjoy using Niryo One with ROS.