Installing & Managing Packages
Package Installation Location
BiguaSim 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 BiguaSim. This allows multiple versions of BiguaSim to coexist, without causing version incompatibility conflicts.
This is the path returned by biguasim.util.get_biguasim_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 BiguaSim.
Managing World Packages
The default option for managing packages is to use biguasim.install() and
biguasim.remove(). These functions can be used to install and remove any packages
managed by the BiguaSim team (currently only the SkyDive package).
Install a Package Automatically
The biguasim Python package includes a Package Manager that can be used independently.
Below are some example usages, but see Package Manager for complete documentation.
>>> from biguasim import packagemanager
>>> packagemanager.installed_packages()
[]
>>> packagemanager.available_packages()
['SkyDive']
>>> packagemanager.install("SkyDive")
Installing SkyDive ver. 0.1.0 from https://robots.et.byu.edu/holo/Ocean/v0.1.0/Linux.zip #TODO
File size: 1.55 GB
|████████████████████████| 100%
Unpacking worlds...
Finished.
>>> packagemanager.installed_packages()
['SkyDive']
Manually Installing a Package
Packages developed by users can be installed for use with the BiguaSim library. To manually
install a package, you will be provided a .zip file. Extract it into the worlds folder
in your BiguaSim 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("SkyDive")
Package: SkyDive
Platform: Linux
Version: 1.0.0
Path: Linux/Biguasim/Binaries/Linux/Holodeck
Worlds:
Pier-Harbor:
Scenarios:
Pier-Harbor:
Agents:
Name: turtle0
Type: DjiMatrice
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
Bridge:
Scenarios:
Bridge-AUV:
Agents:
Name: auv0
Type: BlueROV2
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("Bridge")
packagemanager.scenario_info("Pier-Harbor")