Skip to content
This repository has been archived by the owner on Jan 23, 2024. It is now read-only.

Feature: refactor and test team comm #127

Merged
merged 17 commits into from
Feb 23, 2023

Conversation

texhnolyze
Copy link
Contributor

@texhnolyze texhnolyze commented Jan 16, 2023

Proposed changes

Major refactoring of team communication including the following:

  • split of conversion State <-> Protobuf <-> TeamData into own converters
  • extract server/connection setup
  • introduce full typing
  • unit tests of the conversion with pytest and syrupy
  • a lot of bugfixes (concerning both logic, as well as ros2 issues)
  • fixing of scripts for testing
  • move to soccer 3d vision RobotArray msgs on the /robots_relative topic, as we never publish ObstacleRelativeArray

Related issues

Necessary checks

  • Update package version
  • Run colcon build
  • Write documentation
  • Create issues for future work
  • Test on your machine
  • Test on the robot
  • Put the PR on our Project board

@texhnolyze
Copy link
Contributor Author

I'm still doing some testing and there are also still @TODOs in the code, but as this is a big PR I think it makes sense, that you already have a look over the general stuff.
For most of the TODOs I could also use your feedback.

@texhnolyze texhnolyze force-pushed the feature/refactor-and-test-team-comm branch from f2d8938 to d867aef Compare January 19, 2023 17:10
Copy link
Member

@Flova Flova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks really good! I left some comments addressing hopefully all the TODOs as well as some minor stuff.

@texhnolyze texhnolyze force-pushed the feature/refactor-and-test-team-comm branch from d867aef to 1dd18b3 Compare January 31, 2023 20:31
@texhnolyze texhnolyze changed the title WIP: Feature: refactor and test team comm Feature: refactor and test team comm Jan 31, 2023
@texhnolyze texhnolyze force-pushed the feature/refactor-and-test-team-comm branch from 1dd18b3 to cfab407 Compare February 13, 2023 22:59
@Flova
Copy link
Member

Flova commented Feb 15, 2023

But isn't the target configurable and thus dynamic? Or what do you mean

But semantically it should still be the map frame. Maybe prefixed by a robot name or something like that. tf_transform sounds very generic and not like a function that only transforms into the map frame.

as timestamps from headers now need to be converted as the times in
messages are not `rclpy.time.Time` classes
for conversion between ros state <-> protobuf <-> team data
opening multiple panes and launching the TeamComm, while also listening
and showing messages from other robots
topic, instead of ObstaclRelativeArray on `obstacles_relative` topic,
where we do not publish any msgs.

Currently the vision produces RobotArray msgs on `robots_in_image`,
which are then transformed relative to the `base_footprint` map frame to
have relative coordinates based on the running robot's location.
This is done in the ipm (inverse projection mapping), which in turn
publishes `robots_relative`.
For now we totally humans and other obstacles, which could be handled
with ObstaclRelative msgs.

Currently the TeamData msgs also still contains an ObstaclRelativeArray,
because change it would most likely also require changes in the behavior
module.
This will be done at a later stage.

Fixes: #125
intoducing handling of truncated messages if a protobuf message should
be larger than 1024 bytes, we then double the buffer size for the next
iteration
and improve error messages for transform errors
@texhnolyze texhnolyze force-pushed the feature/refactor-and-test-team-comm branch from 798dfdb to a5f3cf8 Compare February 21, 2023 19:09
@texhnolyze texhnolyze merged commit 5c6811c into master Feb 23, 2023
@texhnolyze texhnolyze deleted the feature/refactor-and-test-team-comm branch February 23, 2023 15:55
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

team communication should use soccer_vision_3d_msgs for obstacles
2 participants