Installing & Managing Packages
Package Installation Location
HoloOcean packages are by default saved in the current user profile, depending on the platform.
| Platform | Location | 
|---|---|
| Linux | 
 | 
| Windows | 
 | 
Note that the packages are saved in different subfolders based on the version of HoloOcean. This allows multiple versions of HoloOcean to coexist, without causing version incompatibility conflicts.
This is the path returned by holoocean.util.get_holoocean_path()
Each folder inside the worlds folder is considered a seperate package, so it must match the format of the archive described in Package Contents.
Overriding Location
The environment variable HOLODECKPATH can be set to override the default
location given above.
Caution
If HOLODECKPATH is used, it will override
this version partitioning, so ensure that HOLODECKPATH only points to
packages that are compatible with your version of HoloOcean.
Managing World Packages
The default option for managing packages is to use holoocean.install() and
holoocean.remove(). These functions can be used to install and remove any packages
managed by the HoloOcean team (currently only the Ocean package).
Install a Package Automatically
The holoocean Python package includes a Package Manager that can be used independently.
Below are some example usages, but see Package Manager for complete documentation.
>>> from holoocean import packagemanager
>>> packagemanager.installed_packages()
[]
>>> packagemanager.available_packages()
['Ocean']
>>> packagemanager.install("Ocean")
Installing Ocean ver. 0.1.0 from https://robots.et.byu.edu/holo/Ocean/v0.1.0/Linux.zip
File size: 1.55 GB
|████████████████████████| 100%
Unpacking worlds...
Finished.
>>> packagemanager.installed_packages()
['Ocean']
Manually Installing a Package
Packages developed by users can be installed for use with the HoloOcean library. To manually
install a package, you will be provided a .zip file. Extract it into the worlds folder
in your HoloOcean installation location.
Note
Ensure that the file structure is as follows:
+ worlds
+-- YourManuallyInstalledPackage
|   +-- config.json
|    +-- etc...
+-- AnotherPackage
|   +-- config.json
|   +-- etc...
Not
+ worlds
+-- YourManuallyInstalledPackage
|   +-- YourManuallyInstalledPackage
|       +-- config.json
|   +-- etc...
+-- AnotherPackage
|   +-- config.json
|   +-- etc...
Print Information
There are several convenience functions provided to allow packages, worlds, and scenarios to be easily inspected.
>>> packagemanager.package_info("Ocean")
Package: Ocean
   Platform: Linux
   Version: 0.1.0
   Path: Linux/Holodeck/Binaries/Linux/Holodeck
   Worlds:
   Rooms
         Scenarios:
         Rooms-DataGen:
            Agents:
               Name: turtle0
               Type: TurtleAgent
               Sensors:
                  LocationSensor
                     lcm_channel: POSITION
                  RotationSensor
                     lcm_channel: ROTATION
                  RangeFinderSensor
                     lcm_channel: LIDAR
                     configuration
                        LaserCount: 64
                        LaserMaxDistance: 20
                        LaserAngle: 0
                        LaserDebug: True
         Rooms-IEKF:
            Agents:
               Name: uav0
               Type: UavAgent
               Sensors:
                  PoseSensor
                  VelocitySensor
                  IMUSensor
   SimpleUnderwater
         Scenarios:
         SimpleUnderwater-AUV:
            Agents:
               Name: auv0
               Type: HoveringAUV
               Sensors:
                  PoseSensor
                     socket: IMUSocket
                  VelocitySensor
                     socket: IMUSocket
                  IMUSensor
                     socket: IMUSocket
                  DVLSensor
                     socket: DVLSocket
You can also look for information for a specific world or scenario
packagemanager.world_info("SimpleUnderwater")
packagemanager.scenario_info("Rooms-DataGen")