Understanding JointHandle
Hi all,
currently, I am trying to write a hardware_interface.cpp for my robot, more specifically, the write() part. According to this tutorial link, the below JointHandle
writes the desired command into the cmd variable, which is the output of my "position_controllers/JointTrajectoryController"
.
hardware_interface::JointHandle pos_handle_jnt1(jnt_state_interface.getHandle("my_jnt1"), &cmd[1]);
My question is if the cmd value is the result of my JointTrajectoryController. Then, it should correspond to the control points of my arm_controller/follow_joint_trajectory/goal
, however as you can see from the below outputs, it seems like the cmd[1] value only considers the last value -0.3561511482429065
. Is my assumption correct? If yes, how could I change the cmd values so that they sequentially follow the control points?
cmd[1] output:
data: 0.0
---
data: 0.0
---
data: -3.98925667212e-15
---
data: -0.0247069448233
---
data: -0.0914327800274
---
data: -0.204322084785
---
data: -0.299599915743
---
data: -0.347527623177
---
data: -0.356151133776
---
data: -0.356151133776
arm_controller/follow_joint_trajectory/goal output:
goal: trajectory:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "world"
joint_names:
- my_jnt0
- my_jnt1
- my_jnt2
- my_jnt3
- my_jnt4
points:
-
positions: [0.0, 0.0, 0.0, 0.0, 0.0]
velocities: [0.0, 0.0, 0.0, 0.0, 0.0]
accelerations: [0.0, 0.0, 0.0, 0.0, 0.0]
effort: []
time_from_start:
secs: 0
nsecs: 0
-
positions: [0.0, -0.05878427698533184, 0.052137219402668085, 0.01525140182758336, -0.008604344244919617]
velocities: [0.0, -0.25354584381866674, 0.21981604582029537, 0.0684385954630451, -0.03470879746467376]
accelerations: [0.0, -0.7591462700998434, 0.6374586363274559, 0.2157806286696093, -0.09409299489722199]
effort: []
time_from_start:
secs: 0
nsecs: 401565155
-
positions: [0.0, -0.11760003078838882, 0.10265220884352354, 0.03137742873451792, -0.01642960678965265]
velocities: [0.0, -0.4111519142259137, 0.34665203354962104, 0.11616224268468915, -0.05166236200839654]
accelerations: [0.0, -0.6937200222775882, 0.5067983550049543, 0.23741297594133587, -0.05049130866870113]
effort: []
time_from_start:
secs: 0
nsecs: 564623473
-
positions: [0.0, -0.17660465200207817, 0.1516744862678577, 0.04843293156577636, -0.023502765831555902]
velocities: [0.0, -0.46552335392135913, 0.38017464952978736, 0.1381194904499298, -0.052770786058357985]
accelerations: [0.0, -0.06172943703754964, -0.05243103983785829, 0.07382859050259587, 0.04033188637281179]
effort: []
time_from_start:
secs: 0
nsecs: 692449766
-
positions: [0.0, -0.23594297332022304, 0.19930756371414443, 0.06648442181566575, -0.029849012209587134]
velocities: [0.0, -0.41515666971470355, 0.3281799281944251, 0.12910905650802884, -0.04213231498775033]
accelerations: [0.0, 0.7433632579075067, -0.6663072406196392, -0.18762405610758165, 0.11056803881971504]
effort: []
time_from_start:
secs: 0
nsecs: 818850323
-
positions: [0.0, -0.29574983988306314, 0.24563234375109627, 0.08561085006591221, -0.035493353933945315]
velocities: [0.0, -0.2548766998411054, 0.19531459272193535, 0.08271469381554367, -0.0231525866963735]
accelerations: [0.0, 0.7419441302240752, -0.5894321277847724, -0.22884581633389578, 0.07633381389459255]
effort: []
time_from_start:
secs: 0
nsecs: 984581526
-
positions: [0.0, -0.3561511482429065, 0.2907088114687755, 0.10590452327134249, -0.04046218649721141]
velocities: [0.0, 0.0, 0.0, 0.0, 0.0]
accelerations: [0.0, 0.7339993202908858, -0.5477711917890713, -0.24660959743206826, 0.06038146893025332]
effort: []
time_from_start:
secs: 1
nsecs: 390267826 path_tolerance: [] goal_tolerance: [] goal_time_tolerance:
secs: 0
nsecs: 0