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
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.
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.
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.
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.
@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.
@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:
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:
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:
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:
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
Running LGSVL simulator (2020.05) and Creating a Simulation choosing BorregasAve map and Jaguar2015XE (Autoware). Running the created Simulation
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:
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.
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.
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
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:
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.