Code Monkey home page Code Monkey logo

bulletarm's Introduction


Documentation | Paper | License

BulletArm is a benchmark and learning-environment for robotic manipulation. BulletArm provides a set of standardized benchmark tasks in simulation alongside a collection of baseline algorithms.

Table of Contents

  1. Announcements
  2. Installation
  3. Getting Started
  4. Contributions
  5. Cite

Announcements

June 24, 2022

  • Version 1.0.0 is live!

Install

  1. Clone this repo
    git clone https://github.com/ColinKohler/BulletArm.git
    cd BulletArm
    
  2. Install dependencies
    pip install -r requirements.txt 
    
  3. Install this package
    pip install .
    
    Or add to your PYTHONPATH
    export PYTHONPATH=/path/to/BulletArm/:$PYTHONPATH
    
  4. Run the block stacking demo
    python tutorials/block_stacking_demo.py
    

Getting Started

To get started with BulletArm please see the Getting Started section of the documentation.

Contributions

We hope that other researchers will help us extend this package by adding new tasks, robots, etc. Please see the Contributions section of the documentation for additional details.

Cite

The development of this package was part of the work done for our paper: BulletArm: An Open-Source Robotic Manipulation Benchmark and Learning Framework. Please cite this work if you use our code:

@misc{https://doi.org/10.48550/arxiv.2205.14292,
      doi = {10.48550/ARXIV.2205.14292},
      url = {https://arxiv.org/abs/2205.14292},
      author = {Wang, Dian and Kohler, Colin and Zhu, Xupeng and Jia, Mingxi and Platt, Robert},
      keywords = {Robotics (cs.RO), FOS: Computer and information sciences, FOS: Computer and information sciences},
      title = {BulletArm: An Open-Source Robotic Manipulation Benchmark and Learning Framework},
      publisher = {arXiv},
      year = {2022},
      copyright = {arXiv.org perpetual, non-exclusive license}
} 

Feel free to contact us.

License

BulletArm is distributed under GNU General Public License. See License.

bulletarm's People

Contributors

colinkohler avatar llee-bdai avatar ondrejbiza avatar pointw avatar zxp-s-works 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

Watchers

 avatar  avatar  avatar  avatar

bulletarm's Issues

tkinter error

Hi, I usually get Tkinter problems as below when training. After this happened, I had to reboot my device to free GPU memory cause I could not find the process in the GPU processes table to kill.

100%|████████████████████████████████████████████████| 100/100 [01:16<00:00, 1.31it/s] Action Step:4015; Episode: 992.0; Reward:0.520; Eval Reward:0.000; Explore:0.01; Loss:0Exception ignored in: <function Image.__del__ at 0x7f01fad40440>00:03<00:41, 2.36it/s] Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 3507, in __del__ self.tk.call('image', 'delete', self.name) RuntimeError: main thread is not in main loop Action Step:4045; Episode: 1000.0; Reward:0.480; Eval Reward:0.000; Explore:0.01; LossException ignored in: <function Variable.__del__ at 0x7f01fad239e0>:12<01:14, 1.19it/s] Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 332, in __del__ if self._tk.getboolean(self._tk.call("info", "exists", self._name)): RuntimeError: main thread is not in main loop Action Step:4050; Episode: 1001.0; Reward:0.470; Eval Reward:0.000; Explore:0.01; Loss:Exception ignored in: <function Variable.__del__ at 0x7f01fad239e0> Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 332, in __del__ if self._tk.getboolean(self._tk.call("info", "exists", self._name)): RuntimeError: main thread is not in main loop Action Step:4055; Episode: 1001.0; Reward:0.470; Eval Reward:0.000; Explore:0.01; LossException ignored in: <function Variable.__del__ at 0x7f01fad239e0>:14<01:40, 1.15s/it] Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 332, in __del__ if self._tk.getboolean(self._tk.call("info", "exists", self._name)): RuntimeError: main thread is not in main loop Action Step:4060; Episode: 1001.0; Reward:0.470; Eval Reward:0.000; Explore:0.01; Loss:Exception ignored in: <function Variable.__del__ at 0x7f01fad239e0> Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 332, in __del__ if self._tk.getboolean(self._tk.call("info", "exists", self._name)): RuntimeError: main thread is not in main loop Action Step:4070; Episode: 1005.0; Reward:0.450; Eval Reward:0.000; Explore:0.01; Loss:Exception ignored in: <function Image.__del__ at 0x7f01fad40440>00:15<01:26, 1.01s/it] Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 3507, in __del__ self.tk.call('image', 'delete', self.name) RuntimeError: main thread is not in main loop Action Step:4100; Episode: 1010.0; Reward:0.410; Eval Reward:0.000; Explore:0.01; LossException ignored in: <function Variable.__del__ at 0x7f01fad239e0>:25<01:22, 1.07s/it] Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 332, in __del__ if self._tk.getboolean(self._tk.call("info", "exists", self._name)): RuntimeError: main thread is not in main loop Action Step:4105; Episode: 1011.0; Reward:0.410; Eval Reward:0.000; Explore:0.01; LossException ignored in: <function Variable.__del__ at 0x7f01fad239e0>:26<01:17, 1.02s/it] Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 332, in __del__ if self._tk.getboolean(self._tk.call("info", "exists", self._name)): RuntimeError: main thread is not in main loop Action Step:4110; Episode: 1011.0; Reward:0.410; Eval Reward:0.000; Explore:0.01; Loss:Exception ignored in: <function Variable.__del__ at 0x7f01fad239e0> Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 332, in __del__ if self._tk.getboolean(self._tk.call("info", "exists", self._name)): RuntimeError: main thread is not in main loop Action Step:4115; Episode: 1012.0; Reward:0.410; Eval Reward:0.000; Explore:0.01; Loss:Exception ignored in: <function Variable.__del__ at 0x7f01fad239e0>27<01:20, 1.07s/it] Traceback (most recent call last): File "/home/huy/anaconda3/envs/bullet-arm/lib/python3.7/tkinter/__init__.py", line 332, in __del__ if self._tk.getboolean(self._tk.call("info", "exists", self._name)): RuntimeError: main thread is not in main loop Action Step:4120; Episode: 1012.0; Reward:0.410; Eval Reward:0.000; Explore:0.01; Loss:./run.sh: line 4: 70195 Aborted (core dumped) python bulletarm_baselines/fc_dqn/scripts/main_goal.py --algorithm=dqn --architecture=equi_asr --env=block_stacking --fill_buffer_deconstruct --planner_episode=5

Gym wrapper -- action_space

Hello,
Thanks for the awesome work and open-sourcing the code! Appreciate it.

I was wondering if there was a gym wrapper for the environment? I was specifically trying to generate random episodes which would involve (in a gym environment) something like obs, *_ = env.step(env.action_space.sample()).

What would be the equivalent to this?

Thanks!

Edit: @ColinKohler -- please look at this whenever you get a chance. Thanks!

single process bugs

when run /bulletarm_baselines/fc_dqn/scripts/main.py with num_process = 0, some errors relate to tensor shape occurs. For example:

Traceback (most recent call last):
File "bulletarm_baselines/fc_dqn/scripts/main.py", line 288, in
train()
File "bulletarm_baselines/fc_dqn/scripts/main.py", line 157, in train
planner_actions_star_idx, planner_actions_star = agent.getActionFromPlan(plan_actions)
File "/BulletArm/bulletarm_baselines/fc_dqn/agents/agents_3d/base_3d.py", line 20, in getActionFromPlan
x = plan[:, 0:1]
IndexError: too many indices for tensor of dimension 1

here plan_actions.shape is torch.Size([4]) while expected to be torch.Size([1, 4]) in getActionFromPlan

about tutorials

Thanks for your excellent work,in the tutorials,baseline_demo.py ,creating_a_new_robot.py is empty,when you update?

EOFError raised when creating environment

really good framework for robot manupulation!
but there are some environment files with no init.py file that casued issue
now I'm facing issue with
File "/home/usr1/bash/envs/bulletarm/lib/python3.9/multiprocessing/connection.py", line 388, in _recv
raise EOFError
for both open loop and close loop environments Benchmarks, any ideas how to fix this? thanks a lot

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.