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")