Coder Social home page Coder Social logo

prl_wsg_50's Introduction

#ROS package prl_wsg_50
original code from ROS package for Schunk WSG-50 Gripper downloaded 05/2018 Forked from: https://code.google.com/p/wsg50-ros-pkg

Modifications of this repository: Reading back state with high rates, open-loop control via topics, catkinized, modifications for hydro. Existing features are not discussed here - see original Wiki: https://code.google.com/p/wsg50-ros-pkg/wiki/wsg_50

Todo: Restructure code

Node wsg_50_ip (was: wsg_50_tcp)

Parameters

  • ip: IP address of gripper
  • port: Port of gripper
  • local_port: Local port for UDP
  • protocol: udp or tcp (default)
  • com_mode: polling (default), script or auto_update. See communication modes below.
  • rate: Polling rate in Hz.
  • grasping_force: Set grasping force limit on startup

Services

See https://code.google.com/p/wsg50-ros-pkg/wiki/wsg_50. Services currently block the reception of state updates.

/wsg_50_driver/ack                  /wsg_50_driver/move_incrementally 
/wsg_50_driver/get_loggers /wsg_50_driver/release
/wsg_50_driver/grasp /wsg_50_driver/set_acceleration
/wsg_50_driver/graspForce /wsg_50_driver/set_force
/wsg_50_driver/homing /wsg_50_driver/set_logger_level
/wsg_50_driver/move /wsg_50_driver/stop
  • /wsg_50_driver/ack [no parameters] Acknoledge an error condition.

  • /wsg_50_driver/get_loggers [no parameters]

  • /wsg_50_driver/grasp [object width (mm), speed (mm/s)] Grasps the object with givin width and speed. Object must be released before moving the grippers fingers.

  • /wsg_50_driver/graspForce [force to grasp with (N), speed (mm/s)] Grasps object with given force and speed. Minus soft limit must be set to allow gripping. Refer to WSG 50 "Mounting and Operating Manual" and the "Command Set Reference Manual" for setting the minus soft limit.Object must be released before moving the grippers fingers.

  • /wsg_50_driver/homing [no parameters] Sets up reference for gripper finger position.

  • /wsg_50_driver/move [width (mm), speed (mm/s)] Moves the fingers to the specified width at the given speed. Fingers cannot be blocked.

  • /wsg_50_driver/move_incrementally []

  • /wsg_50_driver/release [width (mm), speed (mm/s)] Releases the object being held and moves to the given position at the given speed.

  • /wsg_50_driver/set_acceleration [] Sets the acceleration for movment of the gripper fingers.

  • /wsg_50_driver/set_force [force (N)] Sets the force the gripper will grasp an object at.

  • /wsg_50_driver/set_logger_level [no parameters]

  • /wsg_50_driver/stop [no parameters]

Topics

  • ~/goal_position [IN, wsg_50_common/Cmd], in modes script, auto_update:
    Position goal; send target position in mm and speed
  • ~/goal_speed [IN, std_msgs/Float32], in mode script:
    Velocity goal (in mm/s); positive values open the gripper
  • ~/moving [OUT, std_msgs/Bool], in modes script, auto_update:
    Signals a change in the motion state for position control. Can be used to wait for the end of a gripper movement. Does not work correctly yet for velocity control, since the gripper state register does not directly provide this information.
  • ~/state [OUT, std_msgs/State]:
    State information (opening width, speed, forces). Note: Not all fields are available with all communication modes.
  • /joint_states [OUT, sensor_msgs/JointState]:
    Standard joint state message
  • /left_dsa_marker_array []
    Contains an array of markers corresponding to the left dsa finger sensor layout. The markers change color based on the pressure applied to the sensor.
  • /right_dsa_marker_array []
    Contains an array of markers corresponding to the right dsa finger sensor layout. The markers change color based on the pressure applied to the sensor.
  • /left_dsa_marker_array []
    Contains an array of integers corresponding to the left dsa finger sensor layout. The value is associated to the amount of pressure applied to the sensor and ranges from 0 to 3895.
  • /right_dsa_marker_array []
    Contains an array of integers corresponding to the right dsa finger sensor layout. The value is associated to the amount of pressure applied to the sensor and ranges from 0 to 3895.

Communication modes (closed-loop control)

Select by com_mode parameter.

  • Polling
    Gripper state is polled regularly using built-in commands (original implementaion). Service calls (e.g. move) block polling as long as the gripper moves. The topic interface is not available. Up to 15 Hz could be reached with the WSG-50 hardware revision 2.

  • Script
    Allows for closed-loop control with a custom script (see below) that supports up to 2 FMF finger. Gripper state is read synchronously with the specified rate. Up to 30 Hz could be reached with the WSG-50 hardware revision 2. The gripper can be controlled asynchronously by sending position or velocity goals to the topics listed above. Commands will be sent with the next read command in the timer callback timer_cb().
    The service interface can still be used - yet, they are blocking the gripper communication. There are no state updates while the gripper is moved by a service.

  • Auto_update
    Requests periodic updates of the gripper state (position, speed, force; less data than with the script). Up to 140 Hz could be reached with the WSG-50 hardware revision 2. All responses of the gripper must be received by a reading thread which also publishes the ROS messages. Therefore, most commands in functions.cpp cannot be used. Position targets are sent asynchronously to the gripper using the built-in commands.
    The services are disabled.

Gripper script

The script cmd_measure.lua must be running on the gripper for the script mode. It allows for non-blocking position and velocity control and responds with the current position, speed, motor force and up to two FMF finger forces. The custom commands 0xB0 (read only), 0xB1 (read, goal position and speed), 0xB2 (read, goal speed) are used. Tested with firmware version 2.6.4. There have been minor API changes since 1.x.

Node wsg_50_can

Remains unchanged; new features not implemented here.

prl_wsg_50's People

Contributors

kaiden898 avatar

Watchers

Jeongseok (JS) Lee avatar Siddhartha Srinivasa avatar  avatar

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.