Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No connection to referee remote control #2

Open
g3force opened this issue Dec 4, 2017 · 6 comments
Open

No connection to referee remote control #2

g3force opened this issue Dec 4, 2017 · 6 comments

Comments

@g3force
Copy link

g3force commented Dec 4, 2017

I was not able to connect the autoref to the ssl-referee remote control (port 10007) yet.

I enabled the remote control in ssl-refbox and made sure that remote control is enabled in autoref on same port (10007). But no connection is established to ssl-refbox.

I also successfully supplied vision data using the ssl-tools logplayer, but this had no effect on the remote control.

Any suggestions?

@MichaelEischer
Copy link
Contributor

The autoref should connect to the refbox when issuing its first command. The refbox is expected to run locally, that is the hard-coded remote control address is localhost:10007 and have remote control enabled in the config menu.
If you don't have some vision data that should cause the autoref to issue commands, you can apply the following patch to autoref/init.lua:

 local function mainLoopWrapper(func)
     return function()
+        Refbox.send("STOP")
         if not World.update() then
             return -- skip processing if no vision data is available yet

@g3force
Copy link
Author

g3force commented Dec 6, 2017

when applying the patch, the autoref connects to refbox, thx.

But I still can not get the autoref to start sending commands without the patch.

My setup is:

  1. ssl-refbox running with remote control enabled
  2. graphical client to verify vision
  3. Tigers Simulator with artificial vision
  4. autoref

Issues:

  1. I can not see the ball in autoref, but it is visible in graphical client
  2. autoref can not parse Geometry (I get the same errors when using ssl-vision):
[libprotobuf ERROR google/protobuf/message_lite.cc:121] Can't parse message of type "SSL_WrapperPacket" because it is missing required fields: geometry.field.goal_width, geometry.field.goal_depth, geometry.field.goal_wall_width, geometry.field.center_circle_radius, geometry.field.defense_radius, geometry.field.defense_stretch, geometry.field.free_kick_from_defense_dist, geometry.field.penalty_spot_from_field_line_dist, geometry.field.penalty_line_from_spot_dist
  1. Putting bots in their own penArea or letting the ball leaving the field does not trigger a referee command

Setup looks like this:
image

@MichaelEischer
Copy link
Contributor

The root cause of the problems is probably the inability to parse the geometry (Issue 2). Currently our autoref only supports the legacy field geometry format, thus the parsing error. However, without geometry which also includes camera positions, the ball tracking doesn't work (Issue 1). This leaves you with just the robots. As playing a game without a ball makes no sense, the autoref requires that the ball has been visible at least once, otherwise it refuses to work (Issue 3).
We plan to implement the new geometry format in about one or two months. Fixing the tracking to work without camera calibration data also won't happen before the new geometry format is implemented.
I'm not sure whether there is a viable short term fix. You could comment out the code that check whether there is a ball https://github.com/robotics-erlangen/autoref/blob/master/autoref/init.lua#L85 , but that may cause further issues.

@g3force
Copy link
Author

g3force commented Dec 13, 2017

Ok, I see...

I also tested it with ssl-vision in replay mode. Legacy geometry publishing is activated. I still get the parsing error :/

Shouldn't it work with the logplayer? The logrecorder records referee, vision and legacy vision, so there should be the legacy geometry message as well. But I also get the parsing error with the logplayer :/

Running the autoRef without a ball sounds quite useless ;)

@MichaelEischer
Copy link
Contributor

Did you select the legacy vision port?

@g3force
Copy link
Author

g3force commented Dec 13, 2017

Good point, I thought it listens to the default legacy port automatically...

Now I receive the ball and there are no parse errors :)

And I also receive referee commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants