Traffic lights' models flickering during simulation
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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