A bug has been identified in the system related to the bit variable is_moving in the MiddleWare program, which is intended to indicate whether the robot is in motion. Occasionally, this bit reports that the robot is moving even when it is actually stationary.
The cause of this issue has also been identified. The MiddleWare program continuously reads all robot joint velocities. When all joint velocities are zero, the is_moving bit is set to false; otherwise, it is set to true. This logic works correctly when testing with the virtual robot (URSim). However, in the real robot system, the joint velocity values are never exactly zero when a gripper (e.g., a vacuum gripper) is mounted and activated. As a result, even when the robot remains stationary, the is_moving bit incorrectly remains true. This issue should be addressed in a future version of the system by either implementing a simple threshold value for the joint velocities when determining the state of the is_moving parameter. Perhaps by calculating a moving average this threshold can be further minimized.
A bug has been identified in the system related to the bit variable is_moving in the MiddleWare program, which is intended to indicate whether the robot is in motion. Occasionally, this bit reports that the robot is moving even when it is actually stationary.
The cause of this issue has also been identified. The MiddleWare program continuously reads all robot joint velocities. When all joint velocities are zero, the is_moving bit is set to false; otherwise, it is set to true. This logic works correctly when testing with the virtual robot (URSim). However, in the real robot system, the joint velocity values are never exactly zero when a gripper (e.g., a vacuum gripper) is mounted and activated. As a result, even when the robot remains stationary, the is_moving bit incorrectly remains true. This issue should be addressed in a future version of the system by either implementing a simple threshold value for the joint velocities when determining the state of the is_moving parameter. Perhaps by calculating a moving average this threshold can be further minimized.