diagnostics¶
Recording + visualization tools: time-series plots and an isometric MuJoCo animation, toggled with record:=true.
Build type: ament_python
Version:
0.0.1License: Apache-2.0
Maintainer(s): nzge
Source:
src/diagnostics/
Executables¶
Command ( |
Target |
|---|---|
|
|
|
|
Launch files¶
diagnostics.launch.py¶
ros2 launch diagnostics diagnostics.launch.py
Source: diagnostics/launch/diagnostics.launch.py
Parameters & configuration¶
diagnostics_params.yaml¶
Node recorder
Parameter |
Default |
Type |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Node hardware_check
Parameter |
Default |
Type |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full file
# Recorder configuration.
# output_dir -> BASE dir; each run writes a <timestamp>/ subfolder inside it.
# Lives in the repo so recordings are versioned with the project.
# mjcf_path -> '' auto-resolves to description share / urdf / fishing-robot_sim.xml
# render_script-> '' auto-resolves to diagnostics share / scripts / render_animation.py
recorder:
ros__parameters:
output_dir: "/home/nzge/fishing-bot/software/recordings"
mjcf_path: ""
render_script: ""
# Python that can import mujoco (the project virtualenv) for the renderer.
venv_python: "/home/nzge/fishing-bot/.venv/bin/python"
auto_render: true
video_format: "mp4" # 'mp4' (needs imageio-ffmpeg) or 'gif'
video_fps: 30
qpos_joints: ["Joint_1", "Joint_2", "fish_swim"]
arm_joints: ["Joint_1", "Joint_2"]
# Bring-up self-test (run with hardware_check:=true). Small, slow, open-loop
# moves + a tension sampling window; tune the safety margins for your rig.
hardware_check:
ros__parameters:
# Hardware is 1-DOF pitch (Joint_2 / Dynamixel ID 1); base not on the bus.
joints: ["Joint_2"]
move_delta: 0.2 # rad, per-joint test move
move_time: 2.0 # s, trajectory duration (slow = gentle)
settle_time: 1.0 # s, extra time to arrive
position_tolerance: 0.08 # rad, pass band on reaching the target
startup_timeout: 15.0 # s, wait for controllers/hardware
tension_check_duration: 3.0 # s, sensor sampling window
tension_min: -50.0
tension_max: 50.0
require_tension_variation: false
Source: diagnostics/config/diagnostics_params.yaml
Dependencies¶
Runtime:
interfacespython3-matplotlibpython3-numpyrclpysensor_msgstrajectory_msgsTest:
ament_copyrightament_flake8ament_pep257python3-pytest
Python API¶
Full module/class/function reference for diagnostics is generated automatically: