Git Product home page Git Product logo

aromal-path / ws_moveit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from iamrajee/ws_moveit

0.0 0.0 0.0 3.41 MB

This ROS melodic workspace is created on Ubuntu 18.04. Here I worked on moveit & MTC projects like Pick, Place, Pouring task for multi-manipulator system using MoveIt Task Constructor(MTC).

License: MIT License

Makefile 0.01% Shell 0.02% CMake 2.48% Python 1.35% C++ 96.15%

ws_moveit's Introduction

ROS Melodic Workspace

Build Status Coverage Status MIT License GitHub Issues GitHub Pull Requests Gitter Join our Slack Workspace

This ROS melodic workspace is created on Ubuntu 18.04. Here I have worked on several moveit related projects like Pick, Place, Pouring task for multi-manipulator system using MoveIt Task Constructor(MTC).

Table of content


Installation

All the code required to get started

  • Prerequisite

    • You should have ROS melodic on your ubuntu 18.04.
    • All ROS dependency is satisfied.
  • Clone

    git clone https://github.com/iamrajee/ws_moveit.git
    
  • Setup

    cd ws_moveit/
    ./refresh.sh
    make
    

Package description


  • Pick, Place and pouring demos

    1. Run default Pick & Place demo of MTC

    This is the default Pick & Place demo provided by the MTC.

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace.launch
    

    2. Same as above but with custom formating

    Run (Click to expand!)
    Terminal 1: roslaunch moveit_task_constructor_demo demo2.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace2.launch
    

    3. Same as above but for two object & two cylider

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo3.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace3.launch
    

    4. Same as above but included abstract function pick place for multiple object

    TODO

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo4.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace4.launch
    

    5. Pick & Place for two panda arm

    Also commented various ways which didn't worked

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo5.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace5.launch
    

    6. Same as above but clearner

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo6.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace6.launch
    

    7. Serially executing Pick & Place task using two panda arm

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo7.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace7.launch
    

    8. Parallelly(Merger) executing simple task using two panda arm

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo8.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace8.launch
    

    9. Simplest single panda arm pouring demo

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo9.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace9.launch
    

    10. Same as above but keeping glass at ground level

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo10.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace10.launch
    

    11. Same as above but keeping glass at some height from ground

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo11.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace11.launch
    

    12. Cleaned version of two panda arm pouring.

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo12.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace12.launch
    

    13. Pick & Place using two panda arm for differnt object

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo13.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace13.launch
    

    14. Pick & Place using two panda arm for same object

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo14.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace14.launch
    

    15. Pick & Place for two panda arm using seperated tasks

    TODO

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo15.launch
    
    Terminal 2: roslaunch moveit_task_constructor_demo pickplace15.launch
    

    Cartesian Demos

    1. Run default cartesian demo of MTC

    This is the default cartesian demo provided by the MTC.

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo_cartesian.launch/demo.launch
    
    Terminal 2: rosrun moveit_task_constructor_demo cartesian
    

    2. Same as above but with custom formating

    Run (Click to expand!)
    Terminal 1: roslaunch moveit_task_constructor_demo demo_cartesian2.launch
    
    Terminal 2: rosrun moveit_task_constructor_demo cartesian2
    

    3. Executing two task with differnt node name

    task execution not return problem -> resolved by using in built t.execute() and updating with recent PR #136

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo3.launch
    
    Terminal 2: rosrun moveit_task_constructor_demo cartesian2
    
    Terminal 3: rosrun moveit_task_constructor_demo cartesian3
    

    or

    Terminal 1: roslaunch moveit_task_constructor_demo demo_cartesian3.launch
    
    Terminal 2: rosrun moveit_task_constructor_demo cartesian3
    

    4. Two arm panda executed simple different task

    (Cleaned) could plan but can execute -> resolved by commenting "capabilities" and "disable_capabilities" parameter in move_group.launch

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo_cartesian4.launch
    
    Terminal 2: rosrun moveit_task_constructor_demo cartesian4
    

    5. Trying async spinner to execute two task simontaneously

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo_cartesian5.launch
    
    Terminal 2: rosrun moveit_task_constructor_demo cartesian5
    

    Modular Demos

    1. Run default Modular demo of MTC

    This is the default Modular demo provided by the MTC.

    Run
    Terminal 1: roslaunch moveit_task_constructor_demo demo.launch
    
    Terminal 2: rosrun moveit_task_constructor_demo modular
    

    2. Same as above but with custom formating

    Run (Click to expand!)
    Terminal 1: roslaunch moveit_task_constructor_demo demo.launch
    
    Terminal 2: rosrun moveit_task_constructor_demo modular2
    
  • panda pkg contain cpp and py interface for moveit.*

    Terminal 1:

    $ roscore
    $ TODO
    

    Terminal 2:

    $ TODO
    
  • panda pkg contain cpp and py interface for moveit.*
    Terminal 1:

    $ roscore
    $ TODO
    

    Terminal 2:

    $ TODO
    
  • VLP16


    See full video here. In this pkg TODO




Helper Scripts

  • refresh.sh

    #!/bin/bash
    source /opt/ros/melodic/setup.bash
    source devel/setup.bash
    clear
    

    It will source the workspace after buiding workspace or after creating new pkg. Run it as ./refresh.sh

  • makefile

    SHELL=/bin/bash
    all:
        make run
    run:
        catkin_make
        bash refresh.sh
    

    It will build the workspace . Run it as make

  • createpkg.sh

    #!/bin/bash
    cd src/
    catkin create $1
    cd ../
    make
    source refresh.sh
    

    It will create new package . Run it as ./createpkg.sh newpkg_name

  • tftree.sh

    #!/bin/bash
    rosrun rqt_tf_tree rqt_tf_tree
    

    It will launch the gui to visvualise the tf tree. Run it as ./tftree.sh

  • printenv.sh

    #!/bin/bash
    printenv | grep -i ROS
    

    It will print the ROS related environment variable . Run it as ./printenv.sh

  • rosdep.sh

    sudo rosdep install -i --from-path src --rosdistro $ROS_DISTRO -y
    

    It will install dependencies of all pkg in the workspace. Run it in the workspace as ./rosdep.sh

  • ssh_into_another_computer.sh

    #!/bin/bash
    ssh rajendra@rajendra
    

    It will ssh into another system. Useful when using multiple ros masters. Run it as ./rajendra.sh




Team

Or Contributors/supporters/mentors/guides who helped me out in these projects.

Abhinand A S Sachin Rustagi Swami Prasad

Contributing

To get started...

Step 1

  • Option 1

    • ๐Ÿด Fork this repo!
  • Option 2

    • ๐Ÿ‘ฏ Clone this repo to your local machine using https://github.com/iamrajee/ws_moveit.git

Step 2

  • HACK AWAY! ๐Ÿ”จ๐Ÿ”จ๐Ÿ”จ

Step 3


FAQ

  • I ran into some issue while running above package, what to do now?
    • Simply contact me!

Support

Reach out to me for any help!

Name : Rajendra Singh
Email : [email protected]
Web : https://iamrajee.github.io/
LinkedIn : https://www.linkedin.com/in/rajendra-singh-6b0b3a13a/
Twitter: @i_am_rajee

License

MIT License


Acknowledgments

  • Hat tip to anyone whose code was used and thanks to everyone who inspired and supported me in this project.

ws_moveit's People

Contributors

iamrajee avatar

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.