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

1 Answer

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

Your Answer

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

Add Answer

Question Tools

2 followers

Stats

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

Seen: 250 times

Last updated: May 15