Ask Your Question
0

Implementing autoware auto examples on nvidia Jetson aarch64

asked 2020-05-13 15:33:45 -0500

AndreV84 gravatar image

updated 2020-05-13 22:25:35 -0500

Hi guys; It deploys to the Jetson device with:

ade start --update --enter


@ade:~$ env | grep ROS
ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=dashing

However, which doesn't appear to work at once is :

@ade:~$ rviz2 -d /home/"${USER}"/AutowareAuto/install/autoware_auto_examples/share/autoware_auto_examples/rviz2/autoware.rviz
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-nvidia'
libEGL warning: DRI2: failed to authenticate
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
[ERROR] [rviz2]: Failed to create an OpenGL context. BadValue (integer parameter out of range for operation)

could you point out a way to execute examples, e.g. rviz/ simulation? at such deployment at aarch64 device? Do you have any experience in doing it on Jetson devices? Any particular steps which are confirmed to work? any way to run the LGSVL somehow? run atom? reference https://answers.ros.org/question/3390...

rviz out:

attached file is a text file and .png will need to be removed from the tailC:\fakepath\rvizout.log.png

edit retag flag offensive close merge delete

Comments

There's not enough details in this question to be able to answer. Please ask again following our guidelines.

tfoote gravatar image tfoote  ( 2020-05-13 20:25:36 -0500 )edit

@hi tfoote; Thank you for your response. How do I reopen the question? Moreover, do you refer to some specific guidelines? generic guidelines? guidelines for ROS? for autoware? for autoware auto? Some other guidelines?

AndreV84 gravatar image AndreV84  ( 2020-05-13 21:43:53 -0500 )edit

To close and reopen requires high karma. I can reopen. I didn't link to http://wiki.ros.org/Support as it's in the close message.

"Closed for the following reason Question does not follow our guidelines for questions. Please see: http://wiki.ros.org/Support for more details. by tfoote close date 2020-05-13 20:25:41.680543"

Thanks for editing it, I'll reopen it for you.

tfoote gravatar image tfoote  ( 2020-05-13 23:27:14 -0500 )edit

3 Answers

Sort by » oldest newest most voted
0

answered 2020-05-15 00:12:25 -0500

Josh Whitley gravatar image

@AndreV84 Thanks for trying Autoware.Auto! The problem you're running into is a common one with Docker and GUI applications. GUI tools like Rviz require an X context in which to run so they can draw things on your screen. However, by default, Docker containers don't have this access to the host machine. There are two ways to get around this:

  1. Install rviz2 on your host machine and allow Docker to access your host machine's network with the --net=host flag. You can add this to your ade start command like this: ade start --update -- --net=host and then run ade enter seperately.

  2. This option is less secure but you don't have to install anything on your host machine. Just add the --priveleged flag instead: ade start --update -- --priveleged. Then, as with 1, run ade enter seperately. Be aware that this gives the Docker container unrestricted access to your host machine but I haven't seen a good solution for running GUI applications inside a container other than this.

edit flag offensive delete link more

Comments

Both don't work for me... Is there any other solution?

When I run first solution, I get this error:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-kyungpyo'
dbus[3890]: The last reference on a connection was dropped without closing the connection. This is a bug in an application. See dbus_connection_unref() documentation for details.
Most likely, the application was supposed to call dbus_connection_close(), since this is a private connection.
  D-Bus not built with -rdynamic so unable to print a backtrace
Aborted (core dumped)

For second solution, I get this error:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-kyungpyo'
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
[ERROR] [rviz2]: Failed to cre
kyungpyo gravatar image kyungpyo  ( 2020-06-15 09:06:13 -0500 )edit

@kyungpyo, you did not provide the commands that you were running? yes, the former suggestion requires the ROS2 to be installed system-wide; And the latter suggestion has a type and neither was a success at my side. But without knowing the command that you are running in both cases it is difficult to progress with resolving the errors.

AndreV84 gravatar image AndreV84  ( 2020-06-15 09:43:37 -0500 )edit

@AndreV84

Thanks for your response!

A attached a file that includes all commands and results. Please see: https://drive.google.com/file/d/1xpFb...

kyungpyo gravatar image kyungpyo  ( 2020-06-15 10:00:21 -0500 )edit

@kyungpyo / @AndreV84 Please see this issue where we are working on a solution to the OpenGL/GPU hardware acceleration problem in Docker.

Josh Whitley gravatar image Josh Whitley  ( 2020-06-15 15:59:55 -0500 )edit

@Josh Whitley Thanks for your attention. I modified "ADE_DISABLE_NVIDIA_DOCKER=false" in ".aderc" as mentioned in your link, but it didn't change anything. Could you give me more information about this issue? Is it not solved yet?

kyungpyo gravatar image kyungpyo  ( 2020-06-18 09:13:05 -0500 )edit

@AndreV84 Based on the commands you're running, it looks like you're using the default containers (in .aderc which are built for the amd64/x86_64 platform, not for aarch64/arm64. To launch these instead, make sure your version of ade is 4.2.0 (check with ade --version and upgrade with sudo ade update-cli, if not) and then run ade --rc .aderc-arm64 start --update --enter instead. Sorry I didn't notice the architecture earlier.

Just FYI - this is not yet a solved problem on all platforms and the Nvidia Jetson is not a supported platform for Autoware.AUTO right now. We will give you as much support as we can remotely but, if you run into further problems, we may not be able to solve them since we don't have access to this hardware at this time.

Josh Whitley gravatar image Josh Whitley  ( 2020-06-18 13:15:55 -0500 )edit

@Josh Whitley. Thank you for following up! It is a matter of sourcing of different files: .aderc versus .aderc-arm64. The former won't run on aarch 64. However, the latter executes. Works in a limited way though

AndreV84 gravatar image AndreV84  ( 2020-06-18 13:51:13 -0500 )edit
1

I've got it worked finally! I refer this link (https://gitlab.com/ApexAI/autowarecla...). I can explain how it works because I am very docker beginner... But it works for me. And the point I think is not only "ADE_DISABLE_NVIDIA_DOCKER=false", but also this command:

export ADE_DOCKER_RUN_ARGS="--cap-add=SYS_PTRACE --runtime=nvidia -ti --rm -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
-e NVIDIA_VISIBLE_DEVICES=all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility,display"

Thanks!

kyungpyo gravatar image kyungpyo  ( 2020-06-20 09:41:22 -0500 )edit
0

answered 2021-01-19 03:52:10 -0500

guillermoherreraf gravatar image

updated 2021-01-19 04:00:47 -0500

Hello! I've been trying to run the Autoware.Auto 3D perception stack tutorial in a Jetson Xavier NX (Ubuntu 18.04) with the ADE environment with no success.

I have followed the installation steps from here. As my system is running under the ARM64 architecture, I first sourced the .aderc-arm64 file (from within the AutowareAuto folder), and then ran ade start as stated on this post. In this case it fails to open rviz2 and throws the following error message:

[ERROR] [rviz2]: Failed to create an OpenGL context. BadValue (integer parameter out of range for operation) [ERROR] [rviz2]: RenderingAPIException: Unable to create a suitable GLXContext in GLXContext::GLXContext at /tmp/binarydeb/ros-dashing-rviz-ogre-vendor-6.1.7/obj-aarch64-linux-gnu/ogre-master-ca665a6-prefix/src/ogre-master-ca665a6/RenderSystems/GLSupport/src/GLX/OgreGLXContext.cpp (line 60) [ERROR] [rviz2]: rviz::RenderSystem: error creating render window: RenderingAPIException: Unable to create a suitable GLXContext in GLXContext::GLXContext at /tmp/binarydeb/ros-dashing-rviz-ogre-vendor-6.1.7/obj-aarch64-linux-gnu/ogre-master-ca665a6-prefix/src/ogre-master-ca665a6/RenderSystems/GLSupport/src/GLX/OgreGLXContext.cpp (line 60) [ERROR] [rviz2]: Unable to create the rendering window after 100 tries terminate called after throwing an instance of 'std::runtime_error'
what(): Unable to create the rendering window after 100 tries Aborted (core dumped)

I've also tried making the changes suggested in the .aderc-arm64 file (mainly setting ADE_DISABLE_NVIDIA_DOCKER=false) and also what was suggested here. In this case, ade start command throws an error.

I would appreciate the help as I've been stuck in this issue for several days now.

edit flag offensive delete link more

Comments

Hello! Digging deeper into the issue, I tried to check the conditions described here to run basic GUI applications within the Docker container with an NVIDIA GPU:

  1. I ran the command ls -la /dev | grep nvidia to see how my GPU is listed in the system and I could not find nvidia0 as it is expected. The command returned tty1 and ttyTCU0. I guess the problem lies around here.
  2. I also checked if the nvidia-container-toolkit is installed in my system with the command apt policy nvidia-container-toolkit, and everything seems to be fine.

Any idea on how to solve the issue from point number 1?

guillermoherreraf gravatar image guillermoherreraf  ( 2021-01-19 05:11:19 -0500 )edit
0

answered 2020-11-10 07:52:32 -0500

auronman gravatar image

HI I am trying to build an run autoware.auto examples in nvidia jetson tx2.

I have two problems: 1) I dont know why but in some tries i am no able to build autoware.auto . in the building proccess i get some erros. Once i could build all. The last error i get is this : fatal error: autoware_auto_msgs/msg/had_map_bin.hpp: No such file or directory #include <autoware_auto_msgs msg="" had_map_bin.hpp="">

2) Please kyungpyo can you share all your .adecr file? I want to know what repos are you using in the aderc file.

Maybe i am making some mistake. My installation proccess is:

1) Install ade last versión 4.2 2) git clone https://gitlab.com/autowarefoundation... 3) change aderc file for aderc-arm64 (to get arm repos) 4) ade start , ade enter 5) ade> cd AutowareAuto >> vcs import < autoware.auto.$ROS_DISTRO.repos 6) colcon build

The last time tha i build succesfully when i try a rviz2 example i got your same error.

Some help will be great.

Thanks"

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

3 followers

Stats

Asked: 2020-05-13 15:33:45 -0500

Seen: 1,175 times

Last updated: Jan 19