Skip to content

Commit 29e9943

Browse files
committed
Debug output.
1 parent c3bd601 commit 29e9943

File tree

1 file changed

+26
-27
lines changed

1 file changed

+26
-27
lines changed

ign_ros2_control/src/ign_system.cpp

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -884,7 +884,6 @@ hardware_interface::return_type IgnitionSystem::write(
884884
}
885885
}
886886

887-
888887
// set values of all mimic joints with respect to mimicked joint
889888
for (const auto & mimic_joint : this->dataPtr->mimic_joints_) {
890889
for (const auto & mimic_interface : mimic_joint.interfaces_to_mimic) {
@@ -899,55 +898,55 @@ hardware_interface::return_type IgnitionSystem::write(
899898

900899
if (mimic_interface == "position") {
901900
// Get the joint position
902-
903-
double position_mimicked_joint =
901+
const auto * jp_mimicked =
904902
this->dataPtr->ecm->Component<ignition::gazebo::components::JointPosition>(
905-
this->dataPtr->joints_[mimic_joint.mimicked_joint_index].sim_joint)->Data()[0];
903+
this->dataPtr->joints_[mimic_joint.mimicked_joint_index].sim_joint);
904+
double position_mimicked_joint = jp_mimicked->Data()[0];
906905

907-
double position_mimic_joint =
906+
const auto * jp_mimic =
908907
this->dataPtr->ecm->Component<ignition::gazebo::components::JointPosition>(
909-
this->dataPtr->joints_[mimic_joint.joint_index].sim_joint)->Data()[0];
908+
this->dataPtr->joints_[mimic_joint.joint_index].sim_joint);
909+
double position_mimic_joint = jp_mimic->Data()[0];
910910

911911
// calculate error with clamped position command
912-
double position_error =
913-
position_mimic_joint - std::clamp(
914-
position_mimicked_joint * mimic_joint.multiplier,
915-
jointAxis->Data().Lower(), jointAxis->Data().Upper());
912+
double position_error = position_mimic_joint - position_mimicked_joint *
913+
mimic_joint.multiplier;
916914

917-
position_error = copysign(1.0, position_error) * std::clamp(
918-
std::abs(
919-
position_error), 0.0, std::abs(jointAxis->Data().Upper() - jointAxis->Data().Lower()));
915+
double velocity_sp = (-1.0) * position_error * (*this->dataPtr->update_rate);
920916

921917
// calculate target velocity - output of outer pid - input to inner pid
922918
double target_vel = this->dataPtr->joints_[mimic_joint.joint_index].pid_pos.Update(
923919
position_error, std::chrono::duration<double>(
924920
period.to_chrono<std::chrono::nanoseconds>()));
925921

926-
// double velocity_error = this->dataPtr->joints_[mimic_joint.joint_index].joint_velocity -
927-
// std::clamp(
928-
// target_vel, -1.0 * jointAxis->Data().MaxVelocity(),
929-
// jointAxis->Data().MaxVelocity());
922+
const auto * jv_mimic =
923+
this->dataPtr->ecm->Component<ignition::gazebo::components::JointVelocity>(
924+
this->dataPtr->joints_[mimic_joint.joint_index].sim_joint);
925+
double velocity_mimic_joint = jv_mimic->Data()[0];
930926

931-
double velocity_error = this->dataPtr->joints_[mimic_joint.joint_index].joint_velocity -
932-
target_vel;
927+
double velocity_error = velocity_mimic_joint - target_vel;
933928

934929
// calculate target force/torque - output of inner pid
935930
double target_force = this->dataPtr->joints_[mimic_joint.joint_index].pid_vel.Update(
936931
velocity_error, std::chrono::duration<double>(
937932
period.to_chrono<std::chrono::nanoseconds>()));
938933

934+
igndbg << "[" << this->dataPtr->joints_[mimic_joint.joint_index].name << "]\t" <<
935+
position_mimicked_joint << " \t" << position_mimic_joint << " \t" << target_force <<
936+
"\n";
937+
939938
auto forceCmd =
940939
this->dataPtr->ecm->Component<ignition::gazebo::components::JointForceCmd>(
941940
this->dataPtr->joints_[mimic_joint.joint_index].sim_joint);
942941

943-
// if (forceCmd == nullptr) {
944-
// this->dataPtr->ecm->CreateComponent(
945-
// this->dataPtr->joints_[mimic_joint.joint_index].sim_joint,
946-
// ignition::gazebo::components::JointForceCmd({target_force}));
947-
// } else {
948-
// *forceCmd = ignition::gazebo::components::JointForceCmd(
949-
// {target_force});
950-
// }
942+
if (forceCmd == nullptr) {
943+
this->dataPtr->ecm->CreateComponent(
944+
this->dataPtr->joints_[mimic_joint.joint_index].sim_joint,
945+
ignition::gazebo::components::JointForceCmd({target_force}));
946+
} else {
947+
*forceCmd = ignition::gazebo::components::JointForceCmd(
948+
{target_force});
949+
}
951950
}
952951
/*
953952
if (mimic_interface == "velocity") {

0 commit comments

Comments
 (0)