diagnostics.hardware_check

Hardware bring-up self-test (open-loop, no closed-loop control).

Verifies that the ROS 2 pipeline talks to the physical layer:

  • MOTOR - command each joint a small, slow, absolute move via the trajectory

    controller and confirm /joint_states reports it reaching the target.

  • SENSOR - sample /fishing_arm/tension and confirm it is publishing finite

    values within a sane range.

It deliberately does NOT run the admittance controller (the bringup launch disables it when hardware_check:=true), so these are pure function checks, not control behaviour. The exact same test runs in simulation, so you can validate it with use_sim:=true before trusting it on real hardware.

Prints a PASS/FAIL summary and exits 0 (all passed) or 1 (something failed).

Classes

Functions

main([args])

Module Contents

class diagnostics.hardware_check.HardwareCheck

Bases: rclpy.node.Node

run_checks()
joint_pos
joints
move_delta
move_time
position_tolerance
pub
require_tension_variation
settle_time
startup_timeout
tension = []
tension_check_duration
tension_max
tension_min
traj_topic
diagnostics.hardware_check.main(args=None)