-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[gazebo] Cyberzoo model #2230
[gazebo] Cyberzoo model #2230
Conversation
To-do: set origin coordinates and rotate environment
Makes it easier to hide parts of the model in the GUI.
Reduced texture dimensions. Size of model folder is now approx. 20 MB instead of 60+ MB.
oew... not sure its a good idea to include large gazebo models here... It should probably be downloaded during the make or included in a submodule which can be optionally checked out. @gautierhattenberger advice here? |
FYI, the gazebo folder is now 22.8MB |
Looking nice! What about |
Wow, it looks very similar to the real one xD |
I also think it shouldn't be in the main repository. So either an external one or git lfs (I didn't know before). We could also use a variable env to specify a non standard path for Gazebo models. Otherwise we may end up with a lot of submodules. |
Ok, so by now there are 4 different options to include these (and future) models:
I think adding this as a submodule would be the best solution in the long run, as it works out-of-the-box, prevents missing dependencies and is included in the version control. I do not think clutter will be a big problem as I do not expect the number of large gazebo models to grow quickly. If the disk usage or total download size should be kept to a minimum, option 3 would also be possible. What are your views on this? |
IMHO cmake / ccmake on the root would be quite good to have the user select
what is available on his machine, or what to download and which
dependencies there are, and hopefully also which packages you have to
install.
I think this is cleaner than to automatically download while a user clicks
compile.
e.g.:
OPTION USE_OPENCV
OPTION USE_STM32
OPTION USE_ARM
OPTION USE_CHIBIOS (depends on STM32)
OPTION USE_SIMULATION (depends on PAPARAZZI-JSB)
OPTION USE_GAZEBO (depends on gzclient7 to 8)
OPTION USE_GAZEBO_EXTRA_MODELS (depends on OPTION USE_GAZEBO)
PS: I'm not (yet) talking about compiling paparazzi with c-make. To start
it can be called as an external project, but submodules could quite easily
be removed from the paparazzi makefile already.
…-Christophe
On Wed, Feb 7, 2018 at 5:54 PM, Tom van Dijk ***@***.***> wrote:
Ok, so by now there are 4 different options to include these (and future)
models:
1. *Add as submodule*. Advantages: all models are downloaded
automatically and there is a form of version control that keeps the right
versions of fdm_gazebo, airframes, flight plans and models together.
Disadvantages: the submodules might get cluttered unless all models are
stored in a single repo (e.g. paparazzi/gazebo_models). Alternatively, this
can partially be solved by placing the gazebo submodules in a different
directory (conf/simulator/gazebo, sw/ext/gazebo_models/...), although this
will not prevent .gitmodules from growing. All models get downloaded, which
will increase disk usage of paparazzi (optional submodules might be
possible by setting update=none and ignore=all in .gitmodules, but I've
never tried this...). Shallow clones for submodules
<https://stackoverflow.com/a/38895397> should be used to prevent
downloading earlier revisions as well.
2. *Git LFS*. Avoids the need to make a separate repo and submodules,
while still providing version control. Requires users to install git lfs if
they want to use the gazebo models, but once installed they should be easy
to check out. As with the submodules all models will be downloaded, but not
their history. Github provides 1 GB of storage and 1 GB/month of
bandwidth for LFS
<https://help.github.com/articles/about-storage-and-bandwidth-usage/>,
which allows only 45 checkouts per month @22mb before the bandwidth is
reached.
3. *Download manually (or simple script)*. This option gives the most
control over which models get downloaded. Once downloaded, the models can
be placed outside paparazzi with an env variable pointing towards them, or
perhaps in var or a gitignored folder under conf/simulator/gazebo. However,
this solution can result in missing dependencies (e.g. the
course2017_avoid_orange_cyberzoo.xml flightplan refers to the cyberzoo
world that might not be installed). Version conflicts could be prevented by
pointing a download script provided with paparazzi at a specific commit
inside the model repo (almost like a manual submodule...)
4. *Download automatically during make*. Very similar to submodules.
Like submodules and LFS, all models will be downloaded. Pointing the
download script at a specific version of the model repo prevents version
conflicts.
I think adding this as a submodule would be the best solution in the long
run, as it works out-of-the-box, prevents missing dependencies and is
included in the version control. I do not think clutter will be a big
problem as I do not expect the number of large gazebo models to grow
quickly. If the disk usage or total download size should be kept to a
minimum, option 3 would also be possible. What are your views on this?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#2230 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAd6fB_krCZPltW6xiaIVfl5wMTOwPq5ks5tSdUogaJpZM4R62Sy>
.
|
I'm not in favor of options 2 and 4. For option 3, there is also the |
+1 as Submodule (Shallow). As discussed, Gazebo v8.x is not a long-term version support v9 is till 2023 (see http://gazebosim.org/#status). Since this is the first time to use Gazebo for the TU course, IMHO let's start with v9 no need for backwards compatibility. I've converted ~50% of functions as eval to see how it would take. Someone who is into Gazebo it should be trivial. see https://bitbucket.org/osrf/gazebo/src/default/Migration.md Sorry Tom, no time left for full conversion this month to help out. And really the size is not so large as not to be stuffed in github as submodule. See project where e.g. README PDF are already 30MB. For the course branch removew e.g the # in the default build. |
- All new models are moved to the tudelft/gazebo_models repository, which is included as a submodule in sw/ext/tudelft_gazebo_models/ - Changed vehicle and world SDF loading to use URI's, these can be used with multiple search paths - Added gzclient_launcher.sh script that sets up environment variables before launching gzclient. This prevents errors if the user forgets to add the paths to .bashrc. Added as a tool to control_panel_example.xml
Finally had time to work on this again :). I have removed the new models from this pull request and pushed them to a new repository that is included as a submodule. The submodule can be downloaded manually if required using I made minor changes to the code to support multiple model and world folders. I also added a helper script to launch gzclient with the correct environment variables. In short:
|
Taken all remarks into consideration and all fine, thanks! |
* First steps towards detailed cyberzoo model. Got transparency working. * Fix ambient lighting of cyberzoo_solid * Import improved model * Fix optitrack cameras * Fix lighting colors * Fix optitrack camera color * Add orange pole and traffic mat objects * Fix orange_pole2 smoothing errors * Fix cyberzoo origin * Add first draft of cyberzoo surroundings * Add updated cyberzoo surroundings and outside walls * Minor fixes to surroundings * Create cyberzoo world To-do: set origin coordinates and rotate environment * Set world coordinates and rotation, fix naming conflict * Add cyberzoo world with orange poles for orange_avoider * Remove old cyberzoo model, fix dependencies * Add daylight in windows on outer walls * Separate cyberzoo model into layers Makes it easier to hide parts of the model in the GUI. * Add cyberzoo surroundings to main model in separate layers * Restore cyberzoo floor collision box * Add cyberzoo props * Minor tweaks to models * Compress textures Reduced texture dimensions. Size of model folder is now approx. 20 MB instead of 60+ MB. * Remove origin marker from worlds * Move CyberZoo models to submodule - All new models are moved to the tudelft/gazebo_models repository, which is included as a submodule in sw/ext/tudelft_gazebo_models/ - Changed vehicle and world SDF loading to use URI's, these can be used with multiple search paths - Added gzclient_launcher.sh script that sets up environment variables before launching gzclient. This prevents errors if the user forgets to add the paths to .bashrc. Added as a tool to control_panel_example.xml
New TU Delft Cyberzoo world and props for Gazebo: