Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
bigprint
Universal_Robots_ROS_Driver
Commits
6f0f2c23
Unverified
Commit
6f0f2c23
authored
Feb 05, 2020
by
Felix Exner
Committed by
GitHub
Feb 05, 2020
Browse files
Merge pull request #1 from UniversalRobots/velocity_interface
Adds a velocity interface to the driver.
parents
acfffd42
00e89942
Changes
26
Hide whitespace changes
Inline
Side-by-side
ur_controllers/controller_plugins.xml
View file @
6f0f2c23
...
...
@@ -6,7 +6,12 @@
</class>
<class
name=
"position_controllers/ScaledJointTrajectoryController"
type=
"position_controllers::ScaledJointTrajectoryController"
base_class_type=
"controller_interface::ControllerBase"
>
<description>
Scaled joint trajectory controller
Scaled velocity-based joint trajectory controller
</description>
</class>
<class
name=
"velocity_controllers/ScaledJointTrajectoryController"
type=
"velocity_controllers::ScaledJointTrajectoryController"
base_class_type=
"controller_interface::ControllerBase"
>
<description>
Scaled velocity-based joint trajectory controller
</description>
</class>
</library>
ur_controllers/include/ur_controllers/hardware_interface_adapter.h
View file @
6f0f2c23
...
...
@@ -100,4 +100,132 @@ private:
std
::
vector
<
ur_controllers
::
ScaledJointHandle
>*
joint_handles_ptr_
;
};
namespace
ur_controllers
{
/**
* \brief Helper base class template for closed loop HardwareInterfaceAdapter implementations.
*
* Adapters leveraging (specializing) this class will generate a command given the desired state and state error using a
* velocity feedforward term plus a corrective PID term.
*
* Use one of the available template specializations of this class (or create your own) to adapt the
* ScaledJointTrajectoryController to a specific hardware interface.
*/
template
<
class
State
>
class
ClosedLoopHardwareInterfaceAdapter
{
public:
ClosedLoopHardwareInterfaceAdapter
()
:
joint_handles_ptr_
(
0
)
{
}
bool
init
(
std
::
vector
<
ur_controllers
::
ScaledJointHandle
>&
joint_handles
,
ros
::
NodeHandle
&
controller_nh
)
{
// Store pointer to joint handles
joint_handles_ptr_
=
&
joint_handles
;
// Initialize PIDs
pids_
.
resize
(
joint_handles
.
size
());
for
(
unsigned
int
i
=
0
;
i
<
pids_
.
size
();
++
i
)
{
// Node handle to PID gains
ros
::
NodeHandle
joint_nh
(
controller_nh
,
std
::
string
(
"gains/"
)
+
joint_handles
[
i
].
getName
());
// Init PID gains from ROS parameter server
pids_
[
i
].
reset
(
new
control_toolbox
::
Pid
());
if
(
!
pids_
[
i
]
->
init
(
joint_nh
))
{
ROS_WARN_STREAM
(
"Failed to initialize PID gains from ROS parameter server."
);
return
false
;
}
}
// Load velocity feedforward gains from parameter server
velocity_ff_
.
resize
(
joint_handles
.
size
());
for
(
unsigned
int
i
=
0
;
i
<
velocity_ff_
.
size
();
++
i
)
{
controller_nh
.
param
(
std
::
string
(
"velocity_ff/"
)
+
joint_handles
[
i
].
getName
(),
velocity_ff_
[
i
],
0.0
);
}
return
true
;
}
void
starting
(
const
ros
::
Time
&
/*time*/
)
{
if
(
!
joint_handles_ptr_
)
{
return
;
}
// Reset PIDs, zero commands
for
(
unsigned
int
i
=
0
;
i
<
pids_
.
size
();
++
i
)
{
pids_
[
i
]
->
reset
();
(
*
joint_handles_ptr_
)[
i
].
setCommand
(
0.0
);
}
}
void
stopping
(
const
ros
::
Time
&
/*time*/
)
{
}
void
updateCommand
(
const
ros
::
Time
&
/*time*/
,
const
ros
::
Duration
&
period
,
const
State
&
desired_state
,
const
State
&
state_error
)
{
const
unsigned
int
n_joints
=
joint_handles_ptr_
->
size
();
// Preconditions
if
(
!
joint_handles_ptr_
)
return
;
assert
(
n_joints
==
state_error
.
position
.
size
());
assert
(
n_joints
==
state_error
.
velocity
.
size
());
// Update PIDs
for
(
unsigned
int
i
=
0
;
i
<
n_joints
;
++
i
)
{
const
double
command
=
(
desired_state
.
velocity
[
i
]
*
velocity_ff_
[
i
])
+
pids_
[
i
]
->
computeCommand
(
state_error
.
position
[
i
],
state_error
.
velocity
[
i
],
period
);
(
*
joint_handles_ptr_
)[
i
].
setCommand
(
command
);
}
}
private:
typedef
std
::
shared_ptr
<
control_toolbox
::
Pid
>
PidPtr
;
std
::
vector
<
PidPtr
>
pids_
;
std
::
vector
<
double
>
velocity_ff_
;
std
::
vector
<
ur_controllers
::
ScaledJointHandle
>*
joint_handles_ptr_
;
};
}
// namespace ur_controllers
/**
* \brief Adapter for an velocity-controlled hardware interface. Maps position and velocity errors to velocity commands
* through a velocity PID loop.
*
* The following is an example configuration of a controller that uses this adapter. Notice the \p gains and \p
* velocity_ff entries: \code head_controller: type: "velocity_controllers/ScaledJointTrajectoryController" joints:
* - head_1_joint
* - head_2_joint
* gains:
* head_1_joint: {p: 200, d: 1, i: 5, i_clamp: 1}
* head_2_joint: {p: 200, d: 1, i: 5, i_clamp: 1}
* velocity_ff:
* head_1_joint: 1.0
* head_2_joint: 1.0
* constraints:
* goal_time: 0.6
* stopped_velocity_tolerance: 0.02
* head_1_joint: {trajectory: 0.05, goal: 0.02}
* head_2_joint: {trajectory: 0.05, goal: 0.02}
* stop_trajectory_duration: 0.5
* state_publish_rate: 25
* \endcode
*/
template
<
class
State
>
class
HardwareInterfaceAdapter
<
ur_controllers
::
ScaledVelocityJointInterface
,
State
>
:
public
ur_controllers
::
ClosedLoopHardwareInterfaceAdapter
<
State
>
{
};
#endif // ifndef UR_CONTROLLERS_HARDWARE_INTERFACE_ADAPTER_H_INCLUDED
ur_controllers/src/scaled_joint_trajectory_controller.cpp
View file @
6f0f2c23
...
...
@@ -38,4 +38,12 @@ typedef ur_controllers::ScaledJointTrajectoryController<trajectory_interface::Qu
ScaledJointTrajectoryController
;
}
namespace
velocity_controllers
{
typedef
ur_controllers
::
ScaledJointTrajectoryController
<
trajectory_interface
::
QuinticSplineSegment
<
double
>
,
ur_controllers
::
ScaledVelocityJointInterface
>
ScaledJointTrajectoryController
;
}
PLUGINLIB_EXPORT_CLASS
(
position_controllers
::
ScaledJointTrajectoryController
,
controller_interface
::
ControllerBase
)
PLUGINLIB_EXPORT_CLASS
(
velocity_controllers
::
ScaledJointTrajectoryController
,
controller_interface
::
ControllerBase
)
ur_robot_driver/config/ur10_controllers.yaml
View file @
6f0f2c23
...
...
@@ -60,3 +60,82 @@ pos_traj_controller:
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
scaled_vel_traj_controller
:
type
:
velocity_controllers/ScaledJointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
vel_traj_controller
:
type
:
velocity_controllers/JointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
# Pass an array of joint velocities directly to the joints
joint_group_vel_controller
:
type
:
velocity_controllers/JointGroupVelocityController
joints
:
*robot_joints
ur_robot_driver/config/ur10e_controllers.yaml
View file @
6f0f2c23
...
...
@@ -60,3 +60,82 @@ pos_traj_controller:
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
scaled_vel_traj_controller
:
type
:
velocity_controllers/ScaledJointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
vel_traj_controller
:
type
:
velocity_controllers/JointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
# Pass an array of joint velocities directly to the joints
joint_group_vel_controller
:
type
:
velocity_controllers/JointGroupVelocityController
joints
:
*robot_joints
ur_robot_driver/config/ur3_controllers.yaml
View file @
6f0f2c23
...
...
@@ -60,3 +60,83 @@ pos_traj_controller:
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
scaled_vel_traj_controller
:
type
:
velocity_controllers/ScaledJointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
vel_traj_controller
:
type
:
velocity_controllers/JointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
# Pass an array of joint velocities directly to the joints
joint_group_vel_controller
:
type
:
velocity_controllers/JointGroupVelocityController
joints
:
*robot_joints
ur_robot_driver/config/ur3e_controllers.yaml
View file @
6f0f2c23
...
...
@@ -60,3 +60,82 @@ pos_traj_controller:
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
scaled_vel_traj_controller
:
type
:
velocity_controllers/ScaledJointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
vel_traj_controller
:
type
:
velocity_controllers/JointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
# Pass an array of joint velocities directly to the joints
joint_group_vel_controller
:
type
:
velocity_controllers/JointGroupVelocityController
joints
:
*robot_joints
ur_robot_driver/config/ur5_controllers.yaml
View file @
6f0f2c23
...
...
@@ -60,3 +60,82 @@ pos_traj_controller:
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
scaled_vel_traj_controller
:
type
:
velocity_controllers/ScaledJointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
vel_traj_controller
:
type
:
velocity_controllers/JointTrajectoryController
joints
:
*robot_joints
constraints
:
goal_time
:
0.6
stopped_velocity_tolerance
:
0.05
shoulder_pan_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
shoulder_lift_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
elbow_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_1_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_2_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
wrist_3_joint
:
{
trajectory
:
0.1
,
goal
:
0.1
}
stop_trajectory_duration
:
0.5
state_publish_rate
:
*loop_hz
action_monitor_rate
:
10
gains
:
#!!These values have not been optimized!!
shoulder_pan_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
shoulder_lift_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
elbow_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_1_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_2_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
wrist_3_joint
:
{
p
:
5.0
,
i
:
0.05
,
d
:
0.1
,
i_clamp
:
1
}
# Use a feedforward term to reduce the size of PID gains
velocity_ff
:
shoulder_pan_joint
:
1.0
shoulder_lift_joint
:
1.0
elbow_joint
:
1.0
wrist_1_joint
:
1.0
wrist_2_joint
:
1.0
wrist_3_joint
:
1.0
# state_publish_rate: 50 # Defaults to 50
# action_monitor_rate: 20 # Defaults to 20
#stop_trajectory_duration: 0 # Defaults to 0.0
# Pass an array of joint velocities directly to the joints
joint_group_vel_controller
: