@@ -889,7 +889,9 @@ hardware_interface::return_type IgnitionSystem::write(
889
889
position_error, std::chrono::duration<double >(
890
890
period.to_chrono <std::chrono::nanoseconds>()));
891
891
892
- // remember for potential effort state interface
892
+ target_force = round (target_force * 10000.0 )/10000.0 ;
893
+
894
+ // remember for potential effort state interface
893
895
this ->dataPtr ->joints_ [i].joint_effort_cmd = target_force;
894
896
895
897
auto forceCmd =
@@ -944,6 +946,8 @@ hardware_interface::return_type IgnitionSystem::write(
944
946
mimic_joint.multiplier , jointAxis->Data ().Lower (),
945
947
jointAxis->Data ().Upper ());
946
948
949
+ position_error = round (position_error * 10000.0 )/10000.0 ;
950
+
947
951
position_error =
948
952
copysign (
949
953
1.0 ,
@@ -952,7 +956,9 @@ hardware_interface::return_type IgnitionSystem::write(
952
956
std::abs (position_error), 0.0 ,
953
957
std::abs (jointAxis->Data ().Upper () - jointAxis->Data ().Lower ()));
954
958
955
- // calculate target velocity - output of outer pid - input to inner pid
959
+
960
+
961
+ // calculate target velocity - output of outer pid - input to inner pid
956
962
double target_vel = this ->dataPtr ->joints_ [mimic_joint.joint_index ].pid_pos .Update (
957
963
position_error, std::chrono::duration<double >(
958
964
period.to_chrono <std::chrono::nanoseconds>()));
@@ -974,6 +980,8 @@ hardware_interface::return_type IgnitionSystem::write(
974
980
position_error, std::chrono::duration<double >(
975
981
period.to_chrono <std::chrono::nanoseconds>()));
976
982
983
+ target_force = round (target_force * 10000.0 )/10000.0 ;
984
+
977
985
this ->dataPtr ->joints_ [mimic_joint.joint_index ].joint_effort_cmd = target_force;
978
986
979
987
auto forceCmd =
0 commit comments