Some checks failed
social-bot integration tests / Lint (flake8 + pep257) (pull_request) Failing after 7s
social-bot integration tests / Core integration tests (mock sensors, no GPU) (pull_request) Has been skipped
social-bot integration tests / Latency profiling (GPU, Orin) (pull_request) Has been cancelled
Adds saltybot_bridge_msgs package with WheelTicks.msg (int32 left/right
encoder counts) and a WheelOdomNode that subscribes to
/saltybot/wheel_ticks, integrates midpoint-Euler differential drive
kinematics (handling int32 counter rollover), and publishes
nav_msgs/Odometry on /odom_wheel at 50 Hz with optional TF broadcast.
New files:
jetson/ros2_ws/src/saltybot_bridge_msgs/
msg/WheelTicks.msg
CMakeLists.txt, package.xml
jetson/ros2_ws/src/saltybot_bringup/
saltybot_bringup/_wheel_odom.py — pure kinematics (no ROS2 deps)
saltybot_bringup/wheel_odom_node.py — 50 Hz timer node + TF broadcast
test/test_wheel_odom.py — 42 tests, all passing
Modified:
saltybot_bringup/package.xml — add saltybot_bridge_msgs, nav_msgs deps
saltybot_bringup/setup.py — add wheel_odom console_script entry
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
12 lines
441 B
Plaintext
12 lines
441 B
Plaintext
# WheelTicks.msg — cumulative wheel encoder tick counts from STM32 (Issue #184)
|
|
#
|
|
# left_ticks : cumulative left encoder count (int32, wraps at ±2^31)
|
|
# right_ticks : cumulative right encoder count (int32, wraps at ±2^31)
|
|
#
|
|
# Receivers must handle int32 rollover by computing delta relative to the
|
|
# previous message value. The wheel_odom_node does this via unwrap_delta().
|
|
#
|
|
std_msgs/Header header
|
|
int32 left_ticks
|
|
int32 right_ticks
|