GithubHelp home page GithubHelp logo

cpaxton / costar_stack Goto Github PK

View Code? Open in Web Editor NEW
86.0 14.0 25.0 42.58 MB

Integrated ROS capabilities for planning, predicate inference, gripper control, and perception for use with the KUKA LBR IIWA and Universal Robots.

Home Page: http://cpaxton.github.io/2016/04/15/costar/

License: Other

Python 26.27% CMake 7.57% C++ 63.54% Makefile 0.09% C 2.38% MATLAB 0.04% Shell 0.12%
robot costar lbr-iiwa kuka-lbr gripper universal-robots perception simulation grl predicator

costar_stack's Introduction

CoSTAR

Collaborative System for Task Automation and Recognition

Build Status

CoSTAR is an end-user interface for authoring robot task plans developed at Johns Hopkins University. It includes integrated perception and planning capabilities, plus a Behavior Tree based user interface.

CoSTAR Expert User Demonstration

Our goal is to build a system which facilitates end-user instruction of robots to solve a variety of different problems. CoSTAR allows users to program robots to perform complex tasks such as sorting, assembly, and more. Tasks are represented as Behavior Trees. For videos of our system in action, you can check out the CoSTAR YouTube Channel.

To take full advantage of CoSTAR, you will need an RGB-D camera and supported hardware:

  • a KUKA LBR iiwa or Universal Robots UR5
  • a Robotiq 3-finger gripper or 2-finger gripper
  • a Da Vinci Research Kit -- in development.

This is a project by members of the JHU Laboratory for Computational Sensing and Robotics, namely Chris Paxton, Kel Guerin, Andrew Hundt, and Felix Jonathan. If you find this code useful, please cite:

@article{paxton2017costar,
  title={Co{STAR}: Instructing Collaborative Robots with Behavior Trees and Vision},
  author={Paxton, Chris and Hundt, Andrew and Jonathan, Felix and Guerin, Kelleher and Hager, Gregory D},
  journal={Robotics and Automation (ICRA), 2017 IEEE International Conference on},
  note={Available as arXiv preprint arXiv:1611.06145},
  year={2017}
}

Interested in contributing? Check out the development guidelines, which are a work in progress.

Installation

Check out installation instructions.

We are working on experimental install scripts:

Tests

Run the IIWA test script:

rosrun costar_bringup iiwa_test.py

It will start gazebo and move the arm to a new position. If this test passes, CoSTAR is set up right.

There is a more detailed startup guide.

CoSTAR Packages

For more information on how to collect data for the "block stacking" task, check out the block stacking data collection notes

  • data collection with an rgbd camera
    • Object on Table Segmenter: Utility for dataset collection with depth cameras. It provides a simple process for defining regions of a scene that are table, object, robot etc and generates files accordingly.
  • Locating AR Tag markers with a known shape in an image
    • alvar_data_collection: utilities to define the black and white printed AR tags we use for ar_track_alvar, which define the positions and orientations of objects in space (see the video above).

More minor utilities:

  • making changes to robot path planning scenes with MoveIt
    • moveit_collision_environment: Publishes a MoveIt planning scene that contains the collision object and table that is detected via TF frames defined for those objects.
    • To visualize the current configuration run roslaunch ur5_moveit_config moveit_rviz.launch
  • handling symmetrical objects
    • object_symmetry_republisher: Takes in object information from perception (for example, sp_segmenter) and outputs poses for possible symmetries of that object.

Sister repositories

These are repositories that have been integrated with costar_stack, though not necessarily required depending on your setup. Also see the .travis.yml in this repository for additional repositories that have been used with costar_stack.

Contact

CoSTAR is maintained by Chris Paxton ([email protected]).

Other core contributors include:

  • Felix Jonathan
  • Andrew Hundt

costar_stack's People

Contributors

ahundt avatar bcjiang avatar colincsl avatar cpaxton avatar fjonath1 avatar futureneer avatar jbohren avatar msheckells 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

Watchers

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

costar_stack's Issues

install script

working install script that replaces install_indigo.sh, with documentation

Robot Mode: [NOT CONNECTED]

Hello,

I am trying to use costar_stack without a physical robot in a simple simulation. Everything loads up ok but the robot mode is 'not connected'. I believe this is an error with the iiwa_driver.py script in particular as the vitual joints it uses are not available as I detailed here but maybe there is a simpler solution?

After entering:

roslaunch iiwa_gazebo iiwa_gazebo.launch trajectory:=false
roslaunch costar_bringup iiwa14_s_model.launch sim:=true start_sim:=false

I get the following error to stdout:

[ INFO] [1487866168.621380739, 47.564000000]: MoveitSimpleControllerManager: Waiting for PositionJointInterface_trajectory_controller/follow_joint_trajectory to come up
[ INFO] [1487866173.634137317, 52.565000000]: MoveitSimpleControllerManager: Waiting for PositionJointInterface_trajectory_controller/follow_joint_trajectory to come up
[ERROR] [1487866178.648899862, 57.565000000]: MoveitSimpleControllerManager: Action client not connected: PositionJointInterface_trajectory_controller/follow_joint_trajectory
[ INFO] [1487866178.710239246, 57.627000000]: Returned 0 controllers in list
[ INFO] [1487866178.726409028, 57.643000000]: Trajectory execution is managing controllers
L

However I believe this might be ok as trajectory is set to false in the above commands therefore there should not be a trajectory controller.

Am I missing something simple to change the robot from not connected to connected and then I can servo to different waypoints using the simulator?

If I try to servo to waypoint I get the following stdout:

[WARN] There was a problem with the tf lookup or service:
[WARN] "base_link" passed to lookupTransform argument source_frame does not exist.

base_link is defined in iiwa_driver.py as iiwa_link_0 which is one of the links mentioned as not fitting the urdf world in the iiwa_stack issue linked above.

Install.md

I'm looking through install.md and it seems the setup manually clones a number of repositories. Is there a vcstool or wstool (forgot which) which provides correct working commit information?

Preemption on all node components

It would be useful to actually do preemption on all nodes, so the tree will stop its execution if something has been acquiring the robot action.

SmartMove query

internally:

  • performs smartmove
  • returns list of candidate poses in ranked order

as an "action":

  • purple "knowledge" node
  • sets rosparam to this frame (or just publishes a TF frame with a reserved name)

CUDA warning

Warnings   << sp_segmenter:cmake /home/travis/costar_ws/logs/sp_segmenter/build.cmake.000.log

CUDA_TOOLKIT_ROOT_DIR not found or specified

cd /home/travis/costar_ws/build/sp_segmenter; catkin build --get-env sp_segmenter | catkin env -si  /usr/bin/cmake /home/travis/costar_ws/src/costar_stack/costar_perception/sp_segmenter --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/travis/costar_ws/devel/.private/sp_segmenter -DCMAKE_INSTALL_PREFIX=/home/travis/costar_ws/install; cd -

...............................................................................

Strengthen CoSTAR development processes for future releases.

I noticed the 1.0.0 release I had understood this would be after I've validated the kuka version, and I've already discovered a few bugs.

Unfortunately, this is also not currently a reproducible release. This really needs sha1 revision info for all dependency repositories. Also the kuka information wasn't ready although we had discussed preparing it for release. The setup scripts weren't tested on a clean system and don't work without modification.

I think all the pre-release processes should be improved upon. There should be build testing, continuous integration, and a milestone plan of what is/isn't to be included in a release since we already have all the issues created it isn't too hard to create a milestone feature with what's expected to be included.

Joint servo duplicate positions

It's far slower than it needs to be. For example, from an IIWA servo, sometimes we get trajectories that end like this:

 -- [-0.17181314678348036, 0.2674166845811796, 0.2363830251406431, -1.9341048226056663, -0.011735946216190183, 0.8847905320724444, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
 -- GOAL: [-0.17181314678348036, 0.26741668458117956, 0.2363830251406431, -1.9341048226056663, -0.011735946216190181, 0.8847905320724446, 1.4154791286199961]
[WARN] [WallTime: 1488914138.683095] [1196.705000] Single

SmartMove grasp

use SmartMove "query" internally, move to object, close gripper, move away

Release 1.0.0

We need a "working" candidate release version, with all features and a clean version of the UI. Release 1 will support Ubuntu 14.04 LTS only.

CMake build warning

CMake Warning (dev) at CMakeLists.txt:50 (add_dependencies):

  Policy CMP0046 is not set: Error on non-existent dependency in

  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.

  Use the cmake_policy command to set the policy and suppress this warning.

  The dependency target "robotiq_force_torque_sensor_gencfg" of target

  "rq_sensor" does not exist.

This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:54 (add_dependencies):

  Policy CMP0046 is not set: Error on non-existent dependency in

  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.

  Use the cmake_policy command to set the policy and suppress this warning.

  The dependency target "robotiq_force_torque_sensor_gencfg" of target

  "rq_test_sensor" does not exist.

This warning is for project developers.  Use -Wno-dev to suppress it.

Keypress safety

Traceback (most recent call last):
  File "/home/chris/catkin_ws/src/costar_stack/costar_instructor/instructor_core/nodes/instructor_view.py", line 1490, in keyPressEvent
    elif 'root' in self.current_node_plugin_name.lower():
AttributeError: 'Instructor' object has no attribute 'current_node_plugin_name'
Traceback (most recent call last):
  File "/home/chris/catkin_ws/src/costar_stack/costar_instructor/instructor_core/nodes/instructor_view.py", line 1490, in keyPressEvent
    elif 'root' in self.current_node_plugin_name.lower():
AttributeError: 'Instructor' object has no attribute 'current_node_plugin_name'

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.