Coder Social home page Coder Social logo

moveit_grasps's Introduction

MoveIt Grasps

A basic grasp generator for objects such as blocks or cylinders for use with the MoveIt pick and place pipeline. Does not consider friction cones or other dynamics. It also has support for suction grippers.

Its current implementation takes as input a pose vector (postition and orientation) and generates a large number of potential grasp approaches and directions. Also includes a grasp filter for removing kinematically infeasible grasps via threaded IK solvers.

This package includes:

  • Pose-based grasp generator for a block
  • Separate grasp generators for custom objects such as rectanguar or cylindrical objects
  • Grasp filter
  • Demo code and visualizations

Developed by Dave Coleman, Andy McEvoy, and Mike Lautman at PickNik Consulting with many contributors.

Build Status

Install

Ubuntu Debian

Note: this package has not been released yet

sudo apt-get install ros-melodic-moveit-grasps

Install From Source

Clone this repository into a catkin workspace, then use the rosdep install tool to automatically download its dependencies.

Melodic (Ubuntu 18.04):

  1. Re-use or create a catkin workspace:

     export CATKIN_WS=~/ws_catkin/
     mkdir -p $CATKIN_WS/src
     cd $CATKIN_WS/src
    
  2. Download the required repositories and install any dependencies:

     git clone [email protected]:ros-planning/moveit_grasps.git
     wstool init .
     wstool merge moveit_grasps/moveit_grasps.rosinstall
     wstool update
     rosdep install --from-paths . --ignore-src --rosdistro melodic
    
  3. Configure and build the workspace:

     cd $CATKIN_WS
     catkin config --extend /opt/ros/melodic --cmake-args -DCMAKE_BUILD_TYPE=Release
     catkin build
    
  4. Source the workspace.

     source devel/setup.bash
    

Usage Instructions

For detailed usage instructions visit the MoveIt Grasps tutorial.

Testing and Linting

To run roslint, use the following command with catkin-tools.

catkin build --no-status --no-deps --this --make-args roslint

To run catkin lint, use the following command with catkin-tools.

catkin lint -W2 --rosdistro melodic

Use the following command with catkin-tools to run tests.

catkin run_tests --no-deps --this -i

moveit_grasps's People

Contributors

dale-koenig avatar davetcoleman avatar henningkayser avatar jafarabdi avatar jorge-c avatar mcevoyandy avatar mlautman avatar tuebel avatar tylerjw 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  avatar  avatar

Watchers

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

moveit_grasps's Issues

Object Missing

Hi, I am using the latest moveit_grasps package.

I met a problem that when I launch the first command: roslaunch moveit_grasps rviz.launch

I can see the baxter robot but I cannot found any object for baxter grasp. Can anyone tell me how to add the object to the rviz for baxter to grasp?

When I run the second command:roslaunch moveit_grasps test_grasp_generator.launch
The baxter no any operation in rviz. Can anyone give me some suggestion?
The result shown here

Thanks!

screenshot from 2018-09-23 22-54-44

run err

when I roslaunch moveit_grasps rviz.launch and roslaunch moveit_grasps rviz.launch
and press continue ,then
INFO] [1576300810.208895236]: Failed to call service get_planning_scene, have you launched move_group? at /home/tmirobot/project/ws_moveit/src/moveit_ros/planning/planning_scene_monitor/src/planning_scene_monitor.cpp:493
[ERROR] [1576300811.754683847]: visual orientation of panda_hand contains NaNs. Skipping render as long as the orientation is invalid.

Moveit! Grasps Tutorials fail to launch on Ubuntu 20.04/Ros Noetic!

Description
Attempting to launch Moveit! Grasps tutorials with ROS Noetic installed from binary and moveit installed from source. I have tried every single possible solution I could find in the previously closed issues, unfortunately to no avail. Also tried reconfiguring .macro files tracing each and every single one of them across folders and packages like "panda_moveit_config", "franka_description" etc. including every single launch file, the tutorials and packages depend on. I undid every change and rebuilt everything before opening this issue.

Your Environment
ROS Distro: Noetic
OS Version: Ubuntu 20.04
Source or Binary build: Binary

Steps to reproduce
Follow instructions at https://ros-planning.github.io/moveit_tutorials/doc/moveit_grasps/moveit_grasps_tutorial.html .
Terminals sourced succesfully.

Expected behaviour

roslaunch moveit_grasps rviz.launch 

should launch rviz without errors.

roslaunch moveit_grasps grasp_pipeline_demo.launch

should launch successfully after running command consecutive to the launch of rviz, in a second terminal.

Actual behaviour
Errors in both terminals regarding failing files and unsuccessfull attempts at trying to load groups "panda_arm" and "hand", as they are not found in "panda" after trying to reconfigure .launch and .xacro files personally.

Backtrace or Console Output
Console output of roslaunch moveit_grasps rviz.launch after freshly building catkin workspace and running the command

... logging to /home/canbayraktaroglu/.ros/log/65b5fffe-5a2e-11ed-a71d-d7b6d5f7f5c8/roslaunch-ubuntufocalfossa-46927.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

No such file or directory: /opt/ros/noetic/share/franka_description/robots/panda_arm.xacro [Errno 2] No such file or directory: '/opt/ros/noetic/share/franka_description/robots/panda_arm.xacro'
when processing file: /home/canbayraktaroglu/ws_moveit/src/moveit_grasps/robots/panda_arm_two_finger_hand.urdf.xacro
RLException: while processing /home/canbayraktaroglu/ws_moveit/src/moveit_grasps/launch/panda_planning_context.launch:
Invalid <param> tag: Cannot load command parameter [robot_description]: command [['/opt/ros/noetic/lib/xacro/xacro', '/home/canbayraktaroglu/ws_moveit/src/moveit_grasps/robots/panda_arm_two_finger_hand.urdf.xacro']] returned with code [2]. 

Param xml is <param if="$(eval arg('load_robot_description') and arg('gripper')=='two_finger')" name="$(arg robot_description)" command="$(find xacro)/xacro '$(find moveit_grasps)/robots/panda_arm_two_finger_hand.urdf.xacro'"/>
The traceback for the exception was written to the log file

Console output of roslaunch moveit_grasps grasp_pipeline_demo.launch after freshly building catkin workspace and running the command in a second terminal following the first command.

... logging to /home/canbayraktaroglu/.ros/log/70290576-5a2e-11ed-a71d-d7b6d5f7f5c8/roslaunch-ubuntufocalfossa-46944.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

No such file or directory: /opt/ros/noetic/share/franka_description/robots/panda_arm.xacro [Errno 2] No such file or directory: '/opt/ros/noetic/share/franka_description/robots/panda_arm.xacro'
when processing file: /home/canbayraktaroglu/ws_moveit/src/moveit_grasps/robots/panda_arm_two_finger_hand.urdf.xacro
RLException: while processing /home/canbayraktaroglu/ws_moveit/src/moveit_grasps/launch/load_panda.launch:
while processing /home/canbayraktaroglu/ws_moveit/src/moveit_grasps/launch/panda_planning_context.launch:
Invalid <param> tag: Cannot load command parameter [robot_description]: command [['/opt/ros/noetic/lib/xacro/xacro', '/home/canbayraktaroglu/ws_moveit/src/moveit_grasps/robots/panda_arm_two_finger_hand.urdf.xacro']] returned with code [2]. 

Param xml is <param if="$(eval arg('load_robot_description') and arg('gripper')=='two_finger')" name="$(arg robot_description)" command="$(find xacro)/xacro '$(find moveit_grasps)/robots/panda_arm_two_finger_hand.urdf.xacro'"/>
The traceback for the exception was written to the log file

Error compiling kinetic version

HI, me again 💃 , i'm trying to compile KINETIC version this time , but i have another error :/ , i cant fund a solution on closed issues , what can i do?

Errors     << moveit_grasps:make /home/ixmatix-manuel/openDog_arm/logs/moveit_grasps/build.make.002.log
/home/ixmatix-manuel/openDog_arm/src/moveit_grasps/src/grasp_data.cpp: In member function ‘virtual bool moveit_grasps::GraspData::loadGraspData(const ros::NodeHandle&, const string&)’:
/home/ixmatix-manuel/openDog_arm/src/moveit_grasps/src/grasp_data.cpp:114:92: error: invalid initialization of non-const reference of type ‘Eigen::Affine3d& {aka Eigen::Transform<double, 3, 2>&}’ from an rvalue of type ‘Eigen::Affine3d {aka Eigen::Transform<double, 3, 2>}’
     error += !rosparam_shortcuts::get(parent_name, child_nh, "tcp_to_eef_mount_transform", tcp_to_eef_mount_);
                                                                                            ^
In file included from /usr/include/eigen3/Eigen/Geometry:44:0,
                 from /opt/ros/kinetic/include/moveit/robot_model/joint_model.h:47,
                 from /opt/ros/kinetic/include/moveit/robot_model/joint_model_group.h:41,
                 from /opt/ros/kinetic/include/moveit/robot_model/robot_model.h:47,
                 from /opt/ros/kinetic/include/moveit/robot_state/robot_state.h:41,
                 from /home/ixmatix-manuel/openDog_arm/src/moveit_grasps/include/moveit_grasps/grasp_data.h:52,
                 from /home/ixmatix-manuel/openDog_arm/src/moveit_grasps/src/grasp_data.cpp:40:
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:320:10: note:   after user-defined conversion: Eigen::Transform<Scalar, Dim, Mode, _Options>::Transform(const Eigen::Transform<_Scalar, Dim, OtherMode, OtherOptions>&) [with int OtherMode = 1; int OtherOptions = 0; _Scalar = double; int _Dim = 3; int _Mode = 2; int _Options = 0]
   inline Transform(const Transform<Scalar,Dim,OtherMode,OtherOptions>& other)
          ^
In file included from /home/ixmatix-manuel/openDog_arm/src/moveit_grasps/src/grasp_data.cpp:51:0:
/opt/ros/kinetic/include/rosparam_shortcuts/rosparam_shortcuts.h:93:6: note:   initializing argument 4 of ‘bool rosparam_shortcuts::get(const string&, const ros::NodeHandle&, const string&, Eigen::Affine3d&)’
 bool get(const std::string &parent_name, const ros::NodeHandle &nh, const std::string &param_name,
      ^
In file included from /usr/include/eigen3/Eigen/Core:297:0,
                 from /usr/include/eigen3/Eigen/Geometry:11,
                 from /opt/ros/kinetic/include/moveit/robot_model/joint_model.h:47,
                 from /opt/ros/kinetic/include/moveit/robot_model/joint_model_group.h:41,
                 from /opt/ros/kinetic/include/moveit/robot_model/robot_model.h:47,
                 from /opt/ros/kinetic/include/moveit/robot_state/robot_state.h:41,
                 from /home/ixmatix-manuel/openDog_arm/src/moveit_grasps/include/moveit_grasps/grasp_data.h:52,
                 from /home/ixmatix-manuel/openDog_arm/src/moveit_grasps/src/grasp_data.cpp:40:
/usr/include/eigen3/Eigen/src/Geometry/Transform.h: In instantiation of ‘Eigen::Transform<Scalar, Dim, Mode, _Options>::Transform(const Eigen::Transform<_Scalar, Dim, OtherMode, OtherOptions>&) [with int OtherMode = 2; int OtherOptions = 0; _Scalar = double; int _Dim = 3; int _Mode = 1; int _Options = 0]’:
/home/ixmatix-manuel/openDog_arm/src/moveit_grasps/src/grasp_data.cpp:163:81:   required from here
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: error: static assertion failed: YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                        ^
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:330:5: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’
     EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Affine)||OtherMode==int(AffineCompact), Mode!=int(Isometry)),
     ^
make[2]: *** [CMakeFiles/moveit_grasps.dir/src/grasp_data.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/moveit_grasps.dir/all] Error 2
make: *** [all] Error 2
cd /home/ixmatix-manuel/openDog_arm/build/moveit_grasps; catkin build --get-env moveit_grasps | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
...............................................................................
Failed     << moveit_grasps:make                     [ Exited with code 2 ]    
Failed    <<< moveit_grasps                          [ 15.4 seconds ]          
[build] Summary: 4 of 5 packages succeeded.                                    
[build]   Ignored:   None.                                                     
[build]   Warnings:  None.                                                     
[build]   Abandoned: None.                                                     
[build]   Failed:    1 packages failed.                                        
[build] Runtime: 15.6 seconds total.                          

Generating grasps off-object or for only half the object with non-cubes [possible solution]

When using the TwoFingerGraspGenerator to generate face-grasps from the top for objects that are not cubes there is an odd behavior:

  • Objects that are taller than wide will result in grasps generated next to the object (mid air)
  • Objects that are wider than tall will only have grasps for a part of their dimensions (exactly their height)

It looks like the dimensions or number of grasps along the faces got mixed up somehow.

After further investigation, i think i found the Problem: In two_finger_grasp_generator.cpp at line 410,422,508 and 520 num_grasps_along_a should be passed to addEdgeGraspsHelper instead of num_grasps_along_b.

These modifications fixed the issue for me.
Hopefully someone of you can verify the Solution and maybe add this as a fix.

GraspFilter::filterGraspsHelper removes all poses due to timeout when checking a lot of grasps

I have the problem that when filtering a huge amount of grasps (over 800), the GraspFilter::filterGraspsHelper will remove all of them due to the IK-solver reaching it's timeout limit. Most of the time this will happen after executing the filter a second time and will happen everytime after that.

I suspect that the problem is somehow related to the OpenMP for-loop. If the IK-solver also uses multithreading (I'm not sure) then I believe that when the for-loop uses all available threads, the IK-solvers are starved for CPU resources and won't be able to find a valid solution before reaching the timeout.

Is there any way to solve this problem?

I also noticed that when executing the GraspFilter::filterGraspsHelper multiple times, the omp_get_max_threads() function will always return the lowest amount that omp_set_num_threads(num_threads) was ever set to.

Example:
Run 1.
10 grasp_candidates
omp_get_max_threads() returns 12 threads
since num_threads > grasp_candidates.size() returns true, num_threads is set to 10

Run 2.
20 grasp_candidates
omp_get_max_threads() returns 10 threads

I thought that omp_get_max_threads() will return the maximum amount of usable threads, does it not? If yes, then why are the threads not freed afterwards?

Missing rosparam in load_panda.launch

Following the tutorial and README the panda_grasp_data.yaml should contain a rosparam for loading the file load_panda.launch. The *demo.launch files also load moveit_grasps_config.yaml. Since both are missing from load_panda.launch should we add another example launch file or setup for the tutorial or simply change the instructions to use a demo?

Runtime Error : grasp_pipeline_demo

when running grasp_pipeline_demo, I see log message "Filtering 144 candidate grasps with 1 threads" and I have a exit code -11 (which is core dumped because of Invalid memory reference). I tried to track the commits on melodic-devel to check as i am using that branch. Noting that: other demos work fine. Can you help me in that?

usage of setGraspWidth and setting of pre_grasp_posture

We take the pre_grasp_posture from the user in robot configuration files.
Then while setting we use this function setGraspWidth which requires specific information about the robot.
Could you please comment on the need for this. Also, if we use this then why take pre_grasp_posture from the user separately.

I was thinking that maybe it made sense to get the max and min of each joint and take grasp posture from the user and take the percent in the ratio of the grasp posture given by the user. I think that would solve the purpose of needing this function and also make it generalised.

GraspFilter::filterGraspsHelper - IK-solver fails when using too many OpenMP threads

I have a very strange problem:
Grasp poses are filtered in GraspFilter::filterGraspsHelper with the help of a multi-threaded OpenMP for-loop (line in question). Part of this filtering function is the IK-solver (line in question).

The thread count is set with omp_set_num_threads(num_threads); and num_threads is determined by std::size_t num_threads = omp_get_max_threads(); (line in question).

I have a Threadripper with 32 cores and omp_get_max_threads(); returns 64 threads. When filtering grasp poses with that thread count, 98-100% of them will fail due to (probably) to IK-timeout even though most of them are completely valid. But when I set the thread count to 2-5 all of the previously failed grasps will be now valid this time around. The higher I set the thread count, the more grasps will fail. Changing the IK-solver timeout from 0.005 to 5 seconds does nothing.

What could be reason for this behavior? Do the threads starve each other for CPU resources when too many are present? Is there something weird going on if too many IK-solvers are working? This is a huge roadblock for me and I don't even know how to properly debug it. Does anyone have a deep understanding of OpenMP and the IK-solvers and knows what the issue here is?

Generalisations needed

@mlautman @v4hn @feroze
Will use this issue to keep track of wherever generalisation is needed. Will keep updating as a task list here and giving details in comments or separate issues whatever seems appropriate.

  • grasp_data.cpp
    • Starting here to end of function.
    • this
  • grasp_generator.cpp
  • grasp_generator_test.cpp
    • It is used for scoring but would be different for different objects right?

MoveIt! Grasps on ros2 humble

Hi everyone!

I'm looking for a way to use moveit_grasps on ros2 Humble on Ubuntu 22.04, yet couldn't find any specific branch for humble, the default (master) branch seems to be marked with a build failure.

I'd appreciate some guidance in terms of the version i should integrate into my colcon workspace.

Looking forward to hearing from you!

-

Hi , im trying to run the grasp_pose_visualizer_demo.cpp with my own configuration, i have a 4 DOF arm , i chaged the config.yaml and launch files to make it works on my arm , and i had the error below:

process[joint_state_publisher-1]: started with pid [9916]
process[joint_state_desired_publisher-2]: started with pid [9917]
process[robot_state_publisher-3]: started with pid [9918]
process[moveit_grasps_demo-4]: started with pid [9925]
[ INFO] [1582151430.341388679]: Grasp Poses Visualizer
[ INFO] [1582151430.351252575]: End Effector: gripper
[ INFO] [1582151430.351296709]: Planning Group: arm
[ INFO] [1582151430.947705762]: No planning scene passed into moveit_visual_tools, creating one.
[ INFO] [1582151430.960129608]: Loading robot model 'brazo'...
[ INFO] [1582151430.960245690]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ WARN] [1582151431.293907899]: Could not identify parent group for end-effector 'gripper_eef'
[ INFO] [1582151432.449661323]: Publishing maintained planning scene on ''
[ WARN] [1582151433.450576079]: Joint 'virtual_joint' does not exist.
[ WARN] [1582151433.450800916]: Unable to apply virtual joint transform, hideRobot() functionality is disabled
[ERROR] [1582151433.505550943]: Group '' not found in model 'brazo'
[ERROR] [1582151433.505593642]: Link '' not found in model 'brazo'
[moveit_grasps_demo-4] process has died [pid 9925, exit code -11, cmd /home/ixmatix-manuel/openDog_arm/devel/lib/moveit_grasps/moveit_grasps_grasp_poses_visualizer_demo __name:=moveit_grasps_demo __log:=/home/ixmatix-manuel/.ros/log/65874568-5367-11ea-b347-9822ef891d27/moveit_grasps_demo-4.log].
log file: /home/ixmatix-manuel/.ros/log/65874568-5367-11ea-b347-9822ef891d27/moveit_grasps_demo-4*.log

The error occurs in this line :
grasp_data_.reset(new GraspData(nh_, ee_group_name_, visual_tools_->getRobotModel()));

can anyone can help please :)

Build errors

@henningkayser and @JafarAbdi Building the master branch I get the following error. Is that to be expected?

--- stderr: moveit_ros_planning                           
CMake Error at /home/mike/ws_moveit2/install/moveit_core/share/moveit_core/cmake/ament_cmake_export_libraries-extras.cmake:48 (message):
  Package 'moveit_core' exports the library 'moveit_exceptions' which
  couldn't be found
Call Stack (most recent call first):
  /home/mike/ws_moveit2/install/moveit_core/share/moveit_core/cmake/moveit_coreConfig.cmake:38 (include)
  CMakeLists.txt:26 (find_package)

Launch Error

Hello,

I cloned moveit_grasp packages from source for kinetic_devel version and the code compile successfully. But when I launch the command "roslaunch moveit_grasps test_grasp_generator.launch"
There is an error here

Can you give me some suggestion?

My operating system is Ubuntu 16.04, ROS version is kinetic.

I just installed the Baxter SDK and Simulator from Rethink Robotic official site, I want to know it is necessary to install baxter_cpp in order to launch the moveit_grasps package?

Thank You!

Execution?

I try to use the move group interface to execute the Cartesian paths planned by moveit_grasps. However, the move group interface excepts a trajectory of type

moveit_msgs::RobotTrajectory

instead of

std::vector<moveit::core::RobotStatePtr>

in the

grasp_candidate->segmented_cartesian_traj_

Any suggestions on how to execute the paths?

Complilation Error

Hello,

I cloned moveit_grasp package from source for indigo_devel version and also I installed rosparam_shortcuts using binary package. When try to compile it than it gives below error.
" multiple definition of `rosparam_shortcuts::getBoolParam ..."

Do you have any idea what was wrong?

Branch for master?

Soon (now?) we'll want to follow a master branch strategy like we're doing in all the other moveit repos. I think this should coincide with the big announcement of moveit_grasps, such that if we start getting more users we can still keep making big changes in master. Thoughts?

Incompatible with franka_description >= 0.10

This package is only compatible with franka_description <=0.9. From 0.10 they refactored their URDF/xacro files, which is a breaking change. Therefore files and macros have been moved/gone.

Eigen/Eigen error

ROS MELODIC
Hi i follow all instructions but i had the below error's :

Errors     << moveit_ros_perception:make /home/ixmatix-aaron/openDog_arm/logs/moveit_ros_perception/build.make.000.log
In file included from /home/ixmatix-aaron/openDog_arm/src/moveit/moveit_ros/perception/mesh_filter/src/sensor_model.cpp:37:0:
/home/ixmatix-aaron/openDog_arm/src/moveit/moveit_ros/perception/mesh_filter/include/moveit/mesh_filter/sensor_model.h:40:10: fatal error: Eigen/Eigen: No such file or directory
 #include <Eigen/Eigen>
          ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [mesh_filter/CMakeFiles/moveit_mesh_filter.dir/src/sensor_model.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/ixmatix-aaron/openDog_arm/src/moveit/moveit_ros/perception/mesh_filter/include/moveit/mesh_filter/mesh_filter_base.h:42:0,
                 from /home/ixmatix-aaron/openDog_arm/src/moveit/moveit_ros/perception/mesh_filter/src/mesh_filter_base.cpp:37:
/home/ixmatix-aaron/openDog_arm/src/moveit/moveit_ros/perception/mesh_filter/include/moveit/mesh_filter/sensor_model.h:40:10: fatal error: Eigen/Eigen: No such file or directory
 #include <Eigen/Eigen>

Failed << moveit_ros_perception:make [ Exited with code 2 ]
Failed <<< moveit_ros_perception [ 20.4 seconds ]
Abandoned <<< moveit_chomp_optimizer_adapter [ Unrelated job failed ]
Abandoned <<< moveit_commander [ Unrelated job failed ]
Abandoned <<< moveit_fake_controller_manager [ Unrelated job failed ]
Abandoned <<< moveit_kinematics [ Unrelated job failed ]
Abandoned <<< moveit_planners_ompl [ Unrelated job failed ]
Abandoned <<< moveit_ros_move_group [ Unrelated job failed ]
Abandoned <<< moveit_ros_manipulation [ Unrelated job failed ]
Abandoned <<< moveit_ros_robot_interaction [ Unrelated job failed ]
Abandoned <<< moveit_ros_warehouse [ Unrelated job failed ]
Abandoned <<< moveit_ros_benchmarks [ Unrelated job failed ]
Abandoned <<< moveit_ros_planning_interface [ Unrelated job failed ]
Abandoned <<< moveit_jog_arm [ Unrelated job failed ]
Abandoned <<< moveit_planners_chomp [ Unrelated job failed ]
Abandoned <<< moveit_ros_visualization [ Unrelated job failed ]
Abandoned <<< moveit_setup_assistant [ Unrelated job failed ]
Abandoned <<< moveit_visual_tools [ Unrelated job failed ]
Abandoned <<< moveit_grasps [ Unrelated job failed ]

and i cant run the demos 🌵 can anyone help me plz?

Generalization for non-cuboid objects

The source code only supports cuboid objects.
However, how non-cuboid ones should be handled when using MoveIt Grasps?
Should the object be spitted into smaller bounding boxes somehow? Is there any idea on how to do that? Perhaps some papers?

Keep waiting to continue : pre_grasp

there
・Ubuntu 18.04
・Melodic

I'd like to try Grasps Pipeline.

roslaunch moveit_grasps rviz.launch
roslaunch moveit_grasps grasp_pipeline_demo.launch

For a long time, panda reiamins at rest and
"waiting to continue: pre_grasp" keeps on the console.

I detected that this code couldn't be procced.
visual_tools_->prompt("pre_grasp");
on line 286 on src/demo/grasp_pipeline_demo.cpp

So could you tell me how to solve this error...

Supplement
My moveit environment is following.
moveit and moveit_grasps are build by source.

moveit_msgs : melodic
moveit_resources : melodic
geometric_shapes : melodic
moveit : melodic
moveit_visual_tools: melodic
panda_mobeit_config : melodic
moveit_grasps : melodic

rvis_visual_tools : master

has no member named ‘getIdentityPose’

Hey there,

  • Ubuntu 18.04
  • Melodic

building moveit_grasps fails for me with this error:

Errors     << moveit_grasps:make /home/mlamprecht/Desktop/melodic_ws/logs/moveit_grasps/build.make.003.log                                 
In file included from /home/mlamprecht/Desktop/melodic_ws/src/moveit_grasps/src/demo/grasp_generator_demo.cpp:46:0:
/home/mlamprecht/Desktop/melodic_ws/src/moveit_grasps/include/moveit_grasps/grasp_generator.h: In member function ‘void moveit_grasps::GraspGenerator::setIdealGraspPoseRPY(const std::vector<double>&)’:
/home/mlamprecht/Desktop/melodic_ws/src/moveit_grasps/include/moveit_grasps/grasp_generator.h:426:53: warning: ‘void moveit_grasps::GraspGenerator::setIdealGraspPoseRPY(const std::vector<double>&)’ is deprecated: setIdealGraspPoseRPY has been renamed to setIdealTCPGraspPoseRPY [-Wdeprecated-declarations]
     setIdealGraspPoseRPY(ideal_grasp_orientation_rpy);
                                                     ^
/home/mlamprecht/Desktop/melodic_ws/src/moveit_grasps/include/moveit_grasps/grasp_generator.h:424:3: note: declared here
   setIdealGraspPoseRPY(const std::vector<double>& ideal_grasp_orientation_rpy)
   ^~~~~~~~~~~~~~~~~~~~
/home/mlamprecht/Desktop/melodic_ws/src/moveit_grasps/src/demo/grasp_generator_demo.cpp: In constructor ‘moveit_grasps::GraspGeneratorDemo::GraspGeneratorDemo(int)’:
/home/mlamprecht/Desktop/melodic_ws/src/moveit_grasps/src/demo/grasp_generator_demo.cpp:156:49: error: ‘using element_type = class moveit_visual_tools::MoveItVisualTools {aka class moveit_visual_tools::MoveItVisualTools}’ has no member named ‘getIdentityPose’
       geometry_msgs::Pose pose = visual_tools_->getIdentityPose();

Any ideas what is going wrong here?

Gripper fingers colliding with grasped object [possible solution]

The Problem mentioned in two_finger_grasp_generator.cpp at line 389 "There is a bug with face grasps allowing the grasp generator to generate grasps where the gripper fingers are in collision with the object being grasped" seems to be caused by an faulty configuration in panda_grasp_data.yaml

The provided configurations are not consistent and result in collisions:

pregrasp_posture: [ 0.04 ]  # open position
grasp_posture: [ 0.0 ]      # close position
joints: [ 'panda_finger_joint1' ]
max_finger_width: 0.085
min_finger_width: 0.06

When max_finger_width matches the pregrasp_posture, there are no more collisions in my case:

pregrasp_posture: [ 0.04 ]  # open position
grasp_posture: [ 0.02 ]      # close position
joints: [ 'panda_finger_joint1' ]
max_finger_width: 0.08
min_finger_width: 0.04

GraspFilter::filterGraspsHelper sometimes hangs at OpenMP for loop

Hi,
I have the problem that the filterGraspsHelper function sometimes hangs up while filtering. I traced it down to this OpenMP for loop: Line in Question

I'm not familiar with OpenMP but at first glance it seems to be complaint with the OpenMP rules and should not enter a racing condition but from time to time it still does and I have to restart the node. Any ideas on what could be causing it?

Does not build on windows

Hey there,

I first build rosparam_shortcuts on Melodic Win10, next I tried to:

catkin_make --only-pkg-with-deps moveit_grasps

This fails with:

[ 12%] Built target rosparam_shortcuts
[ 18%] Built target rosparam_shortcuts_example
[ 21%] Building CXX object moveit_grasps/CMakeFiles/moveit_grasps.dir/src/grasp_candidate.cpp.obj
cl : Befehlszeile error D8004 : "/W" erfordert ein Argument.

In another forum it is said that this error means I have wrong compiler adjustements....

I do not know how to get further....

MoveIt! Grasps pipeline for other robotic arms

The existing moveit_grasps is stable and working properly with panda arm. But, there's no straightforward way to use the same with other robotic arms like Universal Robot or ABB robots.
Is there any idea on how to do that? It would be of great help if someone could post a documentation or reference links for the same.

Thank you.

working of the visualisations

@mlautman @v4hn @feroze
From what I understood we need to call trigger for the visualisations to be shown but there is just one instance of trigger in this entire repo.
I saw that trigger functionality came just 2 months before the latest commit in this repo. Is it just that it was not updated for that?

Since, moveit_visual_tools is built on top of rviz_visual_tools and inherits it, what is the use of having both here

I am able to get the visualisation of most of the things working except animated grasps. Is there some peculiarity about that I need to know about?

How to execute a grasp_candidate

Hi,

I am a new man in moveit. I have read the code of grasp_pipeline and I want to ask how to execute a candidate once we got it.

Thank you!

Namespace issue when library loads config parameters

I am building and launching the node which uses the grasps library directly from IDE instead of the launch file.
The parameters however are still being loaded in the launchfile.

<param name="ee_group_name" value="hand"/>
<param name="planning_group_name" value="panda_arm"/>
<rosparam command="load" file="$(find moveit_grasps)/config_robot/panda_grasp_data.yaml"/>
<rosparam command="load" file="$(find moveit_grasps)/config/moveit_grasps_config.yaml"/>

I noticed, that in order for the rosparam_shortcuts::get() functionality in the grasps library to work, I needed to edit the source code of grasp_filter.cpp grasp_gnerator.cpp and grasp_planner.cpp file.
Otherwise, it would prepend the namespace of my node before the actual parameter name to search for. This would result in the grasps functionality not working as it could not find the paramters.
I had to remove the "~" character in the constructors so that the rosparam_shortcuts::get() function searches for the parameters using the private namespace.

Example of change:

GraspFilter::GraspFilter(robot_state::RobotStatePtr robot_state,
                         moveit_visual_tools::MoveItVisualToolsPtr& visual_tools)
  : visual_tools_(visual_tools), nh_("~/moveit_grasps/filter")
{... }
GraspFilter::GraspFilter(robot_state::RobotStatePtr robot_state,
                         moveit_visual_tools::MoveItVisualToolsPtr& visual_tools)
  : visual_tools_(visual_tools), nh_("/moveit_grasps/filter")
{...}

Is there an easier solution to this issue, without changing the actual source code of the library?
Because I don't want to launch my node using the launch file.
Thanks in advance

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.