Canonical and The Construct partner to create a course on How To Deploy ROS Applications

Canonical and The Construct partner to create a course on How To Deploy ROS Applications

We are excited to announce a groundbreaking new collaboration between The Construct and Canonical (Developers of Ubuntu) on a brand-new robot programming course – Distributing ROS Apps with Snaps. This course is now online and available to everyone.

Throughout the course, you will learn the basics of snap creation for a ROS and ROS 2 application, including how to confine your robotics application and make it installable on dozens of Linux distributions.

This course is ideal for anyone interested in robotics development. Whether you are a student, a robotics developer looking to improve your robotics skills, or simply interested in learning something new, this course is perfect for you!

“We are excited to partner with Canonical on this important course.” said Ricardo Tellez, CEO of The Construct. “Robotics is an ever-expanding field, and the need for professionals who can program and develop robots is growing exponentially. By partnering with the experts from Canonical, we can provide a course from the creators of the technology themselves (snaps). Nobody better to create such a course!”

The course launches on February 16, 2023, at The Construct’s online academy. For more information, please visit our website or subscribe to our newsletter at https://app.theconstructsim.com/.

We are thrilled to offer this exciting new program and look forward to helping you reach your goals in robotics development!

A Learning Path To Become a Robotics Developer

A Learning Path To Become a Robotics Developer

(本文は日本語版もあります。こちらをクリックしてご覧ください。)(이 텍스트에는 한국어 버전도 포함되어 있습니다. 확인하려면 여기를 클릭해주세요.)

So you want to become a Robotics Developer. You know, a guy that creates programs for robots. After all, there are not enough robotics developers in the world. It is a profession on the rise, and with good salary prospects. (See the image below, obtained from Glassdoor.com June 2024)

Maybe you have finished an engineering degree but feel a lack of application to real jobs. So you decide to go online to find the practical content required to become a Robotics Developer. Once you have the content, it is a matter of following it and acquiring the knowledge. Right?

Well, yes and no. The problem with that approach is that there is too much content online about robotics and software development for robotics. 

The amount of content material (free and paid) is so massive that, unless somebody provides you with a proper roadmap, you will lose a lot of time in the learning process.

So in order to effectively learn by yourself, first, you need to figure out the following:

  • Which content should you select? 
  • And, how should you prioritize the learning content?

In the following post, I’ll answer those questions. I’ll show you what subjects you must master and in which order to become a Robotics Developer. I have assumed that you are starting with zero knowledge (i.e., basic high school maths skills only).

This post describes the same structure that we follow in our Robotics Developer Masterclass. Our 6-month learning plan guides you from zero to Robotics Developer and helps you land a job by means of our included internships at a robotics company. So I can asure that the learning plan of this post works!

0. Pre-requisites

First, you require a foundation for the systems used to learn more complicated subjects. The minimum basic knowledge required is the following:

Good books about those subjects:

1. The basics of robot programming

In this section, you will build your foundation skills for robot programming. This includes the following topics:

  • C++, in-depth. Most robotics jobs require you to have an excellent knowledge of C++, so you need to start learning it as soon as possible and gain experience. The critical point for learning C++ is to dedicate time to practice on real projects. That is why the sooner you start, the better.
  • Git version control. Git is a tool that allows developers to work collaboratively. Understand that when working in a company, there is no concept of “my code”. Your code will have to work with another engineer’s code. Git is the tool used in every robotics project to facilitate this collaboration. Master this tool and develop your robotics projects using Git, even if you study alone.
  • Basics of ROS2. ROS is the standard in robotics. Learn and use this framework in the rest of your learning. ROS has the same problem as C++: you can learn the theory quickly, but real learning begins when you practice with different robots and situations. So, base your learning on this tool and, practice as much as possible during your learning phase. 
    • Learning the basics of ROS includes learning all the basic concepts of packages, messages, topics, services, and actions, as well as robot modeling using URDF and the concept of transformations (TF). However, that is the bare minimum you need to know in ROS.
    • Which ROS version should you learn? Now, you need to know ROS2.
  • Robot simulations. Simulations are an essential tool in robot development. After all, if you don’t want to deal with the hardware, you will need a place to test your code. That is in the simulation. So go and learn how to do simulations with Gazebo simulator. That is the default simulator in the ROS world and integrates well.

2. Build your own robot

Even if you are looking for a developer’s job (this is programming robots, not building them), you still require a basic knowledge of the parts and pieces of a robot and how they interact together to build the final robotic system.

You should build your own robot, even if a basic one, to see how the various parts interact physically. This process will give you a grounded knowledge of physical elements that you can later apply to your programming, an understanding why some software components are required, why they do not work, and isolate problems when something doesn’t work.

Aim to build a wheeled robot with a minimum of two wheels, encoders, batteries, and one sensor (a camera is the cheapest version, but if you can afford it, include a LIDAR).

Once the robot is built, you will need to add ROS controllers to it. But since your ROS knowledge at this time will be low, I recommend you start building a robot that already has the ROS controllers developed by somebody else, so you can practice cloning the repo, compiling, and installing those controllers.

I do not recommend trying to create the controllers for that robot at this stage because it will take a considerable amount of time. Of course, you will learn a lot, but you can speed up the process by reading another person’s and understanding it. After all, you will have to do that process (cloning repos, understanding other people’s code, installing…) often once you land a job!

As for the robot, I recommend the Jetbot or the Nanosaur, both based on NVIDIA boards. I recommend those because they provide all the pieces you need as well as the ROS controllers.

3. Advanced robot control programming

Up to this point, you will have mastered the basic building blocks required for a robotics developer. Now, go to the next level, to apply that knowledge to a robot, making it accomplish tasks. You must master a robot’s different skills and apply them to task resolution.

  • Robot navigation, or how to make the robot autonomously move from one location to another
  • Robot perception, or how to make the robot perceive its environment and detect the relevant parts for its task
  • Robot manipulation, or how to make the robot act upon the objects of the environment by grasping, pushing, and releasing them, etc
  • How to add control to robot motors

4. Robotics theory basics

Now it is time to learn the theory. Even if you are going to work in robotics development and use many solutions already made for you, a minimum of robotics theory is necessary to understand what happens when something goes wrong. Also, knowing the theory will allow you to build better algorithms for robotics.

This section should include the following:

  • Mobile kinematics
  • Arm kinematics
  • Kalman filters
  • Robot dynamics
  • Robot control
  • Path planner algorithms

I recommend that you search for material that teaches you the algorithms while making you implement them in robots. I have found that this is the most efficient way to learn all that theory, make it stick in your head, and find the relation with what you use in your robot implementations.

5. Development tools for robotics

So far, you have learned a lot about programming robots and making them do things. However, when you apply that knowledge to a job in a robotics company, you also need to understand the tools required for software development in a professional environment. Again, you will not be alone, doing your own code. You will be part of a team that, develops the full robot software together. Then, you need to learn to use the tools used for proper software development.

Among those tools, include:

  • Docker
  • Jenkins or a similar tool to automate processes
  • Unit tests
  • Functional tests
  • Continuous integration

The goal is to understand how all the development tools integrate to have a complete pipeline of deployment, testing, and detection of errors. This is continuous integration. So you need to learn how to perform continuous integration, integrate Git pushes with Jenkins actions, deploy dockers with the code to test, launch the tests and associated simulations, and generate reports based on the success of the tests.

6. Extra subjects

As additional optional subjects, I recommend studying the following:

  • ROS1. Many companies still work on ROS1, so you need to know how it works. Even if very similar to ROS2, you need to understand some differences in creating software for ROS1 robots.
  • Web development to create interfaces for robots. The robots of the future will be from many different manufacturers, and the web interface is the only universal interface between the robots and human devices. So robot interfaces will not be based on apps but on the web.

Learn how to create web interfaces that display the robot’s status and allow you to control it remotely.

Full schema

robotics_developer_learning_path

TIP: Practice while studying

My final recommendation would be that, in order to learn all this material, you do not just watch videos or read books. If you want to get the knowledge, you need to practice the material along every step you are studying. That is the only way you can master the subjects. 

For that, I recommend you find sources that provide you with robot simulations or at least git repos with code that you can download and test your solutions. You can check The Construct’s public repo of free robot simulations and download some simulations to practice with them. You can also check The Construct Open Classes, delivered each Tuesday online, which provide a lot of code and simulations already working on any computer without requiring any installation, and everything for free.

Start now!

So now you can search the internet for the best resources to provide you with the materials above. This should be your plan:

  1. Dedicate a few days to select the best materials by reviewing them.
  2. Make a list of the materials you selected for each subject in a document with links to the videos/posts/courses. If you are relying on books, order them now.
  3. Then, make a calendar detailing when you will finish each subject. This is mandatory, especially if you are following the program by yourself. The calendar will act as accountability, which is the most challenging part when studying alone.
  4. Then concentrate on those materials until you finish. Do not redo your list, or you will never end. The amount of resources out there is too huge! You should concentrate on learning rather on compiling more material (that is a way of procrastination, and signals that you lack willpower).

If willpower is your weak point…

Take into account that the weakest point in your path is your willpower. The main drawback of the self-learning approach is not not having the optimal path, and it is not not finding the optimal materials. It is, having the will to follow your plan until the end. This is where most self-guided learning fails at a +80% rate.

If you want to avoid that pitfall and wish to have a team that supports you, motivates you, and pushes you forward, check out our Robotics Developer Masterclass. In this program, we provide you with a path and all the resources, a group of tutors supporting your learning, simulated and real robots, projects, and a final internship once you graduate.

Our Robotics Developer Masterclass is project-based learning with employability in mind. Of course, we teach you robotics theory, too, but we emphasize the tools that you will use when working for a robotics company as a robotics developer.

And we will be pushing you along throughout the program! Check it out! Classes start in March and September each year. Enroll in the Robotics Developer Masterclass Batch 5 – September 2024 before August 1 and get €100 off per month: https://www.theconstruct.ai/robotics-developer/

Check the Q&A session about the Robotics Developer Masterclass that we are delivering on Youtube

Conclusion

Now you have a list of the essential knowledge must you master to land a robotics development job.

Go for it. The next 6 months can change your future for the better.

Final recommendation: during the learning process, pay attention to which subject sparks more interest in you. As you may imagine, the topics you learn in this program can be deepened in many ways. And since you cannot be a master of all the subjects, you should pay attention to those subjects that attract you more, and then, once you finish the program, go and learn more about them, or search for jobs related to that subject.

Now, go and do your homework. The robots of the future depend on you!

 

What is Fleet Management in Robotics? [List of State-of-the-Art Solutions]

What is Fleet Management in Robotics? [List of State-of-the-Art Solutions]

More and more robots are being used in factories, warehouses, and other environments all around the globe. And with this increasing number of robots working in the same space comes the necessity of organizing and optimizing robots’ tasks and interactions.

The problem

Let’s assume we have an heterogeneous group of 30 robots that are in charge of running a coffee shop. While we want some robots preparing the coffees, we want others serving them to the tables, others cleaning the tables, and others refilling the systems. We need to control automatic access to certain zones of the coffee shop, like automatic doors and elevators. We need to be able to deliver all those tasks in the most optimal way, at the same time that we manage the robots’ charging cycles.

And all this while, they don’t bump into each other, into other people and don’t run rampant all around the shop, or even lose themselves and end up in the toilet or out in the street.

All this isn’t easy to manage.

How to attack the heterogeneous fleet management problem

An heterogeneous fleet of robots can be composed of:

  • Different types of robots: for instance, mobile bases, robotic arms, drones, etc
  • Different manufacturers’ robots: this means, even if all the robots of our fleet are mobile bases, may be some are from one manufacturer, and others from a different one
  • Several types of actuators: for instance, system to open/close doors through which the robots must go, elevator managers, connectors to other machines the robot must interact with…

The fleet management system must be able to handle heterogeneous fleets in an orchestrated way, in order to achieve the fleet goal. If the goal is to run a cafeteria, then, many different types of robots and actuators will have to work together to keep the cafeteria running and with satisfied clients.

Basic components of a fleet management system

Any fleet management system needs at least the following core systems:

  • Path optimization systems: Once a task is assigned to a robot, the execution of that task has a cost. This cost typically is time but could be energy or any other parameter you consider a valuable resource in your robot environment. The fleet management system must optimize that cost.
  • Task allocation systems: Not all robots can perform all the tasks. So it is necessary to have a system that knows which robot can do what. Also, assign priorities to each job to improve the performance of the global systems. A vital element is resource allocation optimization. The tasks must be designated so that it uses all robot resources in the best way possible.
  • New Task creation systems: a flexible infrastructure that allows to create custom tasks required for the robotics solution. For instance, a task that requires to pick an object, paint it, transport it somewhere else, check it, package it, and send it to the customer.
  • Integrators of diverse navigation, movement, and manipulation systems: We need something that allows us to use different navigation and movement systems transparently so we can perform the tasks independently of the inner workings of each robot in the fleets.
  • Conflict detection and resolution systems: No system is perfect, so when something happens, when the tasks assigned conflict, how can we detect them and resolve them automatically?
  • Robot fleet health management: We need a system to decide when to send the robots to charge or declare them unavailable.
  • Monitoring Tools: We need a way to watch all our fleets or robots and know which task they are performing: their battery percentage, general health status, and location, among other things.
  • IoT integrations systems: We need our robots to be able to talk with other elements of our environment, such as human-operated stations, doors, lifts, mechanization machines, packaging systems, cranes, or even other external robots.
  • ROS2 enabled: It’s a recommended feature if you intend to use all the ROS2 power and open source infrastructure.

Having a complete framework for fleet management that takes all those elements into account is costly, very difficult to implement, and complex. That is why most of existing solutions only concentrate on the orchestration of fleets of mobile bases.

Already available systems

What follows is a list of fleet management tools already available in the market. We list commercial and open-source solutions.

Fleet management solutions must be divided between:

  • software that only allows monitoring of the fleets
  • software that allows to act upon the robots at anytime to modify their tasks
  • software that orchestrates all the robots to provide the best task resolution

Collecting data, even if one of the functionalities of a fleet management software, cannot be considered fleet management per se. Fleet management requires to be actionable upon the robots at any time.

Dashboards and reporting tools

Those are tools to monitor fleets of robots but do not achieve control of the fleet. They are just monitoring and providing insights about the fleets

  • BridgeRobotics
    • Cannot be considered a fleet management system because it is only concerned on reporting status and analytics
    • It relies on MiR fleet Management system to actually do the fleet management

 

  • Formant
    • This tool, provides remote data from the robots
    • It also allows to control the robots remotely. I have included in the section of reporting tools because its remote control capabilites are not in the sense of fleet management/coordination, but more kind of remote control of the robots

 

  • Braincorp
    • In the same way as Formant, basically used for reporting and remote control, but not for fleet coordination towards the resolution of a task

Fleet management solutions

  • Omron
    • For the coordination of AGVs

 

  • MiR Fleet
    • Quite advanced, allows the integration of external elements, like doors or elevators in the control of the fleet

  • Otto Fleet Manager
    • Even if it manages tasks for robots, it is not thought for a globally orchestrated system where a global tasks has to be accomplished in an optimized way. This software is more for assigning individual tasks to a set of robots, in an independent manner.
    • For robot navigation tasks (no integration with other types of robots or IoT)
    • Only works with Otto robots
  • FetchCore Software
    • Even if it manages tasks for robots, it is not thought for a globally orchestrated system where a global tasks has to be accomplished in an optimized way. This software is more for assigning individual tasks to a set of robots, in an independent manner.
    • For robot navigation tasks (no integration with other types of robots or IoT)
    • Only works with Fetch robots
  • Addverb
    • Concentrated on the coordination of AGVs

Open source solutions

  • OpenRMF
    • This is the most promising solution because it is open, it is under active development, and integrates elements for fully heterogeneous fleets.
    • See a better description below
  • Rooster_fleet_manager,
    • It works on ROS1
    • Mainly for fleets of mobile bases. Doesn’t include support for other types of tasks besides navigation.
    • It’s not been updated since 2020 (as for Sep 2022)

  • openTCS-NeNa
    • Works with ROS2
    • Not been updated since 2021 (as for Sep 2022)
    • Also, only focused on coordinating the navigation of mobile bases.
    • You can get additional information about the project here.

Unfortunately, as you might see in most links and videos, the information and testing options are scarce or non-existent.

Open Robotics’ Fleet Management Tool

Luckily, the OSRF version, named RMF, seems to be the most promising, complete, documented and supported of those mentioned above.

Here you can find the documentation generated for it, which has a lot of elements still in the works but is promising nevertheless:

PROS:

  • Supports both ROS1 and ROS2. 
  • Its open-source nature of it makes it the best choice to start developing for your own company or even start a business of fleet management software.
  • It has a very active community and maintainers. See this discussion link to post new questions, issues, or feature requests.
  • It has all the above requirements in a ROS2 decoupled package system that allows you to mod very little.
  • It has some simulated demos that can at least give you a quick start for your application.
  • It is a really heterogeneous management system
  • It is open source

CONS:

  • It still needs a lot of work from the usability and stability points of view, especially from an industry standard (But now is the best time to learn it, and once it is stable, you will be among the FIRST ones to know how to use it).
  • The documentation has a lot of missing elements and examples, especially when it comes to integrating it into your own custom system.

Are you interested in learning about RMF or have tried but found it too time-consuming?

In that case, attend our ONLINE HANDS-ON RMF TRAINING:

  • three days training
  • 100% hands on: practice with simulations and real robots (remote access)
  • not need to setup anything, start from minute one
  • master multi-robot navigation and fleet management in ROS2

Enroll the next Managing Fleets of Robots With ROS2 training here

Remote access to the cafeteria

Remote access to the cafeteria

Real robots and simulations used at the training

Conclusions

  • Besides some commercial applications completely adapted to a specific company, it looks like there is no generic fleet management system apart from the Open-RMF, and even that, it is still on an early stage (as for September 2022).
  • The Open-RMF looks like the most promising fleet management software out there, given its openness and because it is developed by Open Robotics, the maintainers of ROS.
  • There has been an early attempt to define a kind of standard for robot inter-operability beyond the manufacturer. It is called the MassRobotics Interoperability Standard, which it is said that has been supported by several big players of the sector like Open Robotics (but I can’t find any mention to that standard anywhere). The idea is that manufacturers support that standard for interoperativiity, so your fleet management software can manage the robots of your fleet independently of who the manufacturer is. However, this standard doesn’t look moving forward (there are no documentation, the code is been stopped for almost a year (as September 2022)), as well as looking far away from an open standard (the name of the standard contains the name of the company that launched it. This may indicate that it is not so open).

Additional Resources:

3D Models of the 3D cafeteria:


 

ROS Awards 2022 Results

ROS Awards 2022 Results

The ROS Awards are the Oscars of the ROS world!

The intention of these awards is to express recognition for contributions to the ROS community and the development of the ROS-based robot industry, and to help those contributions gain awareness.

Conditions

  • Selection of the winners is made by anonymous online voting over a period of 2 weeks
  • Anybody in the ROS community can vote through the voting enabled website
  • Organizers of the awards provide an initial list of 10 possible projects for each category but the list can be increased at any time by anybody during the voting period
  • Since the Awards are organized by The Construct none of its products or developers can be voted
  • Winners are announced at the ROS Developers Day yearly conference
  • New on 2022 edition: Winners of previous editions cannot win again, in order to not concentrate the focus on the same projects all the time. Remember, with these awards, we want to help spread all ROS projects!

Voting

  1. Every person can only vote once in each category
  2. You cannot change your answers once you have submitted your vote
  3. Voting is closed 3 days before the conference, and a list of the finalists per each category is announced in the same week
  4. Voters cannot use flaws in the system to influence voting. Any detection of trying to trick the system will disqualify the votes. You can, though, promote your favorite among your networks so others vote for it.

Measures have been taken to prevent as much as possible batch voting from a single person.

Categories

The awards can be awarded in the following categories:

1. Best ROS Software

The Best ROS Software category comprises any software that runs with ROS. It can be a package published on the ROS.org repo of just a software that uses ROS libraries to produce an input. Open Source and closed source are both valid.

Examples: the ROS navigation stack, Rviz, OpenVino,…

ROS_awards_best_software

ROS Awards 2022 Best Software Finalists

Finalists of the 2022 Edition

  1. Ignition Gazebo, by Open Robotics
  2. Groot Behavior Tree, by Davide Faconti
  3. Webots, by Cyberbotics
  4. SMACC2, by Brett Aldrich
  5. ros2_control, by several ROS developers
  6. PlotJuggler, by Davide Faconti

Winner: Webots, by Cyberbotics

 

Learn more about the winner in this video:

 

2. Best ROS-Based Robot

The Best ROS-Based Robot category includes any robot that runs ROS inside it. They can be robotics products, robots for research, or robots for education. In all cases, they must be running ROS inside.

Examples: Turtlebot, Summit XL, Tiago…

ros_awards_2022_best_robot

ROS Awards 2022 Best Robot Finalists

Finalists

  1. Panda robot arm, by Franka Emika
  2. TIAGo, by Pal Robotics
  3. UR robot arm, by Universal Robots
  4. Turtlebot 4, by Clearpath
  5. Nanosaur, by Raffaello Bonghi
  6. Leo Rover, by Leo Rover

Winner: Nanosaur, by Raffaello Bonghi

 

Learn more about the winner in this video:

 

3. Best ROS Developer

Developers are the ones that create all the ROS software that we love. The Best ROS Developer category allows you to vote for any developer who has contributed to ROS development in one sense or another.

Examples: Tully Foote, Bence Magyar, Tomoya Fujita,…

ros_awards_2022_best_developer

ROS Awards 2022 Best Developer Finalists

Finalists

  1. Francisco Martín
  2. Davide Faconti
  3. Raffaello Bonghi
  4. Brett Aldrich
  5. Victor Mayoral Vilches
  6. Pradheep Krishna

Winner: Francisco Martín

Learn more about the winner in this video:

 

Insights from the 2022 Edition

  1. This year, the third time we organise the awards, we have increased the total number of votes by 500% So we can say that the winners are a good representation of the feelings of the community.
  2. Still this year, the winners of previous editions received many votes. Fortunately, we applied the new rule of not allowing to win previous winners, to provide space for other ROS projects have the focus on the community, and hence help to create a rich ROS ecosystem.

Conclusions

The ROS Awards started in 2020 with a first edition where the winners were some of the best and well-known projects in the ROS world. In this third edition, we have massively increased the number of votes from the previous edition. We expect this award will continue to contribute to the spreading of good ROS projects.

See you again at ROS Awards 2023!

A ROS2 Remote Warehouse Real Robot Lab For Industrial Training

A ROS2 Remote Warehouse Real Robot Lab For Industrial Training

Practice, practice, practice!

That is the motto behind all The Construct courses for learning how to program robots with ROS.

Since the very beginning, The Construct has focused on providing opportunities for practice with simulated robots instead of relying on basic video lessons.

Now we have taken an additional step by providing practice with real robots. How can you practice with real robots if you don’t have them? Connect remotely to our online real robot labs.

To provide this experience, we have created, in collaboration with Robotnik, the Remote Warehouse Robot Lab, where you can remotely connect and practice ROS1 and ROS2 with industrial collaborative robots.

You don’t have to install anything. We provide you with a full ROS1 and ROS2 environment on the web browser, so you can fully practice with ROS from any computer, including Mac, Windows or Linux. Access to the real robots is also managed through the browser, so you don’t waste time with ugly configuration issues.

Be on the edge of programming industrial collaborative robots.

Our goal is to keep you learning the latest technologies for programming collaborative robots with the most open and advanced frameworks and techniques.

For that goal we provide you with the Remote Warehouse Robot Lab, where you can practice with two types of industrial robots:

1. RB-1 mobile base by Robotnik

remote robot lab

This is a mobile base robot able to move shelves from one location to another. With this robot, students can practice:

a. How to make a robot autonomously navigate

real_robot_navigation

b. How to move shelves from one place to another

c. How to recognize environments, tags, people, or objects.

robot_auto_charge

2. UR3e robotic arm

This is a collaborative robotic arm with a gripper and a 3D sensor for perception. With this robot, students can practice:

a. How to move a robotic arm

ur_robotic_arm

b. How to grasp and release elements from a surface

pick_and_place

c. How to detect the objects to grasp through perception

Perception_to_grasp_object

How to use the Remote Warehouse Robot Lab

You can book a session with any of the robots. The RB-1 mobile base robot is available 20/7 (4 hours are required to recharge the mobile base throughout the day), and the UR3e robotic arm is available 24/7. You can find the schedule for each one of the robots inside The Construct’s lateral panel, under the Real Robot Lab option.

real_robot_lab_agenda

You will reach the page that allows you to make the booking

How to book a session

The process to access the robot is very simple:

1. Start the booking process

Log in to The Construct. Select the Real Robot Lab option on the left menu, and click on the Book Now button.

2. Select a robot

We offer a variety of robots in different remote labs. For example, in this Remote Warehouse Robot Lab, you can book the RB-1 mobile base robot or the UR3 robotic arm.

3. Select the ROS Distro to use

remote_select_ros_distro

4. Select the day and time

Select a day and time that the robot is available (slot in green color). Remember that times are shown in your local time.

remote_select_day

5. Confirm

Check that your booking is correct, and then confirm.

remote_confirm

You are done! You can work with the real robot on the day and time booked.

How to practice with the simulation before connecting to the real robot

A complete simulation of the real environment is provided. We strongly encourage you to test your code on the simulation before going to the real robot. Practice with a simulation allows you to quickly identify potential programming errors and not waste your time with the real robots.

The simulated robot lab is quite realistic and corresponds to the actual setup of the real robot lab. We have even included the shelves that the mobile base robot can carry.

remote_warehous_robot_lab_simulation RB-1 BASE Robot Simulation

 

How to connect to the real robots

5-minutes before your booked time, you will get a notification indicating you should be prepared to connect to the real robot.

1. Launch a rosject

Connecting to a robot only makes sense within the context of a ROS project. This means you want to connect to the robot because you have a ROS project that you want to test on it.

That is why, before connecting to the robot, you need to open a rosject (a ROS project within The Construct). Select the rosject you want to test from your list of rosjects and press the run button.

2. Press the connect button

Once the rosject is open, go to the bottom bar to see the icon to connect to the robot.

connect_to_real_robot

Press that icon and then press the Connect to Robot button. After a few seconds, you will have a view of the cameras located in our lab pointing to the robot working area. The cameras allow you to see what is happening in the lab when you execute your program. When the cameras appear, this means you are now connected to the real robot and anything you execute will be executed in the robot itself.

(secret tip 😉: you can use the web-joystick to control the robot, but you can also connect a gamepad to your computer and control the robot remotely. 😉

3. Launch your programs

Once you are connected, you can work as if you were inside the computer of the robot.

Opening a terminal allows you to launch your ROS programs and control the robot. You can use Rviz or any other tools to control and visualize the status of the robot.

running_my_programs

Practice with ROS1 or ROS2 setup

Practice with the robots can be done in any setup with ROS1 or ROS2.

The robots run ROS1 drivers natively, but The Construct’s platform allows students to launch the needed ros1_bridge and action_bridge required to manage everything in ROS2 (bridges provided and properly configured). Everything from basic ROS2 commands to complex Nav2 or MoveIt2 skills works correctly in this environment and allows you to practice complex ROS2 programs.

You can learn more about how those bridges work and how to use them in this online course: ROS2 Industrial Workshop.

Online Workshops

Apart from our regular students, we use the Remote Warehouse Robot Lab within the online workshops that we deliver. During the workshops, we teach on-camera to the students using Zoom. Students can connect to the lab from their own locations (any country worldwide) and practice with the robots.

For example, we use this procedure with the Get ROS2 Ready for Industrial Robots online workshop that we deliver every last week of the month. In this workshop, students dedicate  30 hours to learning how to program with ROS2 and connect to our real robot lab from their remote locations to practice them.

Who Should Access the Remote Warehouse Robot Lab?

  1. The remote warehouse robot lab is aimed at engineers who want to be up to date on the latest ROS skills.
  2. It is also useful for researchers that need to learn ROS skills fast.
  3. Finally,  the remote warehouse robot lab is useful for company leaders who need to have an overall understanding of the latest technologies for robotics in order to decide whether to use them or not.

You can create your own online remote robot lab!

The technology that we developed to create our own remote lab allows anybody to create their own remote lab with a few simple clicks. So, if you are interested in creating your own lab and making it accessible to a set of students or the whole world, contact us. It is a very simple and quick procedure and you can be delivering your robots to the world within an hour!

Check this video to have an idea of how to create your own remote robot lab.

 

Want to equip your team with ROS skills fast by practicing in our Warehouse Robot Lab?

Upgrade to the Enterprise license now!

How You Can Make a Living With ROS By Delivering Live ROS Workshops

How You Can Make a Living With ROS By Delivering Live ROS Workshops

ROS is becoming mainstream. But let’s face it, its ability to generate a revenue for ROS Developers is very low.

In this post, I propose you a simple way to generate a stable revenue by delivering online ROS Workshops.

Everything done from your location. The only thing you need is a good internet connection and good knowledge of ROS or related subjects.

What are ROS Workshops?

ROS workshops are 5 hours live sessions where the instructor explains a given ROS/Robotics/AI subject to the audience (students that attend the workshop).

  • The video is streamed to the audience. It will include instructor’s face as well as computer screen
  • The workshop is based on practice
  • To deliver the workshop, the instructor will create a rosject that contains the documentation, code, simulations, etc…
  • The audience will have a copy of the rosject prior to the workshop.
  • Workshops have a pause in the middle of it of 20 mins.
  • Audience will be practicing with the instructor at the same time
  • After the workshop is done, the attendants will have forever access to the rosject and video.
  • People who were not able to enrol and attend the workshop, can still buy its recording and rosject.

Workshops Must Be Based on Practice

Even if you can deliver a workshop just by opening a Zoom account and streaming live, the aim when delivering a workshop at The Construct is different. You should provide a fully practical workshop. That is a requirement. This means that the attendants must be practicing with you while you explain.

The way of allowing practice during the workshop is by using a rosject. A rosject is a ROS project executed on The Construct cloud.

  • A rosject contains all the documentation of the workshop in the form of a Jupyter notebook
  • It also contains the ROS packages for the simulations to be used
  • It may contain other code required for the workshop
  • It doesn’t depend on the attendant computer (Linux, Mac or Windows)

The rosject must be created by the instructor prior to the workshop. Then, it will be shared with all the attendants by The Construct platform.

This means that:

  1. The instructor must prepare the rosject prior to the workshop
  2. The instructor and the attendants will launch the rosject and follow it along during the workshop
  3. Attendants will keep a copy of that rosject forever, including the workshop video recording

Why to use a rosject?

  • Because the attendants need to learn by practicing with the instructor. This is The Construct motto.
  • Instructor cannot ensure all the attendants will have a proper setup for the lessons (may be even doesn’t have a Linux computer).
  • Instructor doesn’t want to be dealing with computer configuration related issues during the intensive workshop

A rosject ensures that all the attendants will be able to reproduce instructor’s lessons the same exact way he planned from minute one of the workshop.

IMPORTANT: rosjects content can be downloaded by attendants anytime to their local computers. They have no special format, just current Linux files.

Instructor earnings

  • Every workshop is limited to 15 students maximum. This limitation allows a good quality of the workshop.
  • Price of the workshop starts at 199€, but the instructor can set any other larger price above that if he considers it (for instance, for very specialised subjects).
    • This means, with 199€, every workshop can generate up to 2985€. The Construct will keep 50% off it and provide the other 50% to the instructor (1492.5€).
    • Why this earnings split? Remember that every time a student launches the rosject, a cloud computer is started. The money is required to pay that cost.
  • Additionally, after the workshop has been done, a package containing the video and the rosject will be sold on The Construct platform, so anybody can reproduce the workshop at will. Sales of this workshop will also be split by half for The Construct and the Instructor. Workshop recordings with code and notes are expected to be sold 100€ more expensive than the live event.

This means that the workshop can become a passive income revenue for you. You can be generating money by selling that workshop for a long time.

Remember that you can create as many workshops as you want!

That is what we call a ROS Passive Income! 😉

How to deliver a workshop at The Construct

At The Construct we want you to make a good living delivering your workshops, but we care even more for the students. Workshops delivered at The Construct must have high quality. That is why we put a lot of attention to some details necessary to control the quality of the workshops, to make students learn a lot.

Please follow the following steps carefully to prepare your workshop.

Let’s take as an example our last Workshop about ROS2 (Full Intro to ROS2 Galactic Workshop)

1st Step: Decide your workshop’s subject, agenda, date and time

Create a small text file with the following data:

  • Name and title of the instructor. Instructor must have a profile in The Construct with picture and details filled (there is a link to the instructor’s profile so attendants can check the background of the teacher before deciding to enroll).
  • Day and time you will deliver the workshop (indicate time zone!)
    • Ex. : 27/7/2021, 18:00:00 CEST
  • Price for attending (at present only € amounts are accepted)
    • Ex. : 199€
  • Workshop title (the shorter the better)
    • Ex. Full Intro to ROS2 Galactic Workshop (Python)
  • Workshop short description, a sentence describing what the workshop is about
    • Ex. Master in only 5 hours ROS2 Basics with Python
  • Workshop full description. What is this workshop about
    • Ex. : Completely practical workshop, using simulated robots No configuration required. Everything provided ready to work
  • List of topics that will be covered
    • Ex. :
      • How to create ROS2 packages
      • How to access to the motors of a ROS2 robot (publishers)
      • How to access to the sensors of a ROS2 robot (subscribers)
      • How to build an obstacle avoidance application for a ROS2 robot
      • How to manage nodes (executors and callback groups)
      •  How to debug ROS2 programs
  • Who should attend the workshop. What is the audience for this workshop
    • Ex. : ROS Developers that want to start transitioning to ROS2
  • Prerequisites (if any). A list of subjects that attendants must know prior to attend the workshop
    • Ex. :
      • A basic knowledge of Linux
      •  A basic knowledge of Python
  • Agenda. List all times and topics delivered at each time. Remember to schedule for the 20 minutes break in the middle of the workshop
    • Ex. :
18:00-18:1027/07/2021 CESTIntro to ROS2 Workshop
18:10-19:0027/07/2021 CESTCreating ROS2 packages and code
19:00-19:5027/07/2021 CESTAccessing robot actuators
19:50-20:4027/07/2021 CESTAccessing robot sensors
20:40-21:0027/07/2021 CESTCoffee Break
21:00-21:4027/07/2021 CESTObstacle Avoidance
21:40-22:2027/07/2021 CESTNode Management
22:20-23:0027/07/2021 CESTROS2 Debugging

Workshop Cover Image

The Construct will take care of building a proper and nice image for your workshop. We will use that image to feature the workshop in our main page.

We will send you the Workshop Cover Image so you can use it to promote the workshop on your social networks.

Ex.

ROS2-intensive-online-workshop-TCS-2021

Workshop marketing

The Construct will promote the workshop over our community, but you should also take care of promoting it if you want it to be a success.

2nd step: create the workshop rosject

The rosject is the ROS project at The Construct that contains the material that you will share with the audience.

Inside the rosject, you should put the following:

  1. Notebook with all the content the attendants will learn
  2. Simulation code
  3. Any extra code attendants will need during the workshop

You can get many ideas about how to create your rosjects from our Live Classes. Actually, our Live Classes follow the same principle. They are like workshops with a shorter duration (and everything is provided for free).

Watch some of our Live Classes to understand what to include in the workshop rosject and how to deliver one workshop.

IMPORTANT REMARK 1: Remember that each rosject has on average 2CPUs. So properly calculate the material that you are going to put there, otherwise your practice may be very slow.

IMPORTANT REMARK 2: Take into account that your rosject must be create as private (otherwise it will be publicly seen by other users of The Construct) . The free account of The Construct does not allow the creation of private rosjects, so you will need to get a private account which is only 9€/month.

Equipment

To start streaming you only require:

  • Have a camera (any webcam will do it)
  • Have a mic
  • Have a fast internet connection

On the day of the workshop, The Construct will call you through Hangouts and broadcast the call to the audience.

Final remarks

Workshop Certificate

The Construct will automatically issue a certificate of attendance to all the participants to your workshop, provided that they attended 3 hours or more.

Issue of the certificates is automatic. You don’t have to care about preparing it, but you should mention it during your marketing of the event.

Workshop Evaluation

Remember that workshops will be evaluated at the end by the attendants (only if they attended more than 3 hours). The evaluation will be shown in the page of selling workshops, as well as on the instructor profile. Getting a good review is necessary if you want that your workshop sales well after delivery.

Time Zones

Remember that people live in different time zones, so think carefully what time do you want to do your workshop so maximum amount of people will attend

What to do is just a few people register for the live workshop?

That is up to you. You can cancel the workshop by sending us a notice at least 24h before the workshop. If you cancel the workshop less than 24 hours to it, or simply do not deliver it as planned, you may be banned of the platform.

Conclusion

This is a new way of generating money teaching ROS. Different from building a course on Udemy or another video course platform because the attendants practice with the instructor.

Remember that your workshop will be displayed to hundreds of thousands of ROS Developers around the world, because of The Construct network. This increases your chances of getting more students interested in your workshop and hence, have more sales.

In case you want to know more, I will be delivering a Live Session on Youtube discussing all those ideas, next Wednesday the 4th of August 2021 here.

Pin It on Pinterest