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

WIP Visualization using Foxglove #201

Open
wants to merge 49 commits into
base: master
Choose a base branch
from

Conversation

storm-light
Copy link

@storm-light storm-light commented Jul 6, 2021

Uses ROS publishers to send data to Foxglove for visualization. Removed pygame dependencies in the visualizer operator and operator creator. Additionally, removed the run_visualizer_control_loop() method in utils.py (and its calls) and the visualize() method in frame classes (camera_frame.py, point_cloud.py, etc.).

Dockerfile needs to be updated to install foxglove studio and ROS correctly.

Should the control_display_stream be kept or deleted?

Example screenshot (visualizing detected obstacles and depth camera (both depth frame and point cloud):
foxglove_multiple_display_depth

Copy link
Member

@pschafhalter pschafhalter left a comment

Choose a reason for hiding this comment

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

Nice work!

In addition to the comments, a few more things need to be done:

  • Fix merge conflicts. A quick way to do this is to add this repo as the upstream repository git fetch upstream master and then git rebase upstream/master
  • Push changes to operator_creator.py. I think you have some locally that haven't been pushed.
  • Fix the Dockerfile.
  • Fix the code formatting. An easy way to do this is to pip install yapf and run yapf -i <myfile.py> to automatically format.
  • Automatically start and shutdown ROS/Foxglove in the visualizer operator.

Also, I was having some issues running Foxglove on a remote machine. Running foxglove-studio --no-sandbox as you suggested helped, but the content of the window doesn't render. It could be an issue with my internet speeds/X-server being slow. We need to look into this before merging this PR.

pylot/debug/ros_camera_publisher.py Show resolved Hide resolved
pylot/debug/ros_camera_publisher.py Outdated Show resolved Hide resolved
pylot/debug/ros_camera_publisher.py Outdated Show resolved Hide resolved
pylot/debug/ros_lidar_publisher.py Show resolved Hide resolved
pylot/debug/ros_lidar_publisher.py Outdated Show resolved Hide resolved
pylot/debug/visualizer_operator.py Outdated Show resolved Hide resolved
pylot/debug/visualizer_operator.py Outdated Show resolved Hide resolved
pylot/debug/visualizer_operator.py Outdated Show resolved Hide resolved
pylot/debug/visualizer_operator.py Outdated Show resolved Hide resolved
pylot/debug/visualizer_operator.py Outdated Show resolved Hide resolved
@pschafhalter
Copy link
Member

Rosbridge provides a potential work-around for the rendering issue I ran into:

  1. roslaunch rosbridge_server rosbridge_websocket.launch
  2. ssh into the container with -L 9090:localhost:9090
  3. Connect to Foxglove using rosbridge on ws://localhost:9090/

storm-light and others added 21 commits July 19, 2021 11:31
…s (both as rgb frame and point cloud), also cleaned up some code
…Publisher.py to ros_lidar_publisher.py and adjusted import statement in visualizer operator
…and methods, and added comments to visualizer operator
Co-authored-by: Peter Schafhalter <pschafhalter@berkeley.edu>
Co-authored-by: Peter Schafhalter <pschafhalter@berkeley.edu>
Co-authored-by: Peter Schafhalter <pschafhalter@berkeley.edu>
merge required to incorporate suggested changes on the WIP foxglove visualization pull request
Copy link
Contributor

@ICGog ICGog left a comment

Choose a reason for hiding this comment

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

Josh, can you please rebase your PR from the main branch?

@storm-light
Copy link
Author

Just checking, if I rebased onto master earlier, would there be any way to avoid resolving the same merge conflicts again?

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

Successfully merging this pull request may close these issues.

4 participants