Simple YARP-enabled server for the Force Dimension Omega.3 device.
Supports Linux only at the moment.
- the SDK of the robot is automatically downloaded during the build process
libpthread
andlibusb
, both required by the robot SDK, can be easily installed, e.g. in Ubuntu useapt install libusb-1.0-0-dev libpthread-stubs0-dev
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
.
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 theyarp-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.
- 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
orposition_parameters
please call position or force control again. The server will not return in that state on its own.
This repository is maintained by:
@xenvre |