iamrajee / ws_moveit

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).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 : singh.raj1997@gmail.com
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.

About

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


Languages

Language:C++ 96.2%Language:CMake 2.5%Language:Python 1.3%Language:Shell 0.0%Language:Makefile 0.0%