Is launching Autoware.ai with LGSVL instructions missing?

Hi,

I think there is insufficient information about using autoware.ai and LGSVL together. I have followed the instructions here but could not achieve autonomous driving. Although I don’t know anything about simulation of autoware in LGSVL, but I can feel that this documentation is missing. I have following questions if anyone can address them:

My environment:

  • NVIDIA GTX1070
  • 32 gb RAM
  • 8 core CPU
  • Ubuntu 18.04
  1. I am running latest LGSVL and autoware 1.12.0. Is it possible to run 1.13.0 ? I am asking that because autoware.ai 1.12 gui is flickering too much. I cannot see the gui normally.
  2. Isn’t there any detailed solid documentation or a video for explaining how autonomous driving simulation can be implemented at first? For example, what are the complete settings for Map, Sensing, Computing tabs etc.

Thanks in advance.

1 Like

1.14.0 is the latest release and both 1.13.0 and 1.14.0 will work with your hardware/OS.

As for LGSVL, you’re correct - there is a huge lack of documentation for this configuration. Unfortunately, I don’t actively use Autoware.AI anymore as most development is progressing on Autoware.AUTO.

These questions is also better suited for ROS Answers. I recommend continuing discussion there.

Thank you for guiding. @JWhitleyWork

1.14.0 is the latest release and both 1.13.0 and 1.14.0 will work with your hardware/OS.

Does that mean 1.14.0 is working with LGSVL? Because beside running 1.14.0 with lgsvl, I could not run 1.14.0 itself.

If you post the issues you’re having with 1.14 on ROS Answers with the Autoware tag, I’ll help you out there.

As for LGSVL, there was only one change to the API which may have affected the interface with the simulator but I believe it is untested. 1.12 is the last tested version that is known to work. However, we are in contact with LGSVL and can ask them to fix or change their API, if necessary.

1 Like

@Ender you are right, we haven’t really focused on Autoware.AI in a while and our documentation for it is not great at the moment. Let me take some time to get 1.14 up and running with the simulator and I will get back to you with instructions.

1 Like

I really appreciate for your explanation @hadiTab . I will be also working on it while waiting for your instructions. Thanks.

@Ender haven’t tested the entire process yet, but right off the bat I noticed the rosbridge does not seem to be working in the latest image (1.14). Apparently the rosbridge builds have been missing dependencies for some time now (https://github.com/RobotWebTools/rosbridge_suite/issues/484). It still isn’t completely resolved, however as a workaround you can run the following commands once you enter the docker container to install the required dependencies:

sudo apt update && sudo apt install ros-melodic-rosbridge-server python-bson -y

Unfortunately, you would either need to run this command each time you start the container, or you would need to commit the changes to a new image. To commit to a new image, after making the changes listed above, open a new terminal window (outside of the docker container) without closing the docker container and run the following command:

docker commit $(docker ps | grep -w autoware | awk '{print $1;}') autoware/autoware:fix-melodic-cuda

Now you will be able to just run this image instead of the default autoware one and it will have the correct dependencies for rosbridge. To run it using the run script just use the tag fix:

cd (project_dir)/docker/generic
./run.sh -t fix

@hadiTab so sorry for the late response.

First, I am using 1.12.0, not 1.14 because the tested version and documentation belongs to 1.12 as indicated in LGSVL Simulator webpage. Nevertheless, I still tried both 1.12 and 1.14 by following your instructions. I have just realized that as soon as I upload my_map.launch file in quick start, dialog box provides an error as in the image below.

The reason that the simulator is not working may be this error. I have seen a similar issue on github page #235. Then I have switched to an older commit which is commit 93d92d6becc8dbced0a588aadcf0cee18e2c2429. Uploding Map from this commit did not give any error but this commit has different map rather than the map in the LGSVL simulator. In addition, this time localization gave the following error:

.

Whether I use 1.12 or 1.14 of autoware.ai by applying changes that you posted above, I get this information screen on simulator:

Last but not the least, which version of autoware.ai, autoware-data and lgsvl should I go with?

That error can be safely ignored. I believe the only result will be that the poles for our traffic lights in the simulator will not be marked in the Autoware vector map, which shouldn’t affect anything.

The instructions on the website were written for Autoware release 1.12.0 and should work for them. Can you point out specific issues you are having? And at which step they are occurring?
You should be using the latest lgsvl release and the latest commit in autoware-data.

I’m not sure why you are getting those warning messages though. What vehicle and sensor configuration are you using in the simulator?

EDIT: Is the simulator running in linux or windows? Also, are you running the release binaries or are you running in the unity editor?

Can you share player.log? It should be located in C:\Users\username\AppData\LocalLow\CompanyName\ProductName\Player.log

@hadiTab

I am using Jaguar2015XE(Autoware). As for sensor or vehicle configuration, I don’t do anything except following items.

I better to provide steps to reproduce errors and my environment:

Environment: Ubuntu 18.04, ROS-Melodic, docker 19.03.11, nvidia-docker 2.3.0, autoware.ai 1.12.0, autoware-data latest (origin/master), lgsvl 2020.05. GTX 1070 GPU, 32 gb RAM and 8 core CPU

Steps to reproduce errors:

Because when type nvidia-docker outputs: nvidia-docker is /usr/bin/nvidia-docker, I don’t change run.sh file as described here.

  1. ./run.sh -t 1.12.0 in docker/generic directory
  2. sudo apt update && sudo apt install ros-$ROS_DISTRO-image-transport-plugins -y
  3. roslaunch runtime_manager runtime_manager.launch in Autoware directory in container.
  4. [A] Qucik Start menu as is seen below. As soon as I launch my_map file, gui start flickering [B] and dialog terminal provides error [C] as follow.

[A]


[B]

[C]

  1. Click Sensing button to start rosbridge.

  2. Running LGSVL simulator (2020.05) and Creating a Simulation choosing BorregasAve map and Jaguar2015XE (Autoware). Running the created Simulation

  3. I click on Localization and then Rviz. In Rviz, I cannot see the vehicle, can see only tf, point and vector maps. When I click on localization, I get this by dialog box:
    yellow

This is Rviz:


8. I click on Detection, And then I get this:

9. I click mission and motion. When I click on Motion, I get this:

10. Now, I align the car intuitively by 2D pose estimate although I don’t see the car. And I specify 2D nav goal as in the image below:

11. And finally, To follow the selected route launch these nodes: - Enable lane_rule , lane_stop , and lane_select to follow traffic rules based on the vector map. - Enable astar_avoid and velocity_set . - Enable pure_pursuit and twist_filter to start driving.

As a result, nothing happens. Sometimes the time near the localization shows up, sometimes it does not show up. In both cases, either simulation or rviz are stable. Nothing happens.

EDIT:

Where can I find the related log in Ubuntu that you required?

I am using lgsvlsimulator-linux64-2020.05.zip

@Ender thanks for sharing the steps!

At step 4 the flickering is an issue with Autoware GUI, it happens on my machine as well. It can be ignored, as can the message for the pole in the vector map.

At step 7 the warnings about intensity can also be ignored. I think it originates from some of the PCL functions used in Autoware that don’t expect an intensity field to be included in the pointcloud. Can be safely ignored.

At step 8 the vision ssd detection needs the network to be downloaded and installed separately. It is not something we explain in this guide. Although we have been able to get it to work, as far as I know, Autoware will not use the detected obstacles from the network in it’s planning module anyway. We should just remove that from the launch file. This will not prevent the vehicle from driving.

At step 9 the vehicle_socket node is crashing. I can’t actually remember what that node is for but it is not needed in the simulator, again we should remove that from the launch file. This also will not affect driving in the simulator.

At step 10, the image you are showing from rviz is actually very encouraging. It shows that localization is working. The NDT matching localization module in Autoware AI is very wonky and needs a lot of tuning and playing around with to work. Usually most users get stuck on this part since it generally takes a while for it to figure out a pose and before that happens the lidar data won’t appear in rviz either. As for the vehicle model not showing up in rviz, I’m not sure why that happens. It does not affect driving. Some times it appears for me and sometimes it doesn’t. I think the rviz plugin for it just doesn’t work very well. The blue line also indicates that your mission planning has worked.

At step 11, I am not sure why the vehicle is not driving, but I can tell you that everything up until this step went fine. Did you get any error messages when launching the nodes? pure_pursuit crashes a lot for me and sometimes I have to enable and disable it a few times. Also can you expand the settings for pure_pursuit and send me a screenshot of that?

Overall though, I would say that it seems like everything on the simulator side is working correctly. In general, we experience a lot of issues with Autoware AI and have had to discover how to run all of these by manually testing them out as it doesn’t have proper documentation. If someone from the Autoware team could help out here that would be great.

@hadiTab

I removed unnecessary launches from launch files as you said (ssd and vehicle_socket). For detection, nothing changed. However, after removing vehicle_socket, simulation with pure_pursuit started finally! It is not a regular and correct driving but at least car is going somewhere in the universe :slight_smile:


Yes, I get errors. For lane_rule and lane_stop nodes, I get empty lanes error, please see screen-shot below, same error for both lane_rule and lane_stop nodes:

Other nodes which are astar_avoid, velocity_set, pure_pursuit and twist_filter give warnings but not errors.

Here is the content of pure_pursuit:

pure_pursuit

I am think of that should I launch other nodes for localization and other things in addition to the nodes that I am running already? for example: nmea2tfpose, ndt_matching, twist_generator and so on.

@Ender Great! From your screenshots it seems like the reason that the car is driving weird is that localization isn’t working well. This is often the case with the NDT matching node. Usually if you are able to initialize it well so that it matches and you don’t have any sudden movements it should work, but it still does mess up on sharp turns or sudden changes of direction. Autoware also has a GNSS localization that can be enabled to work with the simulator but it doesn’t work in 1.12. It should work in 1.14 though but it isn’t documented. I will write some documentation for it and get back. Thanks.

2 Likes

@hadiTab Awesome! Thanks and waiting for you.