• Stars
    star
    115
  • Rank 305,916 (Top 7 %)
  • Language
    Python
  • Created over 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Attach two Gazebo models with a virtual joint in a generalized grasp hack

Attach two Gazebo models with a virtual joint in a generalized grasp hack

Build

mkdir -p gazebo_link_attacher_ws/src
cd gazebo_link_attacher_ws/src
catkin_init_workspace
git clone https://github.com/pal-robotics/gazebo_ros_link_attacher.git
cd ..
catkin_make
source devel/setup.bash

Launch

roslaunch gazebo_ros_link_attacher test_attacher.launch

Empty world with the plugin libgazebo_ros_link_attacher.so loaded (in the worlds folder).

Which provides the /link_attacher_node/attach service to specify two models and their links to be attached.

And /link_attacher_node/detach service to specify two models and their links to be detached.

gazebo screenshot

Run demo

In another shell, be sure to do source devel/setup.bash of your workspace.

rosrun gazebo_ros_link_attacher spawn.py

Three cubes will be spawned.

rosrun gazebo_ros_link_attacher attach.py

The cubes will be attached all between themselves as (1,2), (2,3), (3,1). You can move them with the GUI and you'll see they will move together.

rosrun gazebo_ros_link_attacher detach.py

The cubes will be detached and you can move them separately again.

You can also spawn items with the GUI and run a rosservice call:

rosservice call /link_attacher_node/attach "model_name_1: 'unit_box_1'
link_name_1: 'link'
model_name_2: 'unit_sphere_1'
link_name_2: 'link'"

And same thing to detach:

rosservice call /link_attacher_node/detach "model_name_1: 'unit_box_1'
link_name_1: 'link'
model_name_2: 'unit_sphere_1'
link_name_2: 'link'"

Current status

It works!

Currently it crashes with:

***** Internal Program Error - assertion (self->inertial != __null) failed in static void gazebo::physics::ODELink::MoveCallback(dBodyID):
/tmp/buildd/gazebo4-4.1.3/gazebo/physics/ode/ODELink.cc(178): Inertial pointer is NULL
Aborted (core dumped)

Which I've only seen this other useful information: Bitbucket gazebo removing moving model with ode friction fails. But it didn't help me solve my crash. I guess when attaching one model to the other it removes the second one to re-create it attached to the first or something like that.

And also this other issue: Visualizing dynamically created joints made me add a couple of lines more.

The method to attach the links is based on the grasp hack of the Gripper in gazebo/physics: Gripper.hh Gripper.cc

Which is to create a revolute joint on the first model (with range of motion 0) linking a link on the first model and a link on the second model.

More Repositories

1

aruco_ros

Software package and ROS wrappers of the Aruco Augmented Reality marker detector library
C++
449
star
2

backward_ros

C++
168
star
3

realsense_gazebo_plugin

C++
163
star
4

ddynamic_reconfigure

C++
89
star
5

tiago_tutorials

Public tutorials of TIAGo robot
C++
71
star
6

pal_statistics

A way of gathering, aggregating, storing and visualizing statistics from arbitrary sources in a flexible and real-time safe way in ROS/ROS2
C++
49
star
7

tiago_robot

Python
37
star
8

tiago_simulation

Python
37
star
9

ddynamic_reconfigure_python

Python
27
star
10

play_motion2

A tool to play and handle pre-recorded motions in ROS2
C++
18
star
11

talos_robot

C++
16
star
12

play_motion_builder

C++
16
star
13

gravity_compensation_controller_tutorial

C++
15
star
14

perception_blort

opencv
C++
15
star
15

pal_gazebo_worlds

Python
14
star
16

reem_teleop

Motion retargeting packages for teleoperating REEM.
C++
12
star
17

pmb2_robot

A PAL Mobile Base for your advanced navigation needs
Python
10
star
18

reemc_robot

Scripts and configuration files to launch when bringing up REEM-C.
Python
9
star
19

play_motion

A tool to play pre-recorded motions on a robot using ros_control
C++
8
star
20

pal_person_detector_opencv

Person detector for RGB images based on OpenCV's HoG Adaboost cascade
C++
7
star
21

tiago_ikfast_arm_plugin

TIAGo's IKfast autogenerated Inverse Kinematics MoveIt! plugin
C++
6
star
22

tiago_navigation

Python
6
star
23

pmb2_simulation

Python
6
star
24

omni_base_robot

Python
5
star
25

tiago_moveit_config

Python
5
star
26

tiago_dual_robot

EmberScript
5
star
27

pal_wbc_utils

C++
5
star
28

pal_docker_utils

Shell
5
star
29

pal_wbc_tutorials

C++
5
star
30

video_stream_opencv

A package to open video streams and publish them in ROS using the opencv videocapture mechanism
C++
4
star
31

tiago_ikfast

URDF model of TIAGo's arm in .DAE format for IKfast to process it
C++
4
star
32

learning_gui

GUI to learn motions with TIAGo by demonstration
Python
4
star
33

reem_robot

Scripts and configuration files to launch when bringing up REEM.
CMake
4
star
34

pal_gripper

Python
4
star
35

object_recognition_clusters

Package to contain nodes for publishing and processing clusters within the object recognition kitchen.
Python
4
star
36

talos_simulation

CMake
3
star
37

tiago_dual_tutorials

C++
3
star
38

tiago_dual_moveit_config

Shell
3
star
39

pmb2_navigation

pmb2 navigation
Python
3
star
40

hey5_description

CMake
3
star
41

omni_base_simulation

Python
3
star
42

reemc_simulation

Packages for running REEM-C in the Gazebo simulator.
CMake
3
star
43

reemc_tutorials

C++
3
star
44

rqt_batteries

A rqt widget for showing battery status based on rqt_robot_dashboard
Python
3
star
45

ari_robot

EmberScript
2
star
46

inference_server

Python
2
star
47

camera_v4l

Video-for-linux camera driver and ROS node based on OpenCV
C++
2
star
48

pal_texture_detector

C++
2
star
49

statsdcc

C++
2
star
50

head_action

Robot agnostic head action interface
C++
2
star
51

property_bag

C++
2
star
52

reemc_moveit_config

Configuration package for MoveIt! for the robot REEM-C
CMake
2
star
53

pal_hardware_gazebo

C++
2
star
54

pal-ros-pkg

rosinstall files for our roswiki-indexed repositories, and other uses.
Shell
2
star
55

ari_tutorials

C++
2
star
56

reem_simulation

Packages for running REEM in the Gazebo simulator.
C++
2
star
57

ros_controllers_tutorials

C++
2
star
58

pal_msgs

Commonly used messages, services and action in PAL
CMake
2
star
59

pal_hey5

Python
2
star
60

pal_robotiq_gripper

Python
2
star
61

reem_tutorials

Basic tutorials to get familiar with the REEM robot in a simulated environment.
C++
1
star
62

tiago_wbc

C++
1
star
63

simple_models_robot

C++
1
star
64

pal_face_detector_opencv

node providing OpenCV's face detection with the PAL specific message
C++
1
star
65

pal_wsg_gripper

Python
1
star
66

talos_moveit_config

CMake
1
star
67

gpd_utils

C++
1
star
68

ari_simulation

CMake
1
star
69

simple_grasping_action

Python
1
star
70

reem_moveit_config

Configuration package for MoveIt! for the robot REEM
CMake
1
star
71

simple_learning

Demo to teach TIAGo upper body movements by demonstration
Python
1
star
72

pal_walking_tutorials

C++
1
star
73

reem_movements_creator

Python
1
star
74

pal_vision_segmentation

The pal_vision_segmentation package provides segmentation nodes based on various techniques. Masked image or mask is provided, and can be tuned via dynamic_reconfigure.
C++
1
star
75

tiago_description_calibration

CMake
1
star
76

pal_gazebo_plugins

Common Gazebo v1.9+ plugins used by the PAL Robotics robots
C++
1
star
77

reem_tabletop_grasping

This package provides integration between perception, grasp planning and grasp execution for the REEM robot.
Python
1
star
78

clipper

Fork (and catkinized version) of clipper, a polygon clipping library
C++
1
star
79

include-what-you-use-ros

Tools built around https://github.com/include-what-you-use/include-what-you-use for simplyfing use with ROS2
Shell
1
star
80

pal_2dnav

C++
1
star
81

tiago_dual_description_calibration

CMake
1
star
82

rqt_joint_trajectory_controller_hydro

Python
1
star
83

reem_object_recognition

1
star
84

move_by_ft_wrist

Python
1
star
85

ari_moveit_config

CMake
1
star
86

pal_motion_loader

Python
1
star
87

reem_navigation

Configuration and launch files for the navigation stack on REEM
CMake
1
star
88

omni_base_tutorials

1
star
89

talos_tutorials

1
star