Kilted Dave didn’t get a gopigo3 tag due to character limits, but appeared on the Mastodon social network today:
So, what was the root-cause and how did you resolve this?
Good question that I don’t have a complete answer for…
Resolving the faulty statistic report was achieved by changing the “stats.sh” script to differentiate between an intentional docking after a playtime from a “noticed” docking, and manually deleting all duplicate “noticed” docking statements from the log:
*** TB5-WaLI TOTAL LIFE STATISTICS ***
Total Awake: 4208.15 hrs
Total Naps: 0 hrs
Total Life: 4208.15 hrs (since Jan 09, 2025)
"Noticed Dockings": 16 <-----
Playtimes (Undocked-Docked): 615 <-----
Total Dockings: 631 <----
Average playtime (last five) 1.7 hrs
Average docked time (last two) 1.6 hrs
Sessions (boot): 50
Average Session: 84.1 hrs
Safety Shutdowns: 2
Total Travel: 1189.1 meters 3901.2 feet
Last Dock and UnDock:
2025-07-08 23:27|wali_node.py| ** WaLI dock goal result - Docking: success at battery 20% after 1.8 hrs playtime **
2025-07-09 08:00|wali_node.py| ** WaLI Undocking: success at battery 100%, docked for 8.5 hrs **
2025-07-09 09:42|wali_node.py| ** WaLI dock goal result - Docking: success at battery 20% after 1.7 hrs playtime **
2025-07-09 11:17|wali_node.py| ** WaLI Undocking: success at battery 100%, docked for 1.6 hrs **
2025-07-09 13:05|wali_node.py| ** WaLI dock goal result - Docking: success at battery 20% after 1.8 hrs playtime **
2025-07-09 14:41|wali_node.py| ** WaLI Undocking: success at battery 100%, docked for 1.6 hrs **
Checking Battery State
Battery: 0.88
Checking Docking State
Docked: False
---
As for the root-cause for “Noticed” dockings going haywire - I expect it is lack of imagination on my part for possible error states.
The reason Wali even has a “Noticed” dockings function is to support initializing WaLI’s state (to “Docked”) at power-on (Wali powers up when placed on the dock), and properly setting it if I manually drive or place WaLI on the dock without commanding WaLI to dock himself.
The Create3 node publishes a /dock_status topic with is_docked:{true,false} and a /battery_state topic with current:{+/- amps}, both of which are subscribed by WaLI as inputs to his state machine trying to recognize “docking success” (transition from “docking” to “docked” and charging), and “noticed docking success” (transition from any other state to “docked” and charging).
As for why, how, and under what external influences WaLI was stuck repeatedly “Noticing” a docking once a minute - I am certain it is some “error state” that I did not imagine could happen when I was building WaLI’s states and transitions diagram.
As for why, how, and under what circumstances WaLI experiences cognitive dissonance between reality and his model of “A Robot’s Life”? It would take too much “code review” and imagination than I have will to give him lately.
He (and I) will just have to “live with his limitations”.
The topics floating around:
ubuntu@TB5WaLI:~/TB5-WaLI/wali_ws$ ros2 topic list
/battery_state
/cmd_audio
/cmd_lightring
/cmd_vel
/cmd_vel_unstamped
/diagnostics
/dock_status
/function_calls
/imu
/interface_buttons
/ip
/joint_states
/joy
/joy/set_feedback
/odom
/parameter_events
/robot_description
/rosout
/stop_status
/tf
/tf_static
/wheel_status
ubuntu@TB5WaLI:~/TB5-WaLI/wali_ws$ cmds/echo_battery_state.sh
*** ECHO BATTERY STATE
Wed Jul 9 15:18:21 EDT 2025
ros2 topic echo --once --flow-style -l 1 --qos-reliability best_effort --qos-durability volatile /battery_state
header:
stamp:
sec: 1752088706
nanosec: 630869328
frame_id: ''
voltage: 15.411999702453613
temperature: 38.75
current: -0.6380000114440918
charge: 1.0499999523162842
capacity: 1.4259999990463257
design_capacity: 1.4259999990463257
percentage: 0.7400000095367432
power_supply_status: 0
power_supply_health: 0
power_supply_technology: 0
present: true
cell_voltage: []
cell_temperature: []
location: ''
serial_number: ''
---
Percentage: 0.7400000095367432
---
ubuntu@TB5WaLI:~/TB5-WaLI/wali_ws$ cmds/echo_dock_status.sh
*** ECHO DOCK STATUS
ros2 topic echo --once /dock_status
header:
stamp:
sec: 1752088807
nanosec: 454948890
frame_id: ''
dock_visible: false
is_docked: false
---
ubuntu@TB5WaLI:~/TB5-WaLI/wali_ws$ ros2 node list
/_do_not_use/_internal/composite_hazard
/_do_not_use/_internal/kinematics_engine
/_do_not_use/_internal/mobility
/_do_not_use/_internal/stasis
/_do_not_use/mobility_monitor
/_do_not_use/motion_control
/_do_not_use/robot_state
/_do_not_use/static_transform
/_do_not_use/system_health
/_do_not_use/ui_mgr
/create3_repub
/joint_state_publisher
/joy_linux_node
/launch_ros_160898
/oakd
/oakd_container
/odometer
/robot_state_publisher
/say
/teleop_twist_joy_node
/turtlebot4_node
/wali_node