Skip to main content

Python Library for starting and managing simulations in the Intelligent Quads Cloud

Project description

Python-IQ-Sim

This repo is a python library for controlling starting stopping and managing simulations running in the Intelligent Quads Cloud.

Installation

pip install python-iq-sim

Generate Docs

pydoc-markdown -I iq_sim -m iq_sim --render-toc > docs/iq_sim.md

Documentation Available

https://intelligent-quads.gitbook.io/python-iq-sim-documentation/

Example

import iq_sim
import os
from pymavlink import mavutil


token = os.getenv("IQ_SIM_TOKEN")

api = iq_sim.iq_sim(token)
sim_id = api.start_sim()
api.wait_for_sim_ready(sim_id)

connection_info = api.get_connection(sim_id)
print(connection_info)
conn_str = f"tcp:{connection_info['ip']}:{connection_info['port']}"

mavlink_conn = mavutil.mavlink_connection(conn_str)
mavlink_conn.wait_heartbeat()
print("Heartbeat from system (system %u component %u)" % (mavlink_conn.target_system, mavlink_conn.target_system))

# add pymavlink script here

api.stop_sim(sim_id)

Customize Simulation Configuration

Simulation Configuration is in the form of:

{
    "sim_config": [
        {
            "sim_type": "default-sitl",
            "vehicle_type": "ArduCopter",
            "vehicle_model": "X",
            "instances": "1",
            "flight_controls": "Ardupilot",
            "fc_version": "Copter-4.2.3",
            "latlonaltheading": [
                "-35.363261",
                "149.16523",
                "584",
                "353"
            ]
        }
    ]
}

the default config is available by accessing iq_sim().sim_config. This can be modified and passed to the start_sim method as shown below:

import iq_sim
import os
from pymavlink import mavutil


token = os.getenv("IQ_SIM_TOKEN")

api = iq_sim.iq_sim(token)
config = api.sim_config
config["sim_config"][0]["instances"] = "2"
sim_id = api.start_sim(config)
api.wait_for_sim_ready(sim_id)

connection_info = api.get_connection(sim_id)
print(connection_info)
conn_str = f"tcp:{connection_info['ip']}:{connection_info['port']}"

mavlink_conn = mavutil.mavlink_connection(conn_str)
mavlink_conn.wait_heartbeat()
print("Heartbeat from system (system %u component %u)" % (mavlink_conn.target_system, mavlink_conn.target_system))

# add pymavlink script here

api.stop_sim(sim_id)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-iq-sim-0.0.4.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_iq_sim-0.0.4-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file python-iq-sim-0.0.4.tar.gz.

File metadata

  • Download URL: python-iq-sim-0.0.4.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for python-iq-sim-0.0.4.tar.gz
Algorithm Hash digest
SHA256 fa12829d5a7c4575b7697a70472ea08ca678e95f4c1a52f7f2e0453da8cb3889
MD5 e767dcecdbb534eddb40f454f95059d3
BLAKE2b-256 1c6011320a4046e9cb5430f443c7086052bc6d28fc3b6c5e41feb74314438e5f

See more details on using hashes here.

File details

Details for the file python_iq_sim-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: python_iq_sim-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for python_iq_sim-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 98a7bae3bab3f2c391b7f51194143cee0ca7efbe077225796d3259eb34ad6c54
MD5 721673e3bb0bfb6a917628ecd7d6778f
BLAKE2b-256 d26da8566d2321b25bc29271a934ce14e8e534782c21cdd671cae11883d76519

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page