awslabs / autonomous-driving-data-framework

ADDF is a collection of modules, deployed using the SeedFarmer orchestration tool. ADDF modules enable users to quickly bootstrap environments for the process and analysis of autonomous driving data.
Apache License 2.0
109 stars 45 forks source link

[on hold] EKS based Ubuntu Desktop + NiceDCV using Kubectl port forwarding #45

Closed a13zen closed 1 year ago

a13zen commented 2 years ago

@srinivasreddych adding more context:

AV/ADAS customers need to visualize sensor data collected in the vehicle. This includes the ability to visualize camera, LiDaR 3D Point Cloud, map and other raw sensor data.

Customers use ROS visualization tools, such as Foxglove Studio, to do this. We've built a solution that allows streaming ROS bag files from s3 directly to Foxglove Studio. However, the problem is that streaming these files via the internet is not ideal.

We need a solution that allows deploying a visualization developer instance into a VPC and having the bag files streamed via S3 Gateway endpoints instead. This instance should use NiceDCV to allow connecting to the Desktop + have all the required ROS tooling and Foxglove studio installed (Ubuntu required).

We have a module that allows spinning up exactly such an EC2 instance (https://github.com/awslabs/autonomous-driving-data-framework/tree/release/1.0.0-reinvent/modules/visualization/dev-instance). However, again EC2 is not ideal since we want to be able to create and destroy these visualization development instances on demand (potentially from a UI). For this we are looking to replicate the dev-instance module above on EKS instead, with PODs that deploy Ubuntu Desktop + NiceDCV & Foxglove Studio on demand and can be created and destroyed on demand.

srinivasreddych commented 2 years ago

Hello @a13zen Can you please add more information to the description of an issue, so it will be easy to do some research?

dgraeber commented 1 year ago

I ran into significant issues getting the combination of Ubuntu image with NVIDIA and OpenGL installed with the desktop and running with virtual NiceDCV sessions (console sessions not supported with GPU). I will need a proper image (Dockerfile) with the following defined to move forward:

We have aligned the deployment on a GPU compute instance in EKS, but the ran into issues as denoted above.

JunjieTang-D1 commented 1 year ago

Do we have some update to create the proper dockerfile?

dgraeber commented 1 year ago

We will need support to create a docker image with the following: Support for Ubuntu 20.04 Desktop running on GPU to leverage OpenGL. The image should leverage nicedcv over virtual sessions (not console) in order to take advantage of the GPU. We have vetted the support to create GPU compute resources with proper labeling for isolation (Fargate does not support EKS GPU nodes).

NOTE: we have the ability to run FoxGlove in its own pod, but the need to run RViz with ROS seems to be the driver for this need.

dgraeber commented 1 year ago

Reference this for an image: https://www.ni-sp.com/nice-dcv-in-containers/

JunjieTang-D1 commented 1 year ago

WIll the re:Invent pull request solve this issue? @dgraeber @a13zen

a13zen commented 1 year ago

No, that was using EC2, this is for EKS based solution. We have de-prioritized this until after the next release.

dgraeber commented 1 year ago

As it stands now, getting Ubuntu 20.04 to work with OpenGL and GPU with the desktop and NiceDCV virtual sessions has been challenging. Centos seems to work via the links above. But, ROS needs Ubuntu to run. We need to revisit this.

qvacua commented 1 year ago
qvacua commented 1 year ago

Will be re-opened when relevant again.