We have only tested on Ubuntu which means it's the only operating system we currently officially support. Ubuntu is an ideal operating system as ROS is required to support it. Users are always welcome to try different operating systems and can share their patches with the community if they are successfully able to use them.
The Dreamview web server is provided by the dreamview node(A node is an executable in ROS concept). Before accessing the Dreamview page, you need to build the system(including dreamview node) within the docker container following the guide. Once built, dreamview node will be started after the step bash scripts/bootstrap.sh
.
So if you can not access Dreamview, please check:
- Make sure you have dreamview process running correctly. In the latest version,
bash scripts/bootstrap.sh
will reportdreamview: ERROR (spawn error)
if dreamview fails to start. For early version, please check with command:supervisorctl status dreamview
orps aux | grep dreamview
. If dreamview is not running, please refer to How to Debug a Dreamview Start Problem. - Make sure the address and port are not blocked by the firewall.
- Make sure you're using <apollo_host_ip>:8888 instead of localhost:8888 if you are not accessing the Dreamview page through the host machine.
The majority of bugs can be found through logging (using AERROR, AINFO, ADEBUG). If step-by-step debugging is needed, we recommend using gdb.
Refer to the How-To guide located here.
Here is a solution to solve this problem:
- Reboot ubuntu system, and press and hold 'shift' button and then enter grub menu.
- Choose a generic and bootable item(not boot loader with Apollo kernel) to boot up.
- Press 'Ctrl+Alt+F1' and install 'NVIDIA-Linux-x86_64-375.39.run' according to the link.
- Reboot and start computer with the default boot loader with Apollo kernel.
We highly recommend that you use Ubuntu 14.04 to build Apollo.
Yes, you should be able to make Apollo work on Ubuntu 18. Just follow the document to install docker, then apollo.sh build
and apollo.sh lint
should work. But apollo.sh test
might not, because the nvidia-drivers are generally miss-matched between HOST and Docker container, which will raise test failures.
Apollo currently functions as a single system, therefore before adding a module to it, understand that there would be a lot of additional work to be done to ensure that the module functions perfectly with the other modules of Apollo. Simply add your module to the modules/
folder. You can use modules/routing
as an example, which is a relatively simple module. Write the BUILD files properly and apollo.sh will build your module automatically
Should you see this error while building Apollo, please confirm the following:
-
Make sure you are running rosbag when you are inside docker (dev or release). We recommend using the dev docker container.
-
You are probably running it as
root
. If yes, you would need to add:source /apollo/scripts/apollo_base.sh (this script includes the ros environment setup procedure source /home/tmp/ros/setup.bash(for dev docker), or you can only source the ros env setup script as well).
Usually, this could be avoid by running Apollo as a normal user, since it will be configured into .bashrc automatically.
-
Do not use
sudo
parameter, when executingdev_start.sh
anddev_into.sh
An error message like this means that your system does not have enough space to build Apollo and the build process will fail. To resolve this issue, run the following to free up some space:
docker/setup_host/cleanup_resources.sh
If it does not work, delete the Apollo repo, free up some space and then try again.
There could be a number of reasons why this error occurs. Please follow the steps recommended in the following thread. There are quite a few suggestions. If it still does not work for you, comment on the thread mentioned above.
If you see an error like this, you do not have enough memory to build Apollo. Please ensure that you have at least 16GB memory available before building Apollo.
You could also find --jobs=$(nproc)
in apollo.sh file and replace it with --jobs=2
. This will make build process to use only 2 cores. Building will be longer, but will use less memory.
More Software FAQs to follow.