GithubHelp home page GithubHelp logo

iamrajee / ws_moveit Goto Github PK

View Code? Open in Web Editor NEW
38.0 2.0 10.0 3.35 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%
moveit ros ros-melodic ws-moveit catkin catkin-workspace moveit-api

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

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

Watchers

 avatar  avatar

ws_moveit's Issues

Invoking "make -j12 -l12" failed

After downloading the git-repo and executing the implementation, the following errors occurred

/home/don/Desktop/ws_moveit/src/moveit_task_constructor/core/include/moveit/task_constructor/storage.h:56:1: error: expected initializer before β€˜}’ token
   56 | }
      | ^
/home/don/Desktop/ws_moveit/src/moveit_task_constructor/core/include/moveit/task_constructor/storage.h:60:1: error: expected initializer before β€˜}’ token
   60 | }
      | ^
In file included from /home/don/Desktop/ws_moveit/src/moveit_task_constructor/core/include/moveit/task_constructor/stage.h:43,
                 from /home/don/Desktop/ws_moveit/src/moveit_task_constructor/visualization/motion_planning_tasks/properties/property_factory.cpp:40:
/home/don/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:47:3: error: expected initializer before β€˜class’
   47 |   class C;                                                                                                             \
      |   ^~~~~
/home/don/Desktop/ws_moveit/src/moveit_task_constructor/core/include/moveit/task_constructor/storage.h:67:1: note: in expansion of macro β€˜MOVEIT_CLASS_FORWARD’
   67 | MOVEIT_CLASS_FORWARD(Interface)
      | ^~~~~~~~~~~~~~~~~~~~
In file included from /home/don/ws_moveit/src/moveit/moveit_core/macros/include/moveit/macros/class_forward.h:39,
                 from /home/don/Desktop/ws_moveit/src/moveit_task_constructor/core/include/moveit/task_constructor/stage.h:43,
                 from /home/don/Desktop/ws_moveit/src/moveit_task_constructor/visualization/motion_planning_tasks/properties/property_factory.cpp:40:
/home/don/Desktop/ws_moveit/src/moveit_task_constructor/core/include/moveit/task_constructor/storage.h:67:22: error: β€˜Interface’ was not declared in this scope
   67 | MOVEIT_CLASS_FORWARD(Interface)
      |                      ^~~~~~~~~
/home/don/Desktop/ws_moveit/src/moveit_task_constructor/demo/src/pick_place_task12.cpp:481:89:   required from here
/usr/include/c++/9/bits/unique_ptr.h:857:30: error: no matching function for call to β€˜moveit::task_constructor::stages::MoveRelative::MoveRelative(const char [13], std::shared_ptr<moveit::task_constructor::solvers::CartesianPath>&)’
  857 |     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 39%] Linking CXX executable /home/don/Desktop/ws_moveit/devel/lib/panda/detect_and_add_cylinder
[ 40%] Linking CXX shared library /home/don/Desktop/ws_moveit/devel/lib/libmoveit_task_constructor_capabilities.so
make[4]: Leaving directory '/home/don/Desktop/ws_moveit/build'
[ 40%] Built target moveit_task_constructor_capabilities
make[4]: Leaving directory '/home/don/Desktop/ws_moveit/build'
[ 40%] Built target detect_and_add_cylinder
make[3]: Leaving directory '/home/don/Desktop/ws_moveit/build'
make[2]: *** [Makefile:141: all] Error 2
make[2]: Leaving directory '/home/don/Desktop/ws_moveit/build'
Invoking "make -j12 -l12" failed
make[1]: *** [makefile:5: run] Error 1
make[1]: Leaving directory '/home/don/Desktop/ws_moveit'
make: *** [makefile:3: all] Error 2
don@don:~/Desktop/ws_moveit$ catkin build

Demo planning fail !

I tested three demonstrations, but unfortunately, none of them worked out.

ERROR] [1616415208.504671754]: Planning failed

image
image
image

I don't know how to solve it. Can you give me some advice?

no resource of panda_arm_hand.urdf.xacro

I downloaded this task and setup it successfully
when I try to run code "Terminal 1: roslaunch moveit_task_constructor_demo demo.launch", it saied "resource not found panda_moveit_config" in /opt/ros/melodic/share/franka/description/robots
I got a package from https://github.com/justagist/franka_panda_description, put it in /ws_moveit/src , then I "catikin_make" again.
Now demo2 demo3 demo4 can work successfully.

But when I try to run code demo5, it saied:
couldn't open file /opt/ros/melodic/share/franka_description/meshes/collision/finger.stl
Later, I moved "finger.stl" into this path,
but "Terminal 2: roslaunch moveit_task_constructor_demo pickplace5.launch" couldn't work.
β€œ[ERROR] [1656304921.605592330]: Planning failed”

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.