• Stars
    star
    132
  • Rank 272,645 (Top 6 %)
  • Language
    C#
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Connect a ROS-enabled robot to Unity

ROS Reality

If you'd like to cite ROS Reality, see this paper:

Whitney, D., Rosen, E., Phillips, E., Konidaris, G. and Tellex, S., 2017. Comparing Robot Grasping Teleoperation across Desktop and Virtual Reality with ROS Reality. In Proceedings of the International Symposium on Robotics Research.

Hi! Welcome to ROS Reality, a package made by the Humans to Robots Lab at Brown University. This package connects a ROS network to a Unity scene over the internet, passing messages back and forth. We also wrote a C# URDF parser, which you can find demoed in the provided scenes. We built this package for displaying and controlling a Baxter robot with a virtual reality headset, so the package is geared towards that, but the pacakge could be used for any project that needs a connection between ROS and Unity.

Dependencies

Currently only tested on Windows 10. The only large change needed to make this MacOS or Linux compatible is finding a new websocket library.

Installation

  1. Download and install ros_reality_bridge on your robot computer. Follow instructions there.
  2. Download and install Unity 2017.1
  3. Install git LFS. Some of the mesh files of baxter get pretty big, so LFS makes this much easier.
  4. Clone this repo
  5. Open repo as new project

Scenes

There are 4 scenes that show off different ways to interact with the robot.

  1. Crane Game Control - The touchpad controls the movement of the robot
  2. Menu Demo - Demo showing how to build a menu
  3. Position Control - The robot gripper is controller with the trigger, and the position of the end effector moves to the position of the controller with the controller side buttons (grips) are pressed down.
  4. Trajectory Control - The robot gripper is controller with the trigger, and the position of the end effector is controlled by the trajectory of the controller when the side buttons are pressed down.

Branches

We suggest using master, but feel free to look at other branches for extensions of this work.

gary-branch: ROS Reality for the PR2

json: Rather than use our custom string format to send robot joint data from ROS to Unity, we format it as a JSON string. If you use this, pull from the json branch on the ROS_Reality github page.

lfd: Branch for performing learning from demonstrations in VR. Pull the associated ROS_reality git branch

multiplayer: Allows for multiple humans to be in the VR scene.

Nao: ROS Reality for the Nao.

More Repositories

1

pomdp-py

A framework to build and solve POMDP problems. Documentation: https://h2r.github.io/pomdp-py/
Python
203
star
2

burlap_caffe

Java
54
star
3

burlapcraft

Java
37
star
4

java_rosbridge

A simple library using Jetty 9 to connect Java to a rosbridge server. Supports publishing and subscribing with different topic delegates
Java
37
star
5

ros_reality_bridge

Bridge to connect ROS network to Unity
CMake
27
star
6

Lang2LTL

Code for paper Lang2LTL: Translating Natural Language Commands to Temporal Robot Task Specification
Python
27
star
7

pidrone_pkg

JavaScript
17
star
8

baxter_h2r_packages

Python
17
star
9

parameterized-imitation-learning

Learning Deep Parameterized Skills from Demonstration for Re-targetable Visuomotor Control
Python
15
star
10

rosTalker

code to send amazon echo speech to text information to a ros topic
JavaScript
11
star
11

ein

Object scanning and pick and place for Baxter.
C++
10
star
12

baxter_face_animation

Face animator for Baxter
Python
7
star
13

sloop

Spatial Language Object-Oriented POMDP (SLOOP)
Python
7
star
14

amdp

Java
5
star
15

burlap_rosbridge

A BURLAP library extension for creating a ROS BURLAP Environment, where the ROS connection is handled via ROS Bridge.
Java
5
star
16

Holobot

Code to visualize a ROS enabled robot on the hololens
C#
5
star
17

kuka_brown

All the code required to use Brown University's Kuka iiwa arm
Shell
4
star
18

burlap_ale

Java
3
star
19

real_sense_ros

ROSBridge interface to the Intel RealSense SDK
Java
3
star
20

lggltl

Language Grounding with GLTL Formulas
Java
3
star
21

ltl-amdp

Code for RSS-2019 paper: Planning with State Abstractions for Non-Markovian Task Specifications
Python
3
star
22

affordances

TeX
3
star
23

color_recognizer

recognizes colour
C++
3
star
24

CartographerKinectTurtlebot

CMake
3
star
25

RobotLearningBaselines

A repository containing algorithms + trained weights for common robot learning baselines. Works out of the box so you can compare your fancy new method to SOTA right away! Based on the amazing RLBench simulator.
Python
3
star
26

baxter_h2r_dev

Packages under development for use with baxter (not quite ready for use by other baxter people)
Java
2
star
27

baxter_face_tracking_demos

A collection of face tracking demos for baxter.
Python
2
star
28

Task-Scoping

Remove irrelevant variables and operators from planning problems via static analysis!
PDDL
2
star
29

language_datasets

This repository holds all language datasets collected by the h2r lab over different papers at a single location with their respective papers.
OCaml
2
star
30

meldon_detection

Separate repo for detection stuff
C
2
star
31

GLAMDP

Code, Datasets, and Supplemental Material for "Accurately and Efficiently Interpreting Human-Robot Instructions of Varying Granularities"
OCaml
2
star
32

VR_Avatar

C#
1
star
33

mocap_optitrack

Working version of mocap_optitrack package for indigo
C++
1
star
34

robocook

Code relating to the Robocook kitchen cooking simulator.
JavaScript
1
star
35

pidrone_hover_pkg

Python
1
star
36

baking

For learning and planning in baking shared autonomy
Java
1
star
37

movo

Repo for Movo maps and packages
1
star
38

leap_baxter

Control Baxter's Arm with a Leap
Python
1
star
39

burlap_msgs

ROS message files relevant to connecting ROS to BURLAP
1
star
40

pidrone_project_sensors

Sensors Project: interfacing with sensors and writing ROS nodes
Python
1
star