autowarefoundation / autoware_ai

Apache License 2.0
20 stars 7 forks source link

Test Gazebo 7.0 and integrate Gazebo 8.0 #955

Closed dejanpan closed 5 years ago

dejanpan commented 7 years ago

Integration of Gazebo 8.0.0 ROS kinetic uses Gazebo 7.x.x series. There have been significant advances in Gazebo 8.0 and OSRF also has a car simulation:

@sumanth-nirmal will work on this.

dejanpan commented 7 years ago

a) try out and document current state of gazebo integration in Autoware b) port gazebo 8.0 to Autoware c) prepare a demo in Gazebo 8. We could do the same as here (https://github.com/osrf/car_demo) but have the car follow waypoints on that track? d) document

yukkysaito commented 7 years ago

Great!

huckl3b3rry87 commented 6 years ago

This sounds great, I am interested in testing my path planning code and this seems like Autoware will be a nice testbed for my algorithm.

For, a) try out and document current state of gazebo integration in Autoware

My build

Ubuntu 16.04 ROS-kinetic and Gazebo 8.0

First launch

The first time I tried to launch Gazebo 8.0 using the button in the gui created by this pull request and I get the error:

terminate called after throwing an instance of 'gazebo::common::Exception'
[ INFO] [1509648183.746655661]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1509648183.747391798]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
Aborted (core dumped)
[gazebo-1] process has died [pid 12997, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzserver -e ode /home/febbo/Autoware/ros/src/system/gazebo/catvehicle/worlds/urban.world __name:=gazebo __log:=/home/febbo/.ros/log/9d2893b4-bffd-11e7-8162-104a7d04da99/gazebo-1.log].
log file: /home/febbo/.ros/log/9d2893b4-bffd-11e7-8162-104a7d04da99/gazebo-1*.log
SpawnModel script started
[INFO] [1509648183.967628, 0.000000]: Loading model XML from ros parameter
[INFO] [1509648183.969994, 0.000000]: Waiting for service /gazebo/spawn_urdf_model
[INFO] [1509648185.476806, 0.000000]: Calling service /gazebo/spawn_urdf_model
Service call failed: transport error completing service call: unable to receive data from sender, check sender's logs for details
[WARN] [1509648214.054949, 0.001000]: Controller Spawner couldn't find the expected controller_manager ROS interface.
[INFO] [1509648183.928865, 0.000000]: Controller Spawner: Waiting for service controller_manager/load_controller

Second launch and subsequent launches

After shutting everything down and running it again, Gazebo launched!

Moving forward

@dejanpan or @sumanth-nirmal are you still planning on working on this?

Thanks!

dejanpan commented 6 years ago

@huckl3b3rry87 unfortunately there was no time to work on this. We would however warmly welcome everyone willing to chip in. Do you have some spare time?

huckl3b3rry87 commented 6 years ago

@dejanpan I do have some time to work on this; I decided (at least for the moment) that I will use Autoware for my Autonomous Vehicle Proving Grounds.

dejanpan commented 6 years ago

@huckl3b3rry87 great. I would then suggest the following:

  1. port OSRF's docker (https://github.com/osrf/car_demo) into Autoware docker: https://github.com/CPFL/Autoware/tree/master/docker
  2. Make sure we can drive the Prius using joystick: https://github.com/CPFL/Autoware/blob/fad2d17234e77e393e263aac861b7a835f10903a/ros/src/system/gazebo/catvehicle/launch/joystick.launch
  3. Create an NDT map: Autoware_NDT_Mapping_Tututorial.pdf

This would be a great base for all the further work.

Let me know if you need assistance/help with any of the steps.

huckl3b3rry87 commented 6 years ago

@dejanpan for autowarefoundation/autoware#2, you would like to integrate the prius vehicle from car_demo into Autoware?

Sounds good though! Thanks!

dejanpan commented 6 years ago

@huckl3b3rry87 - yes, that is correct

dejanpan commented 6 years ago

@huckl3b3rry87 have you been able to make some progress here? Got any questions?

huckl3b3rry87 commented 6 years ago

@dejanpan I did put some time into it a couple weeks ago, but had to shift priorities a bit. This is still definitely something that I am interested in and will put some time in today!

huckl3b3rry87 commented 6 years ago

@dejanpan today, I did my best to update the Docker file as well as the build and run scripts. The result is here https://github.com/huckl3b3rry87/Autoware/blob/feature/port_car_demo/docker/Dockerfile

After building a docker image with:

$/Autoware/docker/ ./build_demo.bash

and trying to run the demo with:

$/Autoware/docker/ ./run_demo.bash

The gui pops up for about a second and disappears and I get the error:

** (gnome-terminal.real:33): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-oTmiGTHcd2: Connection refused

I have spent quite a bit of time on this, but cannot figure it out. Any help would be greatly appreciated! Thanks!

huckl3b3rry87 commented 6 years ago

@dejanpan I have continued to work on this project and actually got Gazebo 8 working with the latest Autoware master, using this docker file by working I mean it pops up Gazebo from Autoware and I can see the cat_vehicle. The problem is that Gazebo is running very slowly with a real time factor of about 0.15, and Gazebo is slow even without Autoware. It seems that someone else had an issue here where there is a pull request for Gazebo that was mentioned for the fix.

Also, the in this branch is a docker test file that I can use to install an image of car_demo that runs with a real-time factor of 1. @tfoote I basically coppied all of the Docker files that where upstream from yours so that we could build FROM nvidia/cuda:8.0-devel-ubuntu16.04 and every line has the code where I got it from and comments with H.F. if I changed something.

So, somehow installing additional packages for Autoware is realling slowing down gzserver. Any ideas or suggestions @tfoote would be very helpful. Thanks!

Also @yk-fujii since you maintain this docker file any help from you would be much appreciated, there are many dependencies that I needed to remove because they are not available in the build, that I would like you to check on. Thanks!

huckl3b3rry87 commented 6 years ago

Update Using the feature/port_car_demo branch I am able to build on my machine (Docker file still needs a little work though, I think on how to actually build it) Autoware and car_demo (launched when the Gazebo button is clicked). By building it with this command catkin_make --pkg prius_msgs && catkin_make and the joystick and everything is working!!

huckl3b3rry87 commented 6 years ago

Update I am now able to run the car_demo package using Docker within Autoware. Also, I am working on building it on Docker hub https://hub.docker.com/r/huckl3b3rry87/autoware/builds/

So, @dejanpan Task autowarefoundation/autoware#1 and Task autowarefoundation/autoware#2 are done!

Why would I need an NDT map? car_demo launches rviz as well as Gazebo

yukkysaito commented 5 years ago

https://github.com/CPFL/Autoware/pull/1930 This issue will be closed to replace the new Gazebo Ok?