Skip to content

Latest commit

 

History

History

egomo_node

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

xamla_egomo_node

General Information

This node runs on the Raspberry Pi on the Egomo sensor and offers a ROS-service which offers ROS-actions to asynchronously control a connected gripper. Furthermore different topics are offered in order to get information about the gripper, force torque (FT) and inertial measurement unit (IMU).

Overview

Topic XamlaGripper

Publishes the state of the gripper using XamlaGripper.msg. Subscribe by typing the following in your terminal:

rostopic echo /XamlaEgomo/XamlaGripper
Published data type
header std_msgs/header
grip_force float32
left_finger_force float32
right_finger_force float32
pos_fb float32
uint8 state
bool object_gripped

Topic XamlaGripperJointState

Publishes the state fo the gripper as joint state messages (JointState). Subscribe by typing the following in your terminal:

rostopic echo /joint_states
Published data type
header std_msgs/header
name string[]
position float64[]
velocity float64[]
effort float64[]

Topic XamlaForceTorque

Publishes sensor readings of the force torque sensor using WrenchStamped. Subscribe by typing the following in your terminal:

rostopic echo /XamlaEgomo/XamlaForceTorque
Published data type
header std_msgs/header
wrench geometry_msgs/Wrench

Topic XamlaIOIMU

Publishes sensor readings of the inertial measurement unit (IMU) using AccelStamped. Subscribe by typing the following in your terminal:

rostopic echo /XamlaEgomo/XamlaIOIMU
Published data type
header std_msgs/header
accel geometry_msgs/Accel

Service SendCommand

In order to send commands to the gripper this service was created (SendCommand.srv). The following commands are available:

Command value range description
reset 0 or 1 Resets the gripper when value is set from 1 -> 0 (falling edge)
max_speed 0-255 Controls the speed of the gripper
max_force 0-255 Controls the force of the gripper
pos_cmd 0.0-0.087 Moves the gripper to the position (in m)
out0 0 or 1 Turns on/off device at this board output (e.g. led, ir-led ord laser)
out1 0 or 1 Turns on/off device at this board output (e.g. led, ir-led ord laser)
out2 0 or 1 Turns on/off device at this board output (e.g. led, ir-led ord laser)

Notice that you should reset the gripper before use. During initialization the gripper moves. Here are two examples of valid calls of the service from the terminal.

rosservice call /XamlaEgomo/SendCommand "reset" 0
rosservice call /XamlaEgomo/SendCommand "pos_cmd" 0.05
rosservice call /XamlaEgomo/SendCommand "out0" 0

Action EgomoGripperActivate

This action can be used to activate/deactivate the gripper (EgomoGripperActivate.action). It gives feedback about whether the gripper has been activated.

Goal

name type description
activate bool true to activate gripper - false to deactivate gripper

Feedback

name type description
is_activated bool true if gripper is activated - false if gripper is deactivated

Result

name type description
is_activated bool true if gripper is activated - false if gripper is deactivated

Action EgomoGripperPos

This action can be used to send the gripper position commands (EgomoGripperPos.action). Furthermore the speed and the force can be set directly if needed. The feedback and the result contain the current position of the gripper and whether an object has been gripped.

Goal

name type description
goal_pos float32 The desired position in m (e.g. 0.0 for close or 0.087 for open)
set_speed_and_force bool If true the given speed and the force are set directly with the position command.
speed uint8 Speed of the gripper (0 is lowest, 255 is highest speed)
force uint8 Force of the gripper (0 is lowest, 255 is highest force)

Feedback

name type description
pos_fb float32 The current position of the gripper
object_gripped bool True if an object has been gripped and false otherwise

Result

type name description
pos_fb float32 The current position of the gripper
object_gripped bool True if an object has been gripped and false otherwise

Troubleshooting FAQ

  • Q1: I get the error "No device could be found!!!".
  • A1: The IO-Board connected the the Raspberry Pi could not be found. Make sure that it is connected properly. Usually the IO-Board should be recognized by the Raspberry Pi as a device /dev/ttyACM0 or any other number.