Table of Contents:
Teleoperation & Teleprescence with iRobot's Create® 3 Educational Robot
We use teleoperation and telepresence to control the Create® 3 educational robot with the keyboard on our laptops. Being able to control the robot from a distance makes it teleoperational. To make it have telepresence, we designed a phone stand that can attach to the top of the Create® 3 robot. We then Zoomed (FaceTime also works) into our phones so we could see the environment where we drove the robot. This allowed us to feel present as we navigated our robots around. The GitHub repo is linked below.
Note: full screen begins at 0:47
Action server and client with multiple actions
This video demonstrates the Create®3 robot driving in a square. It is running a file that uses multiple action clients to perform different actions in sequential order. See the GitHub for the code download. There are two files uploaded which achieve the square in different ways (multi-class and single class).
Further Exploration with Python using ROS2
The following link will bring you to a list of our completed python files you can run without editing anything (except including the namespace which is explained here). You can add these files to your package and run them immediately.
Bump + Audio Demo
Purpose
Using the onboard sensors to make music!
Create® 3 educational robot
ROS2 + Python
Root® coding robot
Scratch
Bots in action!
What is a namespace?
Since multiple robots will be on the same network, ROS 2 needs a way to know who you want to talk to. We differentiate the robots by giving each a "namespace." It's exactly how it sounds: each robot has a name. When you are making your namespace in the iRobot® configuration page, you must add a slash and then a one word name (see screenshot below). I chose the name of my favorite Game of Thrones character. You can pick your own name, or get creative with it. Just make sure no one is using the same one.
If you are running a file from the command line, you must include the a namespace. If you are running an executable, the namespace is included in those files. Needless to say, namespaces are important so everyone in the classroom can play with their robots simultaneously. Setting a namespace associates the actions that you run to a specific robot. In almost all cases, namespaces are written with a slash in front. For example, my robot's namespace is Ygritte, so when I edit files, instead of having ... cmd_vel ... I have ... /Ygritte/cmd_vel ...
This is an example taken from the ROS 2 Python example. In these action python files, notice where the self._action_client line is. Then look to find the action with the quotations and add your namespace with a slash after.
Running python files in the command line without using packages
Although it is not noted in the ROS documentation, it is possible to run python files without building a package. It is extremely simple.
1. Make sure your python file is located in your Home directory.
2. Run the follow command in your terminal.
Airtable allows you to take advantage of telerobotics. It is a cloud collaboration service that lets multiple people have access to the information. The API is extremely useful because you can ping it from your code, pull down information from the cloud, and use that data in your script in real time. See our GitHub for an example.
The openMV camera was coded to return r, g, b values over serial and the USB-C port on the Create®3 Robot. Serial communication allows the roboticist to go in many directions. Since ours returns r, g, b values, we set up "traffic lights." See our GitHub for the example.