Hi,
I am using PG70 gripper with schunk LWA4P arm. I am using ROS for my development. PG70 manual mentions that it has a range for gripping force from 30-200 N. This can help in varying the way how gripper can hold different objects. For example, force applied to hold a plastic object, a glass object and a rubber object has to be different.
So can anyone please help me in getting gripping force from PG70 gripper?
Thanks in advance.....
↧
How to get force feedback from PG70 gripper?
↧
Using Grippers in Stage
Hey,
I have a simulation in Stage with multiple robots that are equipped with grippers:
define simpleGripper gripper
(
# gripper properties
paddle_size [ 0.66 0.1 0.4 ]
paddle_state [ "open" "down" ]
autosnatch 0
# model properties
size [ 0.2 0.3 0.2 ]
)
Now I'd like to tell the robots that they should grab an object and transport it to a specific position. I don't want to use the pr2_controller since it is too complicated. Is there a simple way to write a node that generates goals for the gripper and publishes that goal?
I thought about using the control_msgs/GripperCommand.action, something like that:
#include
#include
#include
typedef actionlib::SimpleActionClient GripperCommandClient;
int main(int argc, char** argv)
{
ros::init(argc, argv, "simple_gripper");
ros::NodeHandle n;
GripperCommandClient ac("gripper_action", true);
control_msgs::GripperCommandGoal goal;
while(!ac.waitForServer(ros::Duration(5.0)))
{
ROS_INFO("Waiting for the move_base action server to come up");
}
ROS_INFO_STREAM("sending goal...");
ac.sendGoal(goal);
ac.waitForResult();
if(ac.getState() == actionlib::SimpleClientGoalState::SUCCEEDED)
ROS_INFO_STREAM("reached its goal!");
else
ROS_INFO_STREAM("failed to move to its goal!");
}
But actually I don't know how to address the "gripper_action" in that line: GripperCommandClient ac("gripper_action", true); since there is no topic published for the gripper.
And furthermore I have no idea how to set the goal for a gripper.
Thanks in advance! :)
↧
↧
Subscribing action server message
Hey,
I am trying to simulate the Kinova Mico arm in a Gazebo simulation. I have everything working, executing paths calculated in Moveit. The only thing I have yet to simulate is the gripper. I am using the [wpi_jaco package](http://wiki.ros.org/wpi_jaco) to communicate with the hardware arm, that we also have here. It uses an action server to actuate the fingers.
It sends a control_msgs::GripperCommandActionGoal message to the goal topic.
What I want is to also receive the message and then convert the wanted position to an angle which I can publish to the controller topic. I wrote a normal subscriber to the topic but this isn't working. When building I get this error.
/opt/ros/indigo/include/ros/message_traits.h: In instantiation of ‘static const char* ros::message_traits::MD5Sum::value(const M&) [with M = double]’: /opt/ros/indigo/include/ros/message_traits.h:255:104: required from ‘const char* ros::message_traits::md5sum(const M&) [with M = double]’ /opt/ros/indigo/include/ros/publisher.h:112:7: required from ‘void ros::Publisher::publish(const M&) const [with M = double]’ /home/laurens/catkin_ws/src/mico_sim/mico_arm_gazebo/src/gazebo_rviz.cpp:95:35: required from here /opt/ros/indigo/include/ros/message_traits.h:126:34: error: request for member ‘__getMD5Sum’ in ‘m’, which is of non-class type ‘const double’
return m.__getMD5Sum().c_str();
How can I make it work?
↧
gazebo_ros_vacuum_gripper not working as expected
Hello there,
I am trying to use the gazebo_ros_vacuum_gripper plugin from gazebo_ros_pkgs in Jade. My URDF can be found [here](https://github.com/JoshMarino/QuadrupedModel/tree/master). Basically it is a box that starts out roughly 0.5 m above ground and then gravity pulls it downward. On the underside of my box, I have added a link/joint for the vacuum_gripper.
I am able to turn the grasping service on and it notifies me on the topic `/Gecko_2/vacuum_gripper` that it is grasping. However, if I apply a body force in Gazebo that is just larger than the weight of the box, the box moves upward off the ground plane in Gazebo. When this occurs, the state of `/Gecko_2/vacuum_gripper` stays `True` (grasping).
This should not happen from my understanding of the vacuum_gripper. Is there something I am doing wrong?
I want to be able to extend this example to a walking robot in which each leg will be attached to the ground_plane through a vacuum_gripper.
Any help would be appreciated, including going about this a different way. I looked into `gazebo/physics/gripper.cc`, but have not yet tried. It appears to create a `fixedJoint` between the gripper and the grasping object for a certain amount of time.
↧
Object slips out of gripper | Gazebo 7 | UR5 | Robotiq 3 finger
We want to manipulate some simple objects in Gazebo 7 using UR5 and Robotiq 3 finger gripper. We are using ROS indigo on Ubuntu 14.04.
The **object slips out of the gripper every time**. Sample video: https://youtu.be/-YixCumWrt0
We have tried changing the mu1, mu2, kp, kd values of the gripper and the object. But no luck. We are using the Robotiq package from DRCSIM.
Have anyone faced similar issues? We will greatly appreciate a quick solution!
↧
↧
how to use the pr2 gripper with standard ROS controllers?
Hi,
I have a mobile robot which has an arm, at the end of which I attached the PR2 gripper. Before, I was using another gripper but grasping an object manually proved too error prone (object slips, jitters, etc). So I started using the PR2 gripper and would like to have it open and close, and manually pick up an object and drop it somewhere.
I face the following situation. In order to use the PR2 gripper, I need to look for and compile source code of the controllers, the actions server and so on. Seems a too long way to go. Additionally, the sources are for indigo (some times as old as hydro), and my project is running on Kinetic.
So my question is, is there an easy way to control the PR2 gripper with standard ROS controllers? What about the gripper_action_controller? or one of the effort_controllers? Any recent simple example not using MoveIt (which does not run on Kinetic)?
Thanks a lot.
↧
Spawn UR5 Robot with Robotiq 3 Finger Gripper in Gazebo/MoveIt
Hey guys, im not very experienced using ROS. I want to add a Robotiq 3 finger gripper on a UR5 robot and simulate both in Gazebo to control it using MoveIt. I got the packages for the gripper [link text](http://wiki.ros.org/robotiq) and for the robot [link text](https://github.com/ros-industrial/universal_robot) but how can i link them together? Im using Ros Indigo on Ubuntu 14.04. Thanks for your support!
↧
A manipulator with gripper for simulation
I am experimenting with high level manipulation tasks and wish to see the results in simulation. I would like to use Moveit for motion planning and observe the simulated results in Gazebo.
*I need some suggestions on manipulators with a simple gripper as its end-effector* (2 finger like PR2 will do just fine).
I tried to use a pr2 gripper with ur5 but I think I am not able to get the controllers right. Also the motion planning gets really weird in moveit after adding the gripper.
↧
Convert commands from prismatic joint to revolute for FollowJointTrajectory controller, robot arm gripper
I have a robotic arm ([Cyton Gamma 300](http://robots.mobilerobots.com/wiki/Cyton_Gamma_300_Arm)) with a 2-finger gripper, one joint mimics another (see the picture below).
My goal is to control and execute trajectories on the gripper using **MoveIt**.

The gripper-related URDF/`xacro` chunk is as follows (the complete `xacro` description of the robot is [here](https://github.com/selyunin/cyton_gamma_300/blob/master/cyton_gamma_300_description/urdf/cyton_gamma_300.urdf.xacro)):
As it can be seen from the description, (i) the joints are defined as **prismatic**, and as it can be seen from the photo,
(ii) the gripper of the real robot is controlled by one 'dynamixel' motor, which is **revolute**. For the prismatic joint the displacement is specified in meters, whether for the dynamixel joint the rotation angle is defined in Radians.
My goal is to use *MoveIt*, both with Gazebo and the real robot and be able to pick/place objects with the arm,
leveraging available MoveIt capabilities. I am able to plan & execute trajectories for the manipulator (i.e. shoulder/wrist/elbow, 7 dynamixel motors in total), and bring the arm to the target position in space.
However, I cannot execute a trajectory for the gripper properly, since MoveIt reads URDF description and generates a trajectory w.r.t to limits in the URDF, (i.e. it provides displacements in meters, not angle in Radians).
To execute a trajectory in MoveIt I define `FollowJointTrajectory` controller as follows (complete configuration can be found [here](https://github.com/selyunin/cyton_gamma_300/)):
controller_manager_ns: controller_manager
controller_list:
- name: cyton_gamma_300/arm_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- shoulder_roll_joint
- shoulder_pitch_joint
- elbow_roll_joint
- elbow_pitch_joint
- elbow_yaw_joint
- wrist_pitch_joint
- wrist_roll_joint
- name: cyton_gamma_300/gripper_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- gripper_finger1_joint
For instance, If I want to plan the following trajectory (gripper should come from red to yellow):

I get the following on my `/cyton_gamma_300/gripper_controller/follow_joint_trajectory/goal` (which is exactly a displacement):
goal:
trajectory:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: /world
joint_names: ['gripper_finger1_joint']
points:
-
positions: [0.00961187223614116]
velocities: [0.0]
accelerations: [-0.9530453139061077]
effort: []
time_from_start:
secs: 0
nsecs: 0
-
positions: [0.008]
velocities: [-0.042613731475556624]
accelerations: [-0.9775129354039888]
effort: []
time_from_start:
secs: 0
nsecs: 58159883
-
positions: [0.007838502345021854]
velocities: [-0.058384310708380155]
accelerations: [-0.6298771853005602]
effort: []
time_from_start:
secs: 0
nsecs: 60967905
-
#and so on... the rest is omitted for brevity
Although the trajectory is fine for Gazebo, and will be executed as expected, for the real robot it is a problem since these command would be interpreted as rotation angle, which is not correct.
Question: how to map commands from FollowJointTrajectory to another type (i.e. from prismatic to revolute), and map the results back (i.e. feedback). Is there a standard way of approaching this problem?
*P.S. code is [here](https://github.com/selyunin/cyton_gamma_300/). Thanks in advance!*
↧
↧
UR5 - Robot model does not have a Gripper
If anybody could help, I am new to ROS and we are modeling a Universal Robot 5 from the ROS package supplied however the model does not have the gripper which we have installed in real life. How do I get a gripper on the simulation model?
↧
set IO on IRC5 controller using moveIt!
Hi,
I want to set IO on IRC5 controller (Working on ABB IRB 4600 robot) using moveIt! for controlling a simple pneumatic gripper..Is there some plugin to moveIt! available to do so ! Please let me know which approach should i use for controlling the simple pneumatic gripper using moveIt!
Thanks !
↧
URDF transmission linkage question (MeArm)
I have a [MeArm](http://learn.mime.co.uk/docs/building-the-mearm-deluxe) with a hip joint connected to a torso connected to a shoulder joint -> upper arm -> elbow joint -> lower arm -> claw joint.
I created a [URDF](https://github.com/eleciawhite/TyPEpyt/blob/master/ros_ws/src/typepyt/typepyt.urdf) to describe it and it works ok. (It doesn't have a gripper, just a resolute wrist joint for now, that isn't really my question.)
I have it working Gazebo and rviz, even MoveIt!. Here you can see the physical arm, in the position command by MoveIt and shown in the rviz:

However, my URDF is too simple! When the shoulder goes past 90, the elbow joint is affected and my position is wrong. The transmission linkages are way more complex on the MeArm than in my URDF. Note: I am an embedded software engineer, new to ROS, and not mechanically inclined.
Here you can see the error where the shoulder pulls back, not up.

So, how do I fix the URDF? Is it in the transmission types section of the URDF? I found the [transmission interface](http://docs.ros.org/jade/api/transmission_interface/html/c++/group__transmission__types.html) page but is this a four bar transmission? How do I figure out what parameters to use? What mechanical engineering term do I search for to find other similar arms I can crib from? (I mentioned "not an ME", right?)
Also, does anyone have a super simple gripper/claw in URDF? As demonstrated by my rods-and-boxes approach, I'm fine with the simulation being an 80% approximation instead of a truly accurate description. I'd rather write the software or play with hardware than spend all my time in sim.
Thank you!
A few more images:
Good:

Not good:

↧
Gripper Visualization mismatch
Hello there,
I am trying to control a gripper (PG 70). Connecting to the real Hardware i encountered the following prblem:
The Gripper position displayed in
RViz doesn't match the real Grippers
Position, which results in the
inability to perform certain
movements due to wrong collision
detection.


I am running ROS Indigo on Ubuntu 14.04. To connect the Hardware I use ipa_canopen
Any Ideas?
Edit: Moved the other question [here](http://answers.ros.org/question/267645/why-does-the-lwa-4p-stop/)
↧
↧
Robotiq gripper in Gazebo
I am using a robotiq gripper with the UR10 robot. I have successfully spawned it in gazebo. However gazebo does not subscribe to the end effector topic. Any possible ways to solve this would be really helpful
So mainly how to control robotiq gripper is my question.
launch file:
-------------------------------------------------------ur_test.urdf-----------------------
↧
Recommendations mobile manipulator for university
Hi everybody,
I'm looking for recommendations / experiences / suggestions for **robotic hardware for mobile manipulation with ROS**.
We have some practical experience with Turtlebots 2 concerning simple application on top of SLAM and navigation with ROS, but we'd like to also gather some knowledge concerning grasping and mobile manipulation using MoveIt. We've come to realize that simulation only didn't really cut it for us in SLAM/navigation, we expect the same for manipulation.
I'm by no means a robotic (nor hardware) expert. I've taken a look at what options are on the market and it seems to me that there are basically only two types of options for **"ROS-supported" HW**:
1. **light robots** (e.g., TB2 / 3) with light arms (max 0.5 Kg payload): e.g., Niryo, PhantomX, Widow-X -> reasonably cheap, few thousand $
2. heavier ("research" or **industrial grade**) robots with industrial-grade arms ( starting from 3kg payloads): Kinova, UR, Kuka, Robotis... ->>= ~50K $ per robot **(mobile base + arm + sensors)**
**Could I please ask what other ROS practitioners have been using and what has been their experience with assembly and control using MoveIt?**
Has anybody been able to assemble a mid-range robot for a **mid-range price**?
For instance I'd be happy enough if the robot would be heavy and strong enough to open a door...
Thanks in advance for any pointer and suggestion.
↧
Path Constraints not keeping end effector in fixed configuration move
Hi,
I am trying to keep the end effector of the UR arm parallel to the ground using Moveit. I give the Poses to the arm via group.setPoseTarget(tgt_pose). I am testing yet simple poses. For instance the arm should move from location 1 to location 2, while keeping the gripper horizontal levelled. I am applying Path constraints to limit the motion of the gripper from the wrist, so that in any moveplan the gripper always remains horizontal.

For example consider a heavy box attached to the box and the gripper has to keep it horizontal while the gripper moves to the other point. or may be I am doing some thing wrong or everything wrong. I am following [this](http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/pr2_tutorials/planning/src/doc/move_group_interface_tutorial.html#planning-with-path-constraints) and trying to apply the constraints. The result is that no motion plan is computed and the node ends. I am attaching snipet of code and the Moveit planer results.
**CODE**
int main(int argc, char **argv)
{
ros::init(argc, argv, "move_group_interface_tutorial");
ros::NodeHandle node_handle;
ros::AsyncSpinner spinner(1);
spinner.start();
moveit::planning_interface::MoveGroupInterface group("arm");
moveit::planning_interface::PlanningSceneInterface planning_scene_interface;
group.setPlannerId("RRTConnectkConfigDefault");
//group.setPlanningTime(30.0);
const robot_state::JointModelGroup *joint_model_group =
group.getCurrentState()->getJointModelGroup("arm");
ros::Publisher display_publisher = node_handle.advertise
("/move_group/display_planned_path", 1, true);
rviz_updater = node_handle.advertise("/rviz/moveit/update_goal_state", 1, true);
timer = node_handle.createTimer(ros::Duration(0.1), timerCallback);
moveit_msgs::DisplayTrajectory display_trajectory;
ROS_INFO("Reference frame: %s", group.getPlanningFrame().c_str());
ROS_INFO("Reference frame: %s", group.getEndEffectorLink().c_str());
moveit::planning_interface::MoveItErrorCode error_code;
srand(time(NULL));
// Planning to a Pose goal
geometry_msgs::Pose target_pose0,target_pose1,target_pose2,target_pose3,target_pose4,target_pose5;
geometry_msgs::PoseStamped target_pose;
bool success;
moveit_msgs::OrientationConstraint ocm;
ocm.link_name = "arm_wrist_3_link";
ocm.header.frame_id = "base_link";
ocm.orientation.x = -0.0000;
ocm.orientation.y = -0.0000;
ocm.orientation.z = 0.718;
ocm.orientation.w = 0.696;
//ocm.orientation.w = 1.0;
ocm.absolute_x_axis_tolerance = 0.1;
ocm.absolute_y_axis_tolerance = 0.1;
ocm.absolute_z_axis_tolerance = 3.14;
ocm.weight = 1.0;
moveit_msgs::Constraints test_constraints;
test_constraints.orientation_constraints.push_back(ocm);
group.setPathConstraints(test_constraints);
moveit::planning_interface::MoveGroupInterface::Plan move_plan; //Now, we call the planner to compute the plan and visualize it.
//----------------------------------------------------------------
std::cout << "current pose = " << curentPose()<
↧
WSG32 gripper with a robot
Hey there,
I am fairly new to ROS. I am trying to make the WSG32 gripper work in combination with a robot.
The robot on its own works well in moveit and reality (motion planning, collision etc.).
Now I downloaded https://github.com/nalt/wsg50-ros-pkg as a driver (compatible with WSG32). I fused the urdf files and renewed the moveit config. When I launch I can see the robot plus gripper but have many errors because of the controllers.
I downloaded ros_control and ros_controllers. **How can I use the gripper_action_controller for the WSG32?**
controllers.yaml:
controller_list:
- name: ""
action_ns: joint_trajectory_action
type: FollowJointTrajectory
default: true
joints: [joint_s, joint_l, joint_e, joint_u, joint_r, joint_b, joint_t]
controller_list:
- name: ""
action_ns: gripper_action_controller
type: PositionJointInterface
default: true
joints: [base_joint_gripper_left, base_joint_gripper_right]
joint_names:
controller_joint_names: ['joint_s', 'joint_l', 'joint_e', 'joint_u', 'joint_r', 'joint_b', 'joint_t','base_joint_gripper_right', 'base_joint_gripper_left']
when planning and executing in Moveit:
[ INFO] [1509975842.315348793]: Stereo is NOT SUPPORTED
[ INFO] [1509975842.315457325]: OpenGl version: 3 (GLSL 1.3).
[ERROR] [1509975842.357673061]: Unknown controller type: PositionJointInterface
[ INFO] [1509975842.357742133]: Returned 0 controllers in list
[ INFO] [1509975842.371964621]: Trajectory execution is managing controllers
and:
[ERROR] [1509975852.081570148]: Unable to identify any set of controllers that can actuate the specified joints: [ joint_b joint_e joint_l joint_r joint_t joint_u ]
[ERROR] [1509975852.081595850]: Known controllers and their joints:
[ERROR] [1509975852.081625881]: Apparently trajectory initialization failed
one problem is that name is for both controllers "". But when I use rostopic list this returns:
/joint_trajectory_action/cancel
/joint_trajectory_action/feedback
/joint_trajectory_action/goal
/joint_trajectory_action/result
/joint_trajectory_action/status
no controller is found if I enter any name.
↧
↧
Part of the robot (UR5 with robotiq gripper) not showing up in gazebo
Hi,
I'm working on a simulation combining the UR5 arm and a robotiq 2-finger gripper together. The arm shows up completely in gazebo, but the base of the gripper does not show up despite added intertial parameters. But in Rviz it shows up just fine. So I guess gazebo doesn't like something about the robotiq xacro file, but I can't find out what. Hopefully someone can help me.
I'm using ROS Indigo and Gazebo 2.2.3.
Here you can see how it looks in rviz and gazebo: https://i.imgur.com/vHwSoId.png
Sometimes that triangle shows up, but not every time: https://i.imgur.com/VPYqIdS.png
This is the xacro file containing the description for the robotiq gripper: https://github.com/philwall3/robotiq/blob/patch-1/robotiq_2f_model/model/robotiq_2f_85.urdf.xacro
And this is the top level xacro that combines the arm and gripper and that I load in gazebo:
And here is the launch file:
↧
Gripper control via ABB IRC5 controller (and IRB 120 robot): drivers?
I am working with an **ABB IRB 120** robot controlled by an **IRC5** compact controller.
I was able to correctly install the ABB drivers and to move the robot using the provided ROS packages, via the Ethernet connection between my pc and the IRC5.
Now I want to mount a gripper (I have not choose the model yet) on the wrist and I am wondering if there is a chance to **connect and control the gripper directly via the IRC5 controller**.
In other words: is it possible to connect the gripper wires directly to the port on the upper arm of the robot and control it in the same way I do with the robot joints? Do drivers exsist for I/O of the IRC5?
Or should I provide a direct connection between my pc and the gripper and then manage the gripper implementing a dedicated ROS node?
EDIT: thankyou gvdhoom, I will work with a two-finger gripper and I am still considering programmable vs simple open-close options. I saw that some grippers provide a RS485 serial interface. In such case, would you suggest me to connect the gripper directly to my pc (via RS485-USB connection) or to try and connect the gripper to the IRC5 I/O ports and then control the IRC5 output via the Ethernet connection (that I already use to control the robot positioning)?
Thankyou
↧
Pick and place execution in Simulation_"Solution found but controller failed during execution"
Hi,
I am trying to execute pick and place task using jaco arm in simulation.I am able to successfully send Pickup goals to moveit pick action server.In the Rviz GUI i am able to see the pickup actions and while executing it on simulated robot, I am getting following error,once the arm has reached the approach position
`"Solution found but controller failed during execution"` in the terminal from which i executed the script.
`"Controller kate/jaco2_gripper_controller/follow_joint_trajectory failed with error code INVALID_GOAL"` in the moveit terminal.
`"Trajectory message contains waypoints that are not strictly increasing in time."` in simulation terminal.
Can someone help me out in this regard?
↧