Remote Gameplay?

As our school is preparing for the possibility of a “Work from Home” situation, I was wondering, has anyone developed a system to allow people to control a robot via the Internet? Since our robots are controlled via network tables, this could conceivably not be too difficult. We would probably need to use a host machine with two adapters or the radio would need to be in bridged mode. Either way, I am assuming port forwarding would be involved.

I am envisioning a website/tunneled application with a separate interface for watching via a camera not on the robot and driving via a shuffleboard styled page/window.

Obviously, for this to be safe and effective, there would need to be someone in the room with the actual robot with e-stop capabilities, but I feel it could be a neat challenge.

Does anyone have any thoughts about the feasibility of this?
Mr. R^2

3 Likes

Presumably the robot could be in a contained area, powered via a massive bench supply with tether (or battery charger, and take breaks to recharge), some sort of safety remote cutoff, webcams to watch it all, fire suppression system, etc etc. Ok, it gets a little complicated. But, completely within the realm of possibility. That would sure be cool if there was a full field somewhere, where you could control FIRST robots on it over the internet, albeit at a slower pace.

2 Likes

My school is going work from home after this weekend and my team has opted to throw our robot in the presidents car and move there in the case that the drive team is well. However, remote communications would be great! It would be very cool if instead of teams being there at competition, the robots are there with some people to make sure it’s moderated and safe and teams control their robots from their shop.

Do you never have to fix or tweak anything on your robot at a competition? That would be hard to do remotely.

3 Likes

My wife and I were talking about this. I originally posted thinking about driver practice and code tweaking. However, My wife had this excellent idea to run a competition like this as you all have. In order to deal with fixes, she proposed that we do like an Andymark hire an engineer. Each team gets an on-site engineer for the day, and the students have to tell them what to do to the robot for fixes and improvements. I guess each team would need a semblance of a pit crew too.

I have no idea about the logistics, but it could be a lot of fun.

1 Like

I was thinking this would be a good way for programming to test code without having to meet in person.

Safety wise, you need a local operator with a finger on the “disable” button. One or more video feeds for the remote tele-operator.

Depending on the network connection, there will be some latency in the feedback to the driver. Something the driver and operator would need to account for.

I found this library for tunneling gamepad events from a web client to a server.

All you need is to create a virtual Xbox controller device on the Driver Station and select that as the source of joystick input.

“What could possibly go wrong?”

2 Likes

This is incredible. Thank you. We have been working with some practice bots using the Vmx-pi which runs WPILib, and a bunch of vex EDR parts. So, we can test it on small robots that will not do as much damage when they run into things.

I’m running virtual programming meetings for my team and I’m currently working on a solution for this. Basically I have a robot running in my living room, and students take turns deploying their code to the robot. They observe the robot through my webcam in a zoom meeting, and use an instance of gitpod to write the code. I push the code when they’re done writing it, and pull it onto my local machine where I can deploy it to the robot. Right now I’m giving them coding challenges that are all autonomous, but I’ve distributed game controllers in preparation for meetings where they can control the robot themselves.

To control the robot remotely I’m adding a component to FRC Web Components that interfaces with the HTML gamepad API and sends the data over NetworkTables. I think pynetworktables2js should communicate with the robot just fine using port forwarding, but I’ll have to mess around with it. Once I figure it out I’ll post my solution here.

2 Likes

Has any consideration been given to completely autonomous play?
This would be very different - perhaps a single robot as a skills challenge.
All robots are at the field location, with a small crew to support the robot.
Programming and/or scripting is performed remotely.
Not the team on team competitions we have been used to.

1 Like

While this is a great idea, I don’t see it happening at all, especially with what is coming from FIRST on how they plan on dealing with this COVID situation.

I was asking specifically for our team usage. However, there are a few off-season threads, and this could alleviate some of their challenges (albeit while creating others).

We haven’t been running anything on the robot yet, but for training we are using Zoom and VS Live Share.
We also tried using Live Share during the season so we could work on multiple laptops without needing to mess with versioning, git, etc.

What exactly “is coming” from FIRST?

2 Likes

Yes, please post your progress.

Looks like someone’s built a solution for FTC.

1 Like

Do you have a full install of Wpilib running on gitpod?

Nope, I just created a java robot gradle project and autocompletion seems to work. The gradle tasks like building and deploying don’t work, but I do those things on my local machine once the students are comfortable with their code.

1 Like

You’re right in asking including the “exactly.” FIRST is purposefully being vague with what they are saying will happen with 2021’s game, because they don’t know. No one does. I should have included an “I think FIRST is trying to achieve with their plan.”

To answer what I think FIRST is trying to do that would go against what phargo is suggesting is this:

  1. Using 2020 robots as is (are?)

I highly doubt that any robot currently built for IR is capable of full auto. I’ve heard of Vex AI doing fully autonomous play, but they have a whole host of sensors that would need to be added to any existing robot (making it unable to be competitive/compete as is).

  1. Excitement

This reason might be reading too much into wording and assuming what it means, but FIRST has said,

For one, I don’t believe an autonomous game of only one robot is as exciting as a match played by 6 robots with human drivers. Think FLL at FRC size vs FRC normally. And two, I would see a fully autonomous game as more challenging rather than less, and FIRST is trying to “ease challenges.” It is also possible that they are not referring to challenges as in game-play, strategy, and design, but rather challenges that arise directly from COVID-19’s impact.

Sources:

(On-Site Engineer): After the auton went haywire, slamming into our alliance partner head on, then tipping over, I noticed that there was a funny noise coming from the flywheel. I also saw that one of the pistons on the climber is bent, and I smell smoke coming from somewhere near the roboRio. Can you walk me through how to fix this?

(Student on Skype):
image

3 Likes

Does that not happen in face-to-face tournaments as well? I remember in 2018 (I think) seeing at least 3 robots’ elevators separate from their chassis attempting buddy climbs. This was in one event. There will be no perfect solutions.

I believe their point is that it would be very difficult for a student to explain how to fix their robot to someone who has never worked on their robot over a video call.

1 Like