This post is the first of a series on many different methods of training or controlling a leJOS EV3 robot.
In this series, you will learn about some of the ways to control your robot that are provided by the tools that come with the leJOS EV3 software.
For example, you will learn how the Remote Control tool in the leJOS EV3 Tools menu can be used to control your robot using the LEGO infrared remote.
You will also learn how the Motors tab in EV3Control PC tool can be used to control your robot via Java RMI.
I will then show you how to use the leJOS EV3 API on a variety of different platforms, to control the robot.
For example I will show you how you can use a Java program on a PC with a Leap Motion device to control your robot with hand gestures in the air.
I will show you how you can write a Java app for your Android phone to control your robot.
I will also show you how your can use an application like AutomateIt on your Android phone, to make your robot respond to events. For example, when you arrive home and your phone connects to the Wifi network, your robot could meet you at the door, or when you receive a text, your robot could let you know.
I will demonstrate a technique for training your robot by recording movements made by pushing your robot around manually, and then replaying the movements. This is similar to the way you train a Baxter robot.
I will then show you how you can use a LEGO Mindstorms NXT robot running leJOS NXJ to control your EV3 robot. The technique I will use is to attach an acceleration sensor to the NXT and make it work like a Wii remote.
Another interesting technique is to make a map of a floor of your house and get the robot to plan routes from one part of the house to another. leJOS EV3 includes a tool called EV3MapCommand that helps you do that.
Even more sophisticated is to use a technique called Monte Carlo Localization so that the robot can find out where it is in the map. leJOS EV3 provides a tool called EV3MCLCommand to help with that.
Would you like to control your robot with your voice? We will learn how to use Google Speech APIs to recognize speech on your Android phone or tablet, and send the commands to the robot.
Would you like your robot to control your house? We will teach your robot to turn on and off lights and other devices.
Does your robot appreciate your taste in music? I will teach your robot how to change the music playing to something it prefers. I might teach it how to change what’s on the TV too.
Would you like to control your robot over the Internet with a web browser? We will learn how to do that.
Do you think your robot should know when your birthday is? We will use the Google Calendar API to let your robot access your calendar.
When your robot grows up, it might want to run the Robot Operating System (ROS). We will learn how to use the ROS navigation stack to control your robot.
This series is not about building robots: it’s about training a robot that you have already built. So we will use an easy to build robot – a variant of the standard LEGO Track3R robot with a differential drive using two motors, and an EV3 IR sensor. But you can use any other similar differential drive robot, and for many of the techniques you could use a completely different robot.