Giter Club home page Giter Club logo

omnidrones's Introduction

Visualization of OmniDrones


OmniDrones

IsaacSim Python Docs status License: MIT Discord Forum

OmniDrones is an open-source platform designed for reinforcement learning research on multi-rotor drone systems. Built on Nvidia Isaac Sim, OmniDrones features highly efficient and flexible simulation that can be adopted for various research purposes. We also provide a suite of benchmark tasks and algorithm baselines to provide preliminary results for subsequent works.

For usage and more details, please refer to the documentation. Unfortunately, it does not support Windows.

Welcome to join our Discord for discussions and questions!

Notice

The initial release of OmniDrones is developed based on Isaac Sim 2022.2.0. It can be found at the release branch. The current version is developed based on Isaac Sim 4.0.0.

Announcement 2023-09-25

The initial release of OmniDrones is developed based on Isaac Sim 2022.2.0. As the next version of Isaac Sim (2023.1.0) is expected to bring substantial changes but is not yet available, the APIs and usage of OmniDrones are subject to change. We will try our best to keep the documentation up-to-date.

Announcement 2023-10-25

The new release of Isaac Sim (2023.1.0) has brought substantial changes as well as new possibilities, among which the most important is new sensors. We are actively working on it at the devel branch. The release branch will still be maintained for compatibility. Feel free to raise issues if you encounter any problems or have ideas to discuss.

Citation

Please cite this paper if you use OmniDrones in your work:

@misc{xu2023omnidrones,
    title={OmniDrones: An Efficient and Flexible Platform for Reinforcement Learning in Drone Control},
    author={Botian Xu and Feng Gao and Chao Yu and Ruize Zhang and Yi Wu and Yu Wang},
    year={2023},
    eprint={2309.12825},
    archivePrefix={arXiv},
    primaryClass={cs.RO}
}

Acknowledgement

Some of the abstractions and implementation was heavily inspired by Isaac Lab.

omnidrones's People

Contributors

btx0424 avatar finani avatar jinwoolee1230 avatar kathiehjy avatar mychoi97 avatar zanghz21 avatar zrz-sh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

omnidrones's Issues

Incompatibility

The workstation installation specifies installing python 3.7 (conda create -n sim python=3.7) which is incompatible with the latest Isaac Sim version (2023.1.1) and should be 3.10 instead.

_RigidPrimView and _ArticulationView

I am not reporting a bug, but if you could, I would like some clarification on two classes. Could you explain me why did you decided to make your own RigidPrimView and ArticulationView?

Question about test_rate_controller.py

Thanks for your work.
Now I am trying to run test_rate_controller.py in example folder.But there is a issue about CUDA.Can you provide me some advices?
Details:
Traceback (most recent call last):
File "/home/omika/Omniverse/OmniDrones/examples/test_rate_controller.py", line 113, in main
frames_vis.append(camera_vis.get_images().cpu())
File "/home/omika/Omniverse/OmniDrones/omni_drones/sensors/camera.py", line 140, in get_images
img_tensor = wp.to_torch(v.get_data(device=self.device))
File "/home/omika/Omniverse/Omniverse_Library/isaac_sim-2023.1.1/extscache/omni.warp.core-1.0.0-beta.2/warp/torch.py", line 218, in to_torch
t = torch.as_tensor(a, device=device_to_torch(a.device))
RuntimeError: The specified pointer resides on host memory and is not registered with any CUDA device.

And I have checked that torch.py in omni.warp.
image
I am sure that a.device is cude:0

Question about the use of custom environment

Dear maintainers,

In accordance with the purpose of this project, I am now trying to develop a RL project on Omnidrones.

I want to train a new task on this platform, so I need to use custom environment. However, I could not find no files related to map except the python files located at Omnidrones/omni_drones/envs. I assume that those python files are defining the environment (map) settings, but I would like to know if there is more intuitive way to set up the training environment (map).

Is there any way to make a map using Isaac Sim, saving the map, and import it while training?
It would be great if it is possible, like other simulators (for example, AirSim).

Maybe this issue is due to my lack of experience on Isaac Sim and Omnidrones but I would be thankful if you could provide instruction on this.

Thank you for your kind help

TDMPC Error

Thank you for creating this library, it really is amazing! However, when running train.py (algo=tdmpc, task=Hover) from /scripts I get the following error:

Traceback (most recent call last):
  File "/home/erin/Thesis/OmniDrones/scripts/train.py", line 104, in main
    policy = ALGOS[cfg.algo.name.lower()](
TypeError: TDMPCPolicy.__init__() got multiple values for argument 'device'

When running the same command from /scripts_paper I get this error:

 File "/home/erin/anaconda3/envs/OmniDrones310/lib/python3.10/copy.py", line 161, in deepcopy
  File "/home/erin/Thesis/OmniDrones/scripts_paper/train.py", line 172, in main
    collector = SyncDataCollector(
  File "/home/erin/Thesis/Utils/rl/torchrl/collectors/collectors.py", line 539, in __init__
    (self.policy, self.get_weights_fn,) = self._get_policy_and_device(
  File "/home/erin/Thesis/Utils/rl/torchrl/collectors/collectors.py", line 178, in _get_policy_and_device
    policy = deepcopy(policy)
----------
  File "/home/erin/anaconda3/envs/OmniDrones310/lib/python3.10/copy.py", line 161, in deepcopy
    rv = reductor(4)
TypeError: cannot pickle 'omni.kit.app._app.IApp' object

Which of the two training files would you recommend using? And how can I resolve this issue?
Kind regards,
Erin

Can not locate "omni.isaac.orbit"

Hi,
I meet an issue after install all the package, could you help me to solve it?
Version: Ubuntu20.04 IsaacSim-2023.1.0-hotfix.1 Python-3.10
After I install all the packages as tutorial and run train.py with my wandb id, it prints the config information and then a bug comes:

[2024-02-07 23:18:13,254][wandb][DEBUG] - no default config file found in config-defaults.yaml
task:
  env:
    num_envs: 4096
    env_spacing: 8
    max_episode_length: 500
  sim:
    dt: 0.016
    substeps: 1
    gravity:
    - 0
    - 0
    - -9.81
    replicate_physics: false
    use_flatcache: true
    use_gpu_pipeline: true
    device: cuda:0
    solver_type: 1
    use_gpu: true
    bounce_threshold_velocity: 0.2
    friction_offset_threshold: 0.04
    friction_correlation_distance: 0.025
    enable_stabilization: true
    gpu_max_rigid_contact_count: 524288
    gpu_max_rigid_patch_count: 163840
    gpu_found_lost_pairs_capacity: 4194304
    gpu_found_lost_aggregate_pairs_capacity: 33554432
    gpu_total_aggregate_pairs_capacity: 4194304
    gpu_max_soft_body_contacts: 1048576
    gpu_max_particle_contacts: 1048576
    gpu_heap_capacity: 67108864
    gpu_temp_buffer_capacity: 16777216
    gpu_max_num_partitions: 8
  name: Hover
  drone_model: Firefly
  force_sensor: false
  time_encoding: true
  reward_effort_weight: 0.1
  reward_action_smoothness_weight: 0.0
  reward_motion_smoothness_weight: 0.0
  reward_distance_scale: 1.2
  action_transform: null
algo:
  name: ppo
  train_every: 32
  ppo_epochs: 4
  num_minibatches: 16
  priv_actor: false
  priv_critic: false
  checkpoint_path: null
headless: true
sim:
  dt: 0.016
  substeps: 1
  gravity:
  - 0
  - 0
  - -9.81
  replicate_physics: false
  use_flatcache: true
  use_gpu_pipeline: true
  device: cuda:0
  solver_type: 1
  use_gpu: true
  bounce_threshold_velocity: 0.2
  friction_offset_threshold: 0.04
  friction_correlation_distance: 0.025
  enable_stabilization: true
  gpu_max_rigid_contact_count: 524288
  gpu_max_rigid_patch_count: 163840
  gpu_found_lost_pairs_capacity: 4194304
  gpu_found_lost_aggregate_pairs_capacity: 33554432
  gpu_total_aggregate_pairs_capacity: 4194304
  gpu_max_soft_body_contacts: 1048576
  gpu_max_particle_contacts: 1048576
  gpu_heap_capacity: 67108864
  gpu_temp_buffer_capacity: 16777216
  gpu_max_num_partitions: 8
env:
  num_envs: 4096
  env_spacing: 8
  max_episode_length: 500
total_frames: 150000000
max_iters: -1
eval_interval: -1
save_interval: -1
seed: 0
viewer:
  resolution:
  - 960
  - 720
  eye:
  - 8
  - 0.0
  - 6.0
  lookat:
  - 0.0
  - 0.0
  - 1.0
wandb:
  group: Hover
  run_name: Hover-ppo
  job_type: train
  entity: afc30efa2dd33891947c0ec7035bbe2f085d9243
  project: omnidrones
  mode: disabled
  run_id: null
  monitor_gym: true
  tags: null

Error executing job with overrides: ['algo=ppo', 'wandb.entity=afc30efa2dd33891947c0ec7035bbe2f085d9243']
Traceback (most recent call last):
  File "/home/rich/OmniDrones/scripts/train.py", line 48, in main
    from omni_drones.envs.isaac_env import IsaacEnv
  File "/home/rich/OmniDrones/omni_drones/envs/__init__.py", line 32, in <module>
    from .pinball import Pinball
  File "/home/rich/OmniDrones/omni_drones/envs/pinball.py", line 43, in <module>
    from omni.isaac.orbit.sensors import ContactSensorCfg, ContactSensor
ModuleNotFoundError: No module named 'omni.isaac.orbit'

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

Is the omni.isaac.orbit an extension of isaacsim? Do we need to download and install it additionally?
THANKS

Feedback Welcomed!

Hello everyone! We hope OmniDrones has provided you with a helpful starting point for conducting RL projects on UAVs.

We understand there could be trouble reading and customizing the codebase without familiarity with Isaac Sim. We would like to learn about your experiences and suggestions regarding the design and functionality of the project. For example, is the code structure too complicated to understand? What other features you are expecting?

I am also glad to engage in discussions and provide support for specific projects you would like to conduct with OmniDrones or Isaac Sim.

Feel free to raise issues!

[Refactor] Better controller interface.

The current implementation of controllers as Transform, though a good abstraction on top of MDPs, can be somehow inflexible in many cases. We would like to

  1. Make controllers as choices of action spaces.
  2. Manage controllers and parameters for different drone models through a registry/factory.

It would be something like:

from omni_drones.control import Controller

class MultirotorBase(RobotBase):
  def __init__(.self, cfg):
    ...
    self.controller = Controller.make(self, cfg)
    self.action_spec = ... # define action_spec accordingly

  def apply_action(self, actions):
    actions = self.controller(self.state, actions)
    ...

This way, we will be able to use substeps:

class SomeEnv(IsaacEnv):
  ...
  def _step(self, tensordict: TensorDictBase):
    actions = tensordict[("agents", "action")]
    for substep in range(self.substeps):
      self.drone.apply_action(actions)
      self.sim.step(...)
    ...

ImportError: cannot import name 'MAPPOPolicy' from 'omni_drones.learning.ppo'

Had an error while running the installation verification.

Cause:

from .mappo import MAPPOPolicy is commented in __init__.py.

(sim) : ~/OmniDrones$ python ./scripts/train.py algo=ppo headless=true wandb.entity=<...>
Traceback (most recent call last):
  File "./scripts/train.py", line 29, in <module>
    from omni_drones.learning.ppo import PPORNNPolicy, PPOPolicy, MAPPOPolicy
ImportError: cannot import name 'MAPPOPolicy' from 'omni_drones.learning.ppo' (~/OmniDrones/omni_drones/learning/ppo/__init__.py)

All Off-policy for Single agent are unavailable (td3, sac etc.)

Thank you very much to you and your team for developing such an amazing repository! Its open sourcing will greatly fill the gap in open-source simulation environments for drones!

While using the code for single-agent training, I encountered issues with algorithms like TD3 and SAC, all reporting the same error:

policy = ALGOS[cfg.algo.name.lower()](
TypeError: SACPolicy.__init__() got multiple values for argument 'device'

As a result, there are currently no available off-policy algorithms for single-agent training in this code repository, which we deeply regret.

Please excuse my presumption, but could you or your team possibly address this amidst your busy schedules?

I apologize for intruding on your work and life. Your help in resolving this matter would be greatly appreciated! Once again, thank you for your outstanding work!

wait too long when run train.py

When I run python train.py, I always get the following error. Sometimes it will work after half an hour, sometimes it doesn't work no matter how long I waited. Do you have any view on it? tks!

Screenshot from 2024-06-26 15-14-54

Issues with multi-agent task's quick start commands

Dear maintainers,

I really appreciate your simulator and I hope I could use this as a research platform.
However, I could find some issues related to multi-agent tasks.

  1. Platform hover quick start command: python train.py task=PlatformHover algo=mappo headless=true eval_interval=300 total_frames=150_000_000 does not work but it works when the algo=ppo. I am not so sure is there going to be any issue or not but I think this is not a major issue though.
    I get Error executing job with overrides: ['task=Formation', 'algo=mappo', 'headless=false', 'eval_interval=300', 'total_frames=150_000_000'] RuntimeError: TensorDictModule failed with operation error
  2. Formation task does not work neither in algo=ppo nor algo=mappo.
    I get Error executing job with overrides: ['task=Formation', 'algo=ppo', 'headless=false', 'eval_interval=300', 'total_frames=150_000_000'] RuntimeError: TensorDictModule failed with operation error

Can you please give me some instructions about these issues?

Thank you so much for your kind help and instructions.

Could you add requirements for the repo?

I have a question about torchrl when i run train.py as:
ImportError: cannot import name '_replace_last' from 'torchrl.envs.utils'

I have tried install all versions of torchrl as list in pip website, but cannot solve it.

Compatibility Issues with IsaacSim 2023, Orbit, TorchRL, and TensorDict

Dear Maintainers,

First and foremost, I would like to express my appreciation for your work on this repository. It exhibits significant potential, and our research group is keen on utilizing it for our project. Unfortunately, we have encountered compatibility issues during execution that we hope to resolve with your guidance.

Environment Setup:

  • IsaacSim Version: 2023 Release
  • Python Version: 3.10.13
  • Installed Packages: OmniDrones, TensorDict, TorchRL (no errors during installation)
  • Orbit Installation: Followed instructions from Orbit Installation Guide (no errors, but received compatibility warnings)

Issue Encountered:
Upon attempting to execute the train.py script within the scripts folder, an error occurs:

Error executing job with overrides: ['headless=true'] Traceback (most recent call last): File "/home/onur/Downloads/OmniDrones/scripts/train.py", line 128, in main ... AttributeError: 'Tensor' object has no attribute '_exclude'

This error suggests a compatibility issue between the Orbit package and the TorchRL and TensorDict libraries, which is impeding our progress.

Request for Assistance:
Could you provide any insights or solutions to address this compatibility issue? Any guidance or updates to resolve these conflicts would be greatly appreciated.

Thank you in advance for your time and assistance. We look forward to your response and hope to continue using this valuable resource for our research.

Best regards,

Support customizing payload in PayloadTrack

Hello I am looking for the simulation of a particular payload, specifically a cilinder with a liquid inside. I would be happy to work on this an contribute with a pull requeat but I am very new to Isaac sim. Therefore, I would like to ask for any pointers that could help me implement this, it would be greatly appreciated!

Regards!

System Requirements

hello!
thanks for your help!
I want to run some simple task like train.py task=hover headless=false only on my laptop (I have changed the task.env.num_envs=${a_small_number_like_4}), what is the suitable configuration for my laptop? How about RTX4080 VRAM12G , Intel Core i9, RAM 32G? I want to buy a laptop to train obstacle avoidance strategy for quadrotor, and I just use headless=false to build and change the scene, and then use headless=true to train strategy.
thanks for your reply!

forest.py error when run script/train_lidar.py

Hi all,

when i run python train_lidar.py headless=true eval_interval=200 task=Forest task.lidar_range=4. task.lidar_vfov=[-10.,20.]got error:

Error executing job with overrides: ['headless=true', 'eval_interval=200', 'task=Forest', 'task.lidar_range=4.', 'task.lidar_vfov=[-10.,20.]']
Traceback (most recent call last):
  File "/home/user/learn-OmniDrones/scripts/train_lidar.py", line 200, in main
    base_env = env_class(cfg, headless=cfg.headless)
  File "/home/user/miniconda3/envs/orbit/lib/python3.10/site-packages/torchrl/envs/common.py", line 158, in __call__
    instance: EnvBase = super().__call__(*args, **kwargs)
  File "/home/user/learn-OmniDrones/omni_drones/envs/forest.py", line 133, in __init__
    self.lidar._initialize_impl()
  File "/home/user/orbit/source/extensions/omni.isaac.orbit/omni/isaac/orbit/sensors/ray_caster/ray_caster.py", line 136, in _initialize_impl
    raise RuntimeError(f"Failed to find a prim at path expression: {self.cfg.prim_path}")
RuntimeError: Failed to find a prim at path expression: /World/envs/env_*/Hummingbird_0/base_link

env: installed orbit, ISAAC_SIM 2023.1.0-hotfix.


remarks:

isaac-sim/IsaacLab#236 this issue is similar to mine, but it's not working for me.

I've checked there exists /World/envs/env_1023/Hummingbird_0/base_link in simulator

I think it might be issues with wildcard (env_*), since when i changed env_* to env_0, this error solved. ( which caused another error File "/home/user/learn-OmniDrones/omni_drones/envs/forest.py", line 335, in _compute_state_and_obs (self.lidar.data.ray_hits_w - self.lidar.data.pos_w.unsqueeze(1)) RuntimeError: shape '[1024, 1, 36, 4]' is invalid for input of size 144)

feat: ros1 odometry graph

I have created a new ROSOdometry OmniGraph, which uses omni.isaac.core_nodes.IsaacComputeOdometry to get the drone's current odometry and publishes it to ROS1 Odometry topic using omni.isaac.ros_bridge.ROSPublishOdometry, but the Odometry message doesn't change as i use command rostopic echo /odom to observe, can anyone help me briefly analyze the reason? The test code and the results are shown as follows:
'''
import torch
import hydra
from omegaconf import OmegaConf
from omni_drones import CONFIG_PATH, init_simulation_app

@hydra.main(version_base=None, config_path=".", config_name="demo")
def main(cfg):
OmegaConf.resolve(cfg)
simulation_app = init_simulation_app(cfg)
print(OmegaConf.to_yaml(cfg))

import omni_drones.utils.scene as scene_utils
from omni.isaac.core.simulation_context import SimulationContext
from omni_drones.controllers import LeePositionController
from omni_drones.robots.drone import MultirotorBase
from omni_drones.utils.torch import euler_to_quaternion
from omni_drones.sensors.camera import Camera, PinholeCameraCfg
import dataclasses
from omni.isaac.core.utils import extensions
# enable ROS bridge extension
extensions.enable_extension("omni.isaac.ros_bridge")

sim = SimulationContext(
    stage_units_in_meters=1.0,
    physics_dt=cfg.sim.dt,
    rendering_dt=cfg.sim.dt,
    sim_params=cfg.sim,
    backend="torch",
    device=cfg.sim.device,
)
n = 1

drone_cls = MultirotorBase.REGISTRY[cfg.drone_model]
drone = drone_cls()

translations = torch.zeros(n, 3)
translations[:, 1] = torch.arange(n)
translations[:, 2] = 0.5
drone.spawn(translations=translations)

import omni.graph.core as og
# from pxr import Gf, Usd, UsdGeom
import usdrt.Sdf
camera_keys = og.Controller.Keys
odom_keys = og.Controller.Keys

drone_odom_primpath = "/World/envs/env_0/Hummingbird_0/ODOMGRAPH"
drone_baselink_path = "/World/envs/env_0/Hummingbird_0/base_link"

(drone_ros_odom_graph, _, _, _) = og.Controller.edit(
{
    "graph_path": drone_odom_primpath,
    "evaluator_name": "execution",
},
{
    odom_keys.CREATE_NODES: [
        ("OnTick", "omni.graph.action.OnTick"),
        ("ReadSimTime", "omni.isaac.core_nodes.IsaacReadSimulationTime"),
        ("computeOdom", "omni.isaac.core_nodes.IsaacComputeOdometry"),
        ("Ros1PublishOdometry", "omni.isaac.ros_bridge.ROS1PublishOdometry"),
    ],
    odom_keys.CONNECT: [
        ("OnTick.outputs:tick", "computeOdom.inputs:execIn"),
        ("computeOdom.outputs:execOut","Ros1PublishOdometry.inputs:execIn"),
        ("computeOdom.outputs:position","Ros1PublishOdometry.inputs:position"),
        ("computeOdom.outputs:orientation","Ros1PublishOdometry.inputs:orientation"),
        ("computeOdom.outputs:linearVelocity","Ros1PublishOdometry.inputs:linearVelocity"),
        ("computeOdom.outputs:angularVelocity","Ros1PublishOdometry.inputs:angularVelocity"),
        ("ReadSimTime.outputs:simulationTime","Ros1PublishOdometry.inputs:timeStamp"),
    ],
    odom_keys.SET_VALUES: [
        ("ReadSimTime.inputs:resetOnStop", False),
        ("ReadSimTime.inputs:swhFrameNumber", 0),
        ("Ros1PublishOdometry.inputs:nodeNamespace", ""),
        ("Ros1PublishOdometry.inputs:odomFrameId", "odom"),
        ("Ros1PublishOdometry.inputs:chassisFrameId", "base_link"),
        ("Ros1PublishOdometry.inputs:topicName", "odom"),
        ("Ros1PublishOdometry.inputs:queueSize", 1),
        ("computeOdom.inputs:chassisPrim", [usdrt.Sdf.Path(drone_baselink_path)]),
    ],
},
)

og.Controller.evaluate_sync(drone_ros_odom_graph)
scene_utils.design_scene()

sim.reset()
drone.initialize()

# let's fly a circular trajectory
radius = 1.5
omega = 1.
phase = torch.linspace(0, 2, n+1, device=sim.device)[:n]

def ref(t):
    _t = phase * torch.pi + t * omega
    pos = torch.stack([
        torch.cos(_t) * radius,
        torch.sin(_t) * radius,
        torch.ones(n, device=sim.device) * 1.5
    ], dim=-1)
    vel_xy = torch.stack([
        -torch.sin(_t) * radius * omega,
        torch.cos(_t) * radius * omega,
    ], dim=-1)
    yaw = torch.atan2(vel_xy[:, 1], vel_xy[:, 0])
    return pos, yaw

init_rpy = torch.zeros(n, 3, device=sim.device)
init_pos, init_rpy[:, 2] = ref(torch.tensor(0.0).to(sim.device))
init_rot = euler_to_quaternion(init_rpy)
init_vels = torch.zeros(n, 6, device=sim.device)

# create a position controller
# note: the controller is state-less (but holds its parameters)

controller = LeePositionController(g=9.81, uav_params=drone.params).to(sim.device)

def reset():
    drone._reset_idx(torch.tensor([0]))
    drone.set_world_poses(init_pos, init_rot)
    drone.set_velocities(init_vels)
    # flush the buffer so that the next getter invocation 
    # returns up-to-date values
    sim._physics_sim_view.flush() 

reset()
drone_state = drone.get_state()[..., :13].squeeze(0)

import time
# time.sleep(10)
from tqdm import tqdm
for i in tqdm(range(1000)):
    if sim.is_stopped():
        break
    if not sim.is_playing():
        sim.render()
        continue
    ref_pos, ref_yaw = ref((i % 1000)*cfg.sim.dt)
    action = controller(drone_state, target_pos=ref_pos, target_yaw=ref_yaw)
    drone.apply_action(action)
    sim.step(render=True)
    if i % 1000 == 0:
        reset()
    drone_state = drone.get_state()[..., :13].squeeze(0)
simulation_app.close()

if name == "main":
main()
'''
image
image

Can I use omni_drones in extentions?

For some reason, it is more convience for me to use omni_drones in extensions rather than standalone applications, like tuning some parameters in pid controllers.

So I wonder is it possible to do that?

Debugging with VSCode causes `Inconsistency detected by ld.so` when calling SimulationApp

When I tried to debug the train.py file using VSCode, I could not start the Isaac Sim's SimulationApp, which led to the following error:

[4.786s] Simulation App Starting Inconsistency detected by ld.so: ../elf/dl-tls.c: 618: _dl_allocate_tls_init: Assertion 'listp != NULL' failed!

However, the file was running without the debug.

This was an issue of the form:

/miniconda3/envs/sim/bin/../lib/libstdc++.so.6: error: version lookup error: version 'GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1)

I followed the instruction from Jason - StackOverflow and created the link to libstdc++.so.6 in my environment using:

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 <PATH_TO_CONDA/MINICONDA>/miniconda3/envs/sim/bin/../lib/libstdc++.so.6

and I was able to run the debugger in VSCode.

I am posting this in case someone has the same issue.

AttributeError: 'NoneType' object has no attribute 'GetPath'

When I wanted to verify whether it was installed correctly and run python train.py algo=ppo headless=true wandb.entity=YOUR_WANDB_ENTITY, an error AttributeError: 'NoneType' object has no attribute 'GetPath' occurred

`Error executing job with overrides: ['algo=ppo', 'headless=true']
Traceback (most recent call last):
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
return func()
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 458, in
lambda: hydra.run(
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/hydra.py", line 132, in run
_ = ret.return_value
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/core/utils.py", line 260, in return_value
raise self._return_value
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/core/utils.py", line 186, in run_job
ret.return_value = task_function(task_cfg)
File "/home/studj/OmniDrones/scripts/train.py", line 51, in main
base_env = env_class(cfg, headless=cfg.headless)
File "/home/studj/Documents/rl/torchrl/envs/common.py", line 177, in call
instance: EnvBase = super().call(*args, **kwargs)
File "/home/studj/OmniDrones/omni_drones/envs/single/hover.py", line 122, in init
super().init(cfg, headless)
File "/home/studj/OmniDrones/omni_drones/envs/isaac_env.py", line 134, in init
global_prim_paths = self._design_scene()
File "/home/studj/OmniDrones/omni_drones/envs/single/hover.py", line 192, in _design_scene
kit_utils.create_ground_plane(
File "/home/studj/OmniDrones/omni_drones/utils/kit.py", line 84, in create_ground_plane
collision_prim_path = prim_utils.get_prim_path(
File "/home/studj/.local/share/ov/pkg/isaac-sim-2023.1.0-hotfix.1/exts/omni.isaac.core/omni/isaac/core/utils/prims.py", line 349, in get_prim_path
return prim.GetPath()
AttributeError: 'NoneType' object has no attribute 'GetPath'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/studj/OmniDrones/scripts/train.py", line 246, in
main()
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/main.py", line 94, in decorated_main
_run_hydra(
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
_run_app(
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 457, in _run_app
run_and_report(
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 222, in run_and_report
if _is_env_set("HYDRA_FULL_ERROR") or is_under_debugger():
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 172, in is_under_debugger
frames = inspect.stack()
File "/home/studj/anaconda3/envs/sim/lib/python3.10/inspect.py", line 1673, in stack
return getouterframes(sys._getframe(1), context)
File "/home/studj/anaconda3/envs/sim/lib/python3.10/inspect.py", line 1650, in getouterframes
frameinfo = (frame,) + getframeinfo(frame, context)
File "/home/studj/anaconda3/envs/sim/lib/python3.10/inspect.py", line 1624, in getframeinfo
lines, lnum = findsource(frame)
File "/home/studj/anaconda3/envs/sim/lib/python3.10/inspect.py", line 952, in findsource
module = getmodule(object, file)
File "/home/studj/anaconda3/envs/sim/lib/python3.10/inspect.py", line 869, in getmodule
if ismodule(module) and hasattr(module, 'file'):
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/wandb/util.py", line 219, in getattribute
state.load()
File "/home/studj/anaconda3/envs/sim/lib/python3.10/site-packages/wandb/util.py", line 212, in load
self.module.spec.loader.exec_module(self.module)
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/home/studj/.local/share/ov/pkg/isaac-sim-2023.1.0-hotfix.1/exts/omni.pip.cloud/pip_prebundle/azure/storage/blob/init.py", line 10, in
from ._blob_client import BlobClient
File "/home/studj/.local/share/ov/pkg/isaac-sim-2023.1.0-hotfix.1/exts/omni.pip.cloud/pip_prebundle/azure/storage/blob/_blob_client.py", line 17, in
from typing_extensions import Self
ImportError: cannot import name 'Self' from 'typing_extensions' (/home/studj/.local/share/ov/pkg/isaac-sim-2023.1.0-hotfix.1/kit/exts/omni.kit.pip_archive/pip_prebundle/typing_extensions.py)`

Error running "python train.py algo=ppo task=Payload/PayloadTrack headless=true wandb.entity=atahirkarasahin-xxxx"

Hi there, I hope it finds you well.
I'm using isaac-sim-2023.1.0-hotfix.1. I followed through your instructions on Installation and successfully came to "Running the RL Scripts". I can run python train.py task=Hover headless=true and see results on wandb.

However, I can‘t run python "python train.py algo=ppo task=Payload/PayloadTrack headless=true wandb.entity=atahirkarasahin-xxxx". The error message is:

Error executing job with overrides: ['algo=ppo', 'task=Payload/PayloadTrack', 'headless=true', 'wandb.entity=atahirkarasahin-xxxxxxx]
Traceback (most recent call last):
File "/home/taka/OmniDrones/scripts_paper/train.py", line 292, in
main()
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/main.py", line 94, in decorated_main
_run_hydra(
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
_run_app(
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 457, in _run_app
run_and_report(
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
raise ex
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
return func()
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 458, in
lambda: hydra.run(
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/_internal/hydra.py", line 132, in run
_ = ret.return_value
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/core/utils.py", line 260, in return_value
raise self._return_value
File "/home/taka/miniconda3/envs/omnisim/lib/python3.10/site-packages/hydra/core/utils.py", line 186, in run_job
ret.return_value = task_function(task_cfg)
File "/home/taka/OmniDrones/scripts_paper/train.py", line 159, in main
policy = algos[cfg.algo.name.lower()](cfg.algo, agent_spec=agent_spec, device="cuda")
KeyError: 'ppo'

Can you help me with it? My second question is follow: I want to running payload track benchmarking. Which commend this proceed started?

rotor is not rotating

In my case, the rotor is not rotating when do simultation. Though it doesn't influence the results, but it looks weird. I wonder is this a bug or something?

By the way, I use Hummingbird for simulation.

not able to set up the conda environment

I'm trying to set up the conda environment as mentioned at the start of the installation page in the documentation.

after running

# at OmniDrones/
cp -r conda_setup/etc $CONDA_PREFIX
# re-activate the environment
conda activate sim

however, I'm getting the following error
/home/vs/.local/share/ov/pkg/isaac_sim-2023.1.1/setup_conda_env.sh:.:20: no such file or directory: /home/vs/Developer/ai-safety-drone/OmniDrones/setup_python_env.sh

I looked into the directory structure and I believe that the setup_python_env.sh has been replaced by 2 env_vars.sh scripts in activate.d and deactivate.d folders. Is this correct, how to resolve the situation?
Thanks!

Error running "python train.py task=Hover total_frames=100_000_000 eval_interval=60 headless=true"

Hi there, I hope it finds you well.
I'm using Issac Sim 2023.1.1. I followed through your instructions on Installation and successfully came to "Running the RL Scripts".
I can run python train.py task=Hover headless=true and see results on wandb.
but I can‘t run python train.py task=Hover total_frames=100_000_000 eval_interval=60 headless=true
the error message is:

2024-02-26 12:44:35 [534,839ms] [Error] [omni.physx.plugin] Transformation change on non-root links is not supported. Link: /World/envs/env_1237/Firefly_0/rotor_4
2024-02-26 12:44:35 [534,839ms] [Error] [omni.physx.plugin] Transformation change on non-root links is not supported. Link: /World/envs/env_124/Firefly_0/rotor_4
2024-02-26 12:44:35 [534,839ms] [Error] [omni.physx.plugin] Transformation change on non-root links is not supported. Link: /World/envs/env_2141/Firefly_0/rotor_4
2024-02-26 12:44:35 [534,839ms] [Error] [omni.physx.plugin] Transformation change on non-root links is not supported. Link: /World/envs/env_1242/Firefly_0/rotor_4
2024-02-26 12:44:35 [534,843ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::setGlobalPose(): it is illegal to call this method if PxSceneFlag::eENABLE_DIRECT_GPU_API is enabled!, FILE /buildAgent/work/eb2f45c4acc808a0/physx/source/physx/src/NpArticulationLink.cpp, LINE 343
2024-02-26 12:44:35 [534,843ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::setGlobalPose(): it is illegal to call this method if PxSceneFlag::eENABLE_DIRECT_GPU_API is enabled!, FILE /buildAgent/work/eb2f45c4acc808a0/physx/source/physx/src/NpArticulationLink.cpp, LINE 343
2024-02-26 12:44:35 [534,843ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::setGlobalPose(): it is illegal to call this method if PxSceneFlag::eENABLE_DIRECT_GPU_API is enabled!, FILE /buildAgent/work/eb2f45c4acc808a0/physx/source/physx/src/NpArticulationLink.cpp, LINE 343
2024-02-26 12:44:36 [535,909ms] [Error] [omni.physx.tensors.plugin] GPU tensor function getRootTransforms can only be called after at least one simulation step was performed!

Can you help me with it?

Which version of torchrl and tensordict do I need to install when I want to run the distribution based on isaac sim 2022.2.0?

Hello, recently I want to try Omnidrones in my project. But I met some problems. I want to use the Omnidrones program based on the isaac sim2022.2.0 version, but the latest versions of torchrl and tensordict libraries only support python3.8 and later versions. However, when I use the old versions of torchrl and tensordict libraries, they are not compatible with the Omnidrones codes. How can I solve this problem?
I‘m looking forward to your early reply.

How to show env design_scene without running train.py?

Hi,
I want to show the design_scene in "omni_drones/envs" to build and change my simulation scenario, but I don't know how to do this with out running "python train.py"
I'm now using headless mode, I can only use "python train.py task=Hover total_frames=100_000_000 eval_interval=60 headless=true" to show video in wandb.com, so I also want to use Omniverse Streaming Client to show my simulation scenario, could you please give me some advice on these two questions?
Thanks !

train_lidar.py KeyError: 'Forest'

Hi, thanks for providing this great project. I would like to try train_lidar for forest navigation task. I have completed the environment setup and run the example demo train.py without issue. My Isaac Sim version is: 2023.1.0-hotfix. Below is my output:

Traceback (most recent call last):
  File "/home/zhefan/isaac-sim/OmniDrones/scripts/train_lidar.py", line 397, in <module>
    main()
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/main.py", line 94, in decorated_main
    _run_hydra(
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
    _run_app(
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 457, in _run_app
    run_and_report(
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
    raise ex
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
    return func()
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/utils.py", line 458, in <lambda>
    lambda: hydra.run(
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/_internal/hydra.py", line 132, in run
    _ = ret.return_value
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/core/utils.py", line 260, in return_value
    raise self._return_value
  File "/home/zhefan/Packages/miniconda3/envs/sim/lib/python3.10/site-packages/hydra/core/utils.py", line 186, in run_job
    ret.return_value = task_function(task_cfg)
  File "/home/zhefan/isaac-sim/OmniDrones/scripts/train_lidar.py", line 200, in main
    env_class = IsaacEnv.REGISTRY[cfg.task.name]
KeyError: 'Forest'

I appreciate your suggestions and thanks in advance.

Error when import omni

Thank you for your great work. I tried to install OmniDrones on windows10, and got the following error:
from omni.isaac.kit import SimulationApp: ModuleNotFoundError: No module named 'omni'

ROS2 Support or ROS1 Support

I am currently utilizing the library with great efficiency and have found it to be immensely beneficial. I am deeply grateful for the work that has gone into its development.
May I kindly inquire if there are any forthcoming plans to enhance its capabilities by incorporating support for ROS1 or ROS2?? Your efforts are greatly appreciated.

Deployment on server

In our lab, we don't have workstation for researcher, so is there any way to deploy the whole environment on a headless server?

Stable_baselines3

Hello,can I use stable_baselines3 to work with the omnidrones platform. My algo work was on the stable_baselines3,and I want to migrate it. How can I modify the algo part in Omnidrones?

TorchRL, TensorDict version is not supported (+ Fix minor things)

Thank you for your tremendous and fantastic approach, first.
It would be an enormous help to related works.

Nvidia Isaac Sim has a built-in Python, and its version is 3.7.
I think that is the reason the conda environment is python=3.7 (Installation).

A few days ago, I was trying to install OmniDrones and encountered an issue related to 'TensorDictParams'.
I have checked it is a new feature in TensorDict 0.2.0 (PR).
So, I tried to install TensorDict 0.2.0 (pip) and TorchRL 0.2.0 (pip) from pip, but they all support Python only from 3.8 to 3.11.
I got errors about Processing from Typing, which is a new feature in Python 3.8 when I installed them from git repos and ran OmniDrones.

Thankfully, I was able to successfully install and test OmniDrones with the newly updated guide.
However, I am just wondering if it will be okay in future versions.
(Is it okay to use packages that support Python 3.8 or higher in a Python 3.7 environment?)

I also fixed small problems with the docs and setup.py.
Thanks!

Error when run transformers

When I use velocity control, there occur a issue, I think the following code in the file omni_drones/utils/torchrl/transforms.py should change from:

input_spec[("_action_spec", *self.action_key)] = spec

to

input_spec[("full_action_spec", *self.action_key)] = spec

question about the "Deployment on Crazyflie 2.1" experiment

Hi,
Thank you for the nice work. I have noticed that your tutorial has a sim2real project that is trained with crazyfile 2.1. Because the crazy file(crazyswarm) is developed based on the gazebo, and you are training the rate controller. I wonder if I can use the gazebo as my test environment to test whether the trained rate controller is useful to a real drone. Firstly, I trained the track task with hummingbirds in your code, then obtained gazebo's drone state and packed them to tensordict. Then passed them to the trained network. But the result is not work and I have noticed that you mentioned you have done some domain randomization. It's very hard for me to follow the controller cause I don't know the specific unit and I don't know if I need to do some unit transform for gazebo data. Could you please tell me some details about this experiment if possible?
Thanks a lot.
Gloria

PhysX Plugin Errors on Executing Demo and Test Scripts

Dear Developers,

I hope this message finds you well. I am reaching out to report a couple of issues encountered while working with the examples provided in the repository. These errors are related to the PhysX plugin when attempting to execute demo_drone.py and test_dragon.py from the examples directory. Your assistance in resolving these would be greatly appreciated, as it would significantly aid in the continuation of our project work.

Issue 1: Error executing demo_drone.py

  • File: demo_drone.py in the examples directory
  • Error Message:
    2024-02-08 10:37:52 [9,598ms] [Error] [omni.physx.plugin] Transformation change on non-root links is not supported. Link: /World/envs/env_0/Hummingbird_1/rotor_2 2024-02-08 10:37:52 [9,598ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::setGlobalPose(): it is illegal to call this method if PxSceneFlag::eENABLE_DIRECT_GPU_API is enabled!, FILE /buildAgent/work/eb2f45c4acc808a0/physx/source/physx/src/NpArticulationLink.cpp, LINE 343

Issue 2: Error executing test_dragon.py

  • File: test_dragon.py in the examples directory
  • Error Message:
    2024-02-08 10:44:25 [7,861ms] [Error] [omni.physx.plugin] Transformation change on non-root links is not supported. Link: /World/envs/env_0/dragon_0/link_3/rotor_1

Both errors seem to point towards limitations or issues within the PhysX plugin regarding transformation changes on non-root links. This is impacting our ability to successfully run the provided examples and further explore the capabilities of your framework.

Could you please provide guidance on how to resolve or work around these errors? Any advice or updates that could help us overcome these issues would be immensely valuable.

Thank you for your time and effort in maintaining this project. We look forward to any support you can offer to help us address these challenges.

Best regards,

Error when initialize drone with "track_contact_forces: bool = True"

Hello, I want to use self.drone.base_link.get_net_contact_forces() to show the collisions of drone, but after I set track_contact_forces: bool = True in self.drone.initialize(), I get the following error:
[Error] [omni.physx.plugin] PhysX error: PxArticulationLink::setGlobalPose(): it is illegal to call this method if PxSceneFlag::eENABLE_DIRECT_GPU_API is enabled!, FILE /buildAgent/work/74336105e89c4a74/source/physx/src/NpArticulationLink.cpp, LINE 343
so how to show the collision situations of multirotor drone? I want to avoid any collisions during my training, thanks for your help!

Error when running python train.py task=Hover total_frames=100_000_000 eval_interval=60 headless=true

hi!
I'm using isaac-sim:4.0.0, when running python train.py task=Hover total_frames=100_000_000 eval_interval=60 headless=true (enable evaluation (which would record a video clip for visulization) during training), there is an error:

Error executing job with overrides: ['task=Hover', 'total_frames=100_000_000', 'eval_interval=60', 'headless=true']
Traceback (most recent call last):
File "/omni_wjk/scripts/train.py", line 183, in main
info.update(evaluate())
File "/isaac-sim/exts/omni.isaac.ml_archive/pip_prebundle/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "/omni_wjk/scripts/train.py", line 123, in evaluate
trajs = env.rollout(
File "/root/anaconda3/envs/sim/lib/python3.10/site-packages/torchrl/envs/common.py", line 2432, in rollout
tensordicts = self._rollout_nonstop(**kwargs)
File "/root/anaconda3/envs/sim/lib/python3.10/site-packages/torchrl/envs/common.py", line 2530, in _rollout_nonstop
callback(self, tensordict)
File "/omni_wjk/omni_drones/utils/torchrl/env.py", line 95, in call
frame = env.render(mode="rgb_array")
File "/omni_wjk/omni_drones/envs/isaac_env.py", line 377, in render
return rgb_data[:, :, :3]
IndexError: too many indices for array: array is 1-dimensional, but 3 were indexed

it seems like rgb_data is empty, how can i fix this problem? Thanks for your help!

Hardware Configuration

What is the recommanded hardware configuration to run OmniDrones? I had download isaac sim and opened it.But my cpu is full and isaac sim is unresponsive for seconds.
Here is my Laptop:ROG Zephyurs G14 air. AMD R9 8945HS;RTX 4060 8G;32G RAM

"it is illegal to call this method if PxSceneFlag::eENABLE_DIRECT_GPU_API is enabled!" while setting headless=False

Dear Maintainers,

First of all, I really do appreciate your effort and work done on this project and I strongly believe this project is going to be a game-changer in RL-based control on UAV. I hope I could follow up on your simulation setup instruction and work on it.

I was following up the Omnidrones 0.1 documents for the installation, and I had slight warnings during the installation process but did not have any critical errors. So I reached to verification part of your instruction on "Workstation installation".

When I ran the command:
python3 train.py algo=ppo headless=true wandb.entity=YOUR_WANDB_ENTITY
it worked for many iterations without problem.

Aftter this, I wanted to check the progress of in the simulation so I disabled healess option on command so I ran this:
python3 train.py algo=ppo headless=false wandb.entity=YOUR_WANDB_ENTITY
and I have encountered numerous repitition of following error:

2024-03-01 09:53:25 [132,786ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::setGlobalPose(): it is illegal to call this method if PxSceneFlag::eENABLE_DIRECT_GPU_API is enabled!, FILE /buildAgent/work/eb2f45c4acc808a0/physx/source/physx/src/NpArticulationLink.cpp, LINE 343
I thought this is issue with some kind of initial setting of the simulation but I could not find any of related codes.. I might be lacking in skills but I think some of the other users are suffering from same error message.

could you please give me some insights about this issue?

Thank you so much for creating this amazing platform, and I cannot wait to do some RL project on this.

Cannot import torch

Hi, I hope it finds you well!
I'm using Issac Sim 2023.1.0.hotfix, python3.7, and I cannot import pytorch, would you please help me with it?
I created a python env with conda and copied configuration file from Omnidrones.
I can run python -c "from omni.isaac.kit import SimulationApp"
But I can't run python -c "import torch; print(torch.__path__)", errors are like that:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/comb/.local/share/ov/pkg/isaac_sim-2023.1.0-hotfix.1/extscache/omni.pip.torch-2_0_1-2.0.2+105.1.lx64/torch-2-0-1/torch/__init__.py", line 454, in <module>
    ''').strip()) from None
ImportError: Failed to load PyTorch C extensions:
    It appears that PyTorch has loaded the `torch/_C` folder
    of the PyTorch repository rather than the C extensions which
    are expected in the `torch._C` namespace. This can occur when
    using the `install` workflow. e.g.
        $ python setup.py install && python -c "import torch"

    This error can generally be solved using the `develop` workflow
        $ python setup.py develop && python -c "import torch"  # This should succeed
    or by running Python from a different directory.

I'm really confused. Looking forward to your reply!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.