Skip to content

Latest commit

 

History

History
540 lines (442 loc) · 15.7 KB

README.md

File metadata and controls

540 lines (442 loc) · 15.7 KB

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
    

    source ~/ws_moveit/devel/setup.bash


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. (Source the workspace before every Roslaunch)

    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 install/local_setup.bash
    source install/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.