/yarp-omega3

Simple YARP-based server to send position/force set points to a Force Dimension Omega.3 robot

Primary LanguageC++GNU General Public License v2.0GPL-2.0

yarp-omega3

CI badge

Simple YARP-enabled server for the Force Dimension Omega.3 device.

Supports Linux only at the moment.

Dependencies

Notes:

  • the SDK of the robot is automatically downloaded during the build process
  • libpthread and libusb, both required by the robot SDK, can be easily installed, e.g. in Ubuntu use
    apt install libusb-1.0-0-dev libpthread-stubs0-dev
    

How to build

git clone https://github.com/robotology-playground/yarp-omega3
cd yarp-omega3
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=<where_to_install> ../
make install

In order to use the device in user space, you need to import the provided udev rule, e.g. in /etc/udev/rules.d.

How to use

Run yarp-omega3-server and send RPC commands to /yarp-omega3-server/rpc:i.

please run the yarpserver if you did not already before running the yarp-omega3-server

Available commands are

  • help
  • set_force(f_x, f_y, f_z) (send a force reference)
  • set_position(x, y, z) (send a static position)
  • track_position(x, y, z) (send a position, to be used in streaming mode)
  • tracking_parameters(amax, vmax, jerk) (set motion parameters)
  • position_parameters(amax, vmax, jerk) (set motion parameters)
  • stop (completely disengange robot control)
  • quit (close the module)

The state of the robot is available in forms of a yarp::sig::Vector sent over the port /yarp-omega3-server/robot_state:o. It comprises 9 values (3D Cartesian position, 3D linear velocity and 3D exchanged force).

The aforementioned motion parameters are:

  • amax, the maximum linear acceleration;
  • vmax, the maximum linear velocity;
  • jerk, the maximum jerk.

Sample modules written in Python are available.

Note:

  • when connected to a usb hub it might be neccesary to reboot system to connect to the robot for the first use.
  • the module switches from position to force control depending on the input from the user. After calling tracking_parameters or position_parameters please call position or force control again. The server will not return in that state on its own.

Maintainers

This repository is maintained by:

@xenvre