Comments (22)
The prebuilt version will be simplified in the future by autowarefoundation/autoware#2922. After that, developers cannot use it for development because the image has only runtime dependencies. I imagined that.
@xmfcx @kenji-miyake
I have confirmed this problem. The image of the future prebuild version
can only run Autoware, and cannot use it for development.
I plan to divide the docker installation
into two files. One is the docker installation with prebuild image
, and the other is the docker installation with devel image
, and explain the usage scenarios of the two methods.
from autoware-documentation.
I am actually preparing such video series.
Here is some docs as I'm working on it: https://gist.github.com/xmfcx/aeee631ea819ddfc734da26f98c6ee0e
So far I've recorded till planning simulator demo and will publish tomorrow. And start working on the rest.
I've only covered the source installation for this series but maybe if you want to cover the docker installation, we can add it too, what do you think @cyn-liu ?
from autoware-documentation.
I think the document of Docker installation should be divided into two branches. One is to use the non-prebuilt version image
installation method and the other is to use the prebuilt version image
installation method.
The second method is very friendly for beginner to run Autoware.
@kenji-miyake what's your opinion?
I wrote a draft about Autoware docker installation use prebuilt version image
.
my draft:
Autoware installation
Docker installation (prebuit version)
Install docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Install nvidia container toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
&& curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
test install: sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
Install rocker
sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
sudo apt install python3-rocker
Pull image
docker pull ghcr.io/autowarefoundation/autoware-universe:humble-latest-prebuilt (Autoware Foundation registry)
Create the autoware_map directory for map data later.
mkdir ~/autoware_map
NOTE: Please put your map files in this directory.
run containner
rocker --nvidia --x11 --privileged --user --volume $HOME/autoware_map -- ghcr.io/autowarefoundation/autoware-universe:humble-latest-prebuilt
run autoware
e.g., running planning simulator:
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
NOTE: The Autoware code located in the /autoware
directory in the container , if you want to modify the code, please enter this directory.
Build the workspace
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
from autoware-documentation.
@kenji-miyake I will comment there to separate prebuilt
and release
containers.
from autoware-documentation.
I think Autoware documentation should deliberately avoid any suggestion or recommendation to install Autoware on the local system. Let's put our effort to prepare an Autoware
devel
image (aka devcontainer).Let the user pull the development image and mount Autoware source folder. The current image comes with source as far as remember. Encourage the developer as much as possible to work inside the container.
@doganulus There are many core developers of the project who uses native installation method exclusively due to performance and simplicity reasons. Not everyone wants the overhead and added complexity of dealing with containers.
We have a docker image and instructions to use it, if you have an issue with how it works, how it is constructed or how it can be improved, please create a separate issue for it.
from autoware-documentation.
@cyn-liu cc @mitsudome-r @xmfcx
So can I record Autoware installation videos based on the prebuilt version images?
Sure. FYI, there is a Japanese tutorial video by @yukkysaito. (recorded about a half year ago)
https://www.youtube.com/watch?v=iW-a7cKUxuY
I think a similar composition is good.
Autoware installation documentation (here) needs to be updated?
Do you mean you want to put the tutorial video on the documentation page?
In that case, yes, I think it's a good idea.
from autoware-documentation.
Do you mean you want to put the tutorial video on the documentation page?
Yes, but I only want record video of docker installation of autoware
.
from autoware-documentation.
@xmfcx Good job!
I only want record video about docker installation, but I find the document of docker installation
is complex. If use prebuilt image
, we don't need to install so many dependencies.
from autoware-documentation.
@xmfcx Good job! I only want record video about docker installation, but I find the document of
docker installation
is complex. If useprebuilt image
, we don't need to install so many dependencies.
Thanks, sure, go ahead and create a tutorial video, we can put it to the place you've proposed.
from autoware-documentation.
The second method is very friendly for beginner to run Autoware.
@kenji-miyake what's your opinion?
@cyn-liu I agree. I think that should be like a quick start and can be on the introduction or README.
from autoware-documentation.
@kenji-miyake
Do you mean to put this installation tutorial on the introduction page as a quick start?
from autoware-documentation.
@cyn-liu Sorry for my unclear sentence. I meant just putting the link to a quick start there.
I think it's good to put the content on https://autowarefoundation.github.io/autoware-documentation/main/tutorials/quickstart (a new page).
What do you think? cc @xmfcx
from autoware-documentation.
from autoware-documentation.
I think the document of Docker installation should be divided into two branches. One is to use the non-prebuilt version image installation method and the other is to use the prebuilt version image installation method.
Here I think installing the dependencies is common for both methods. I think you should improve existing dependency installation methods instead of rewriting them.
And I agree that you can split the prebuilt
and non-prebuilt
. Please make 2 pages under Docker installation for them.
So user goes:
Docker installation -> sets up environment, installs dependencies -> There are 2 options to continue: prebuilt
and non-prebuilt
.
Is this ok with you @cyn-liu ?
I think it's good to put the content on https://autowarefoundation.github.io/autoware-documentation/main/tutorials/quickstart (a new page).
@kenji-miyake I think it's better to keep them together as they are 2 branches of a common source.
from autoware-documentation.
@xmfcx Thank you for your comments. The reason why I said we should split pages is that the target readers of the pages are different. quickstart
is for beginners or runtime-only users and the existing docker-installation
is for developers.
It's okay for me to write both information on the docker-installation
page, but I believe it's better to have another quickstart
page for beginners.
Is that not good?
from autoware-documentation.
@kenji-miyake I think developers can use prebuilt version to edit & compile autoware too,
as @cyn-liu shared in the post:
Build the workspace
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
And our docker documentation also have:
- Build the workspace.
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
It would be confusing to have these 2 pages in different sections since they both achieve the same result.
from autoware-documentation.
@xmfcx The prebuilt version will be simplified in the future by autowarefoundation/autoware#2922. After that, developers cannot use it for development because the image has only runtime dependencies. I imagined that.
from autoware-documentation.
I think Autoware documentation should deliberately avoid any suggestion or recommendation to install Autoware on the local system. Let's put our effort to prepare an Autoware devel
image (aka devcontainer).
Let the user pull the development image and mount Autoware source folder. The current image comes with source as far as remember. Encourage the developer as much as possible to work inside the container.
from autoware-documentation.
An experienced user can always install Autoware on their local system. I do not think we can prevent that. But this issue is about everyone else, especially the newcomer. Therefore let's focus on the people who want to start developing Autoware.
Still developing inside the container is very valuable for experienced core developers, I believe.
from autoware-documentation.
And I agree that you can split the
prebuilt
andnon-prebuilt
. Please make 2 pages under Docker installation for them.So user goes: Docker installation -> sets up environment, installs dependencies -> There are 2 options to continue:
prebuilt
andnon-prebuilt
.
I agree that.
I think it's better to keep them together as they are 2 branches of a common source.
from autoware-documentation.
@cyn-liu I've created this training video series: https://github.com/orgs/autowarefoundation/discussions/3141
I didn't cover docker parts, I hope you will cover them here (`・ω・´)
from autoware-documentation.
This pull request has been automatically marked as stale because it has not had recent activity.
from autoware-documentation.
Related Issues (20)
- Add documentation for perception interface HOT 1
- Image and Latex Equations are not properly loaded/rendered HOT 4
- No progress update using rocker with docker installation (How to set up a workspace)
- Add Frequently Asked Question page HOT 1
- Add documentation for map interface HOT 1
- DevOps Dojo: ROS Node Configuration - JSON Schema to MD-Table for Web Documentation HOT 6
- DevOps Dojo: ROS Node Configuration - Update Parameter Contribution Guidelines HOT 2
- Establish and document the versioning system for the autoware_msgs HOT 2
- Add documentation for Creating vehicle and sensor description HOT 2
- Add documentation on how to add a new localization node in autoware HOT 1
- Fill the documentation of "Creating vehicle interface for ackerman kinematic model"
- The link to the Autoware concepts documentation page may be broken. HOT 2
- Add documentation on how to guide autoware meta-repository
- "Behavior Planner" calculates "path", not "trajectory".
- Broken Links Issue Tracking HOT 4
- Update Autoware Integration Document HOT 1
- Update DDS isolation instructions for shared networks in Autoware HOT 4
- Add documentation how to train traffic light fine detector model HOT 1
- Update docker installation documentation
- Add docs for guiding the developers on finding, diagnosing, and fixing scenarios in Autoware HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from autoware-documentation.