3#ifndef __CARTESIAN_CONTROL_CLIENT_HPP__
4#define __CARTESIAN_CONTROL_CLIENT_HPP__
9#include <yarp/os/Bottle.h>
10#include <yarp/os/BufferedPort.h>
11#include <yarp/os/PortReaderBuffer.h>
12#include <yarp/os/RpcClient.h>
14#include <yarp/dev/Drivers.h>
16#include "ICartesianControl.h"
17#include "CartesianControlMsgs.h"
18#include "CartesianControlClient_ParamsParser.h"
37 void onRead(yarp::os::Bottle & b)
override;
41 double localArrivalTime {0.0};
43 double timestamp {0.0};
44 double duration {0.0};
45 float progress {0.0f};
47 std::vector<double> x;
48 mutable std::mutex mtx;
66 yarp::dev::ReturnValue
solvePose(
const std::vector<double> & xd, std::vector<double> & q)
override;
67 yarp::dev::ReturnValue
moveJoint(
const std::vector<double> & xd)
override;
68 yarp::dev::ReturnValue
moveLinear(
const std::vector<double> & xd)
override;
69 yarp::dev::ReturnValue
moveVelocity(
const std::vector<double> & xdotd)
override;
71 yarp::dev::ReturnValue
forceControl(
const std::vector<double> & fd)
override;
73 yarp::dev::ReturnValue
changeTool(
const std::vector<double> & x)
override;
77 void pose(
const std::vector<double> & x)
override;
78 void twist(
const std::vector<double> & xdot)
override;
79 void wrench(
const std::vector<double> & w)
override;
84 yarp::dev::ReturnValue setParameters(
const std::map<roboticslab::ICartesianControl::Config, double> & params)
override;
85 yarp::dev::ReturnValue getParameters(std::map<roboticslab::ICartesianControl::Config, double> & params)
override;
88 bool open(yarp::os::Searchable & config)
override;
89 bool close()
override;
94 yarp::os::RpcClient rpcClient;
95 yarp::os::BufferedPort<yarp::os::Bottle> fkInPort;
96 yarp::os::BufferedPort<yarp::os::Bottle> commandPort;
98 roboticslab::CartesianControlMsgs rpcSender;
Definition CartesianControlClient_ParamsParser.h:44
The CartesianControlClient class implements ICartesianControl client side.
Definition CartesianControlClient.hpp:60
yarp::dev::ReturnValue forceControl(const std::vector< double > &fd) override
Force control.
Definition ICartesianControlImpl.cpp:94
void pose(const std::vector< double > &x) override
Achieve pose.
Definition ICartesianControlImpl.cpp:122
yarp::dev::ReturnValue actuateTool(roboticslab::ICartesianControl::Actuator command) override
Actuate tool.
Definition ICartesianControlImpl.cpp:115
yarp::dev::ReturnValue stopControl() override
Stop control.
Definition ICartesianControlImpl.cpp:101
yarp::dev::ReturnValue moveVelocity(const std::vector< double > &xdotd) override
Linear move with given velocity.
Definition ICartesianControlImpl.cpp:80
yarp::dev::ReturnValue moveLinear(const std::vector< double > &xd) override
Linear move to target position.
Definition ICartesianControlImpl.cpp:73
void twist(const std::vector< double > &xdot) override
Instantaneous velocity steps.
Definition ICartesianControlImpl.cpp:129
yarp::dev::ReturnValue solvePose(const std::vector< double > &xd, std::vector< double > &q) override
Inverse kinematics.
Definition ICartesianControlImpl.cpp:57
yarp::dev::ReturnValue changeTool(const std::vector< double > &x) override
Change tool.
Definition ICartesianControlImpl.cpp:108
void wrench(const std::vector< double > &w) override
Exert force.
Definition ICartesianControlImpl.cpp:136
yarp::dev::ReturnValue getState(roboticslab::ICartesianControl::ControllerState &state) override
Current state and position.
Definition ICartesianControlImpl.cpp:30
yarp::dev::ReturnValue moveJoint(const std::vector< double > &xd) override
Move in joint space.
Definition ICartesianControlImpl.cpp:66
yarp::dev::ReturnValue getParameter(roboticslab::ICartesianControl::Config vocab, double *value) override
Retrieve a configuration parameter.
Definition ICartesianControlImpl.cpp:150
yarp::dev::ReturnValue gravityCompensation() override
Gravity compensation.
Definition ICartesianControlImpl.cpp:87
yarp::dev::ReturnValue setParameter(roboticslab::ICartesianControl::Config vocab, double value) override
Set a configuration parameter.
Definition ICartesianControlImpl.cpp:143
Responds to streaming FK messages.
Definition CartesianControlClient.hpp:35
Abstract base class for a cartesian controller.
Definition ICartesianControl.h:22
Streaming
Streaming vocabs.
Definition ICartesianControl.h:63
Actuator
Actuator control vocabs.
Definition ICartesianControl.h:90
Config
Controller configuration vocabs.
Definition ICartesianControl.h:104
The main, catch-all namespace for Robotics Lab UC3M.
Definition groups.dox:6
Controller state structure.
Definition ICartesianControl.h:120