Repository navigation
Merge dev into main - #15
Merged
Merged
Conversation
…e rviz plugin namespace to robot_rviz
… tags, keep map->odom planar body was assumed identical to base_link although the Livox IMU sits ~14 cm in front of and above it. Tag TFs older than tag_max_age_sec are ignored and odom->base_link is sampled at the detection stamp. map->odom is now a pure x/y/yaw correction instead of inheriting odometry roll/pitch/z.
…rection Adds a params file and launch argument for it.
…ists while recording
obstacle_z_min 0.20 above base_link ignored everything lower than ~55 cm (kids, bags, planters).
… republish path_loader republished WaypointPath every 2 s and the follower reset progress and the stop-point state machine each time, so it kept returning to the first stop point and cut dwells short.
spin_until_future_complete inside a service callback deadlocked the node, and drivers/set_auto_mode does not exist on the L1W. The mode services are now configurable and the node runs on a MultiThreadedExecutor.
… do not finish at the start is_finished only checked the distance to the last point, which equals the start on a patrol loop. PathProgress keeps a forward-only index with a heading penalty so overlapping out-and-back corridors stay unambiguous.
… a lookahead terminal cost The cost against the whole route made MPPI cut corners and lock onto the wrong leg of overlapping corridors (52 m off in a 28 m loop simulation) and scaled with route length. Default controller is now pure_pursuit.
It previously always steered toward the centre of the nearest gap, drifting the robot off a clear path. With no passable gap it now slows to a stop instead of flagging an emergency.
… its centre emergency_distance 0.4 m from base_link left ~5 cm to the nose; safe_distance 3 m kept the robot slowing in every mall corridor.
…nstant emergency stop A dead lidar/avoidance node or FAST-LIO used to leave the last command/pose in use. Emergency and degraded-state stops now bypass the 0.5 m/s^2 ramp that let the robot coast ~16 cm.
…mand Also fixes the package.xml schema line, the stale description and builds rosidl_default_generators as a buildtool dependency.
…pPointEvent - closed routes restart automatically (loop_route), open routes hold at the end - after aligning at a stop point the follower calls inspection_services (std_srvs/Trigger) and waits for them up to inspection_timeout_sec - navigation/stop_point_event reports arrived / inspected / departed / skipped - stop points passed without reaching tolerance are skipped instead of blocking the rest - helpers moved to utils/geometry.py and utils/command_filter.py, parameters declared from one table
…s anchored Recorded routes carry odometry jitter that the controllers turned into left/right weaving. path_loader now dedupes, resamples to a uniform spacing and gradient-smooths each span between stop points, publishes the raw route on navigation/path_raw and warns when smoothing moves the route too far.
Each route point gets a speed limit from curvature (max_lateral_accel) and a backward braking pass into stop points and the route end, so the robot slows before corners and arrives at stops at approach_speed instead of braking hard. Controllers now take the target speed per tick.
…he route end Inside approach_radius the follower hands over to FinalApproach, which strafes and turns at the same time on holonomic robots (the L1W takes linear.y) and falls back to turn-drive-turn otherwise. Dwell and inspection only start once the robot is within 5 cm / 3 deg (configurable), so every inspection is taken from the same pose. Open routes finish with the same approach and then hold.
…se the path reference The heading penalty could pin the progress index before a sharp corner, so error-based controllers kept tracking the extended straight. Progress now also advances while the robot projects past the current segment, and PathProgress.reference() returns lateral/heading error, signed curvature and path yaw.
Both work on the path-relative error (lateral, heading) with v * curvature feedforward. In simulation on a smoothed 28 m loop they track with ~3 cm mean cross-track error versus ~5 cm for pure pursuit.
…ideways push for holonomic robots AvoidanceResult gains lateral_bias; the potential field uses it so a legged robot can sidestep people and pillars instead of only turning. Avoidance parameters are declared from one table per algorithm.
…nd off-path detection - an emergency stop now holds until the path stayed clear for estop_release_sec, removing stop-go chatter around people - BLOCKED is reported when the robot cannot make progress for blocked_timeout_sec - cross-track error above off_path_slow_distance caps speed, above off_path_stop_distance stops until navigation is restarted
Removes left/right twitching from controller and avoidance noise before the slew limiter; command_smoothing = 1 disables it.
… moved patrol starts
…LM inspection on raw image topic
…ld; intervals below a second
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Joins dev's history into main. No file on main changes: #14 already gave main exactly dev's
files (same tree, 273e0a4), so this merge only records dev's commits in main. dev itself is not
touched and does not get main's older commits.
After this merge dev is no longer ahead of main, and later dev → main PRs show only the new work.
Generated by Claude Code