maliput / maliput/delphyne

Traffic lights' models flickering during simulation

Open
#836 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

### Context

For visualizing the Scene:
- The system generates a `ign::msgs::Scene` message with all the content to be visualized later on by the Scene3D plugin (`ign-gui3` / `delphyne_gui`)
- A service is advertised for requesting the Scene and the `Scene3D` plugin makes this request first time it is loaded. (Service name: `/get_scene`)
- Models that need to get their pose updated are published in `/visualizer/pose_update`. The Scene3D plugin subscribes to this topic.
- New models that need to be added are published in `/scene` topic. **Only** new models in the Scene message will be processed. Meaning that if it happens that a model changes its material, for example, those models aren't processed.
- For deleting models the ids of the entities are published in `/visualizer/deletion` topic.

Having in mind this context, https://github.com/ToyotaResearchInstitute/delphyne/pull/835 incorporates Traffic Light to the scene which states changes according to the current phase obtained through the `maliput`'s `api`.
The Scene3D plugin doesn't let editing the models, but changing their pose, adding new models, or deleting the models.
So the workaround that was followed was to, every time a traffic light needs to change its state(e.g. Turn off red bulb and turn on green bulb), the model is deleted and added again with a change in the `material` of the bulbs to simulate the turning-on/off stage.

As result, it is visible certain flickering on the traffic lights due to the removing and adding process.

https://user-images.githubusercontent.com/53065142/161300594-2ee077b2-a4b5-45f8-ab16-47aee07418cb.mp4

### Suggestions

1 - Add contribution to ign-gui3 distribution for updating the material to certain models, the same structure as for changing the pose could be used. This contribution should target `ign-gui3`, therefore not to break API/ABI so it can be added. (For newer distributions, the `Scene3D` plugin has been replaced.)

2 - Create a custom plugin in `delphyne_gui` for the visualizer, this plugin should interact with the scene and modify the Traffic light models according to what it reads from a custom topic where the updated models of the traffic lights are being published.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the Scene3D plugin behavior described in the issue, including the /visualizer/pose_update, /scene, and /visualizer/deletion topics, and review the traffic-light scene work in PR #835. Compare the ign-gui3 material-update option with a custom delphyne_gui plugin; done means traffic-light state changes no longer cause visible flickering.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.