-
Notifications
You must be signed in to change notification settings - Fork 157
Fixes erronous grid shift ordering: use [dy,dx] for cp.roll axes #120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Fredrikhb
wants to merge
600
commits into
leggedrobotics:ros2
Choose a base branch
from
Fredrikhb:fix/shift-order-dydx-roll
base: ros2
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Fixes erronous grid shift ordering: use [dy,dx] for cp.roll axes #120
Fredrikhb
wants to merge
600
commits into
leggedrobotics:ros2
from
Fredrikhb:fix/shift-order-dydx-roll
Conversation
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
… that contain different fields e.g. rings. Added also configuration for anymal bag and anymal sim
…_cpp_fixes Minor TF listener fix
…pping_semantic_cupy into dev/refine_pointcloud
Still need to test cpp version
fix import of param file
fixing published map topic namespacing Got rid of some unused parameters
…make_python. Currently requires comment in and out parts of package.xml Idea is that if you don't want the cpp package you could just use the python one without building using cmake
Still debugging issue with ament_python_install_package()
Builds now
…aner Fixed bug in numpy array conversion
- Fixed CUDA kernels to use proper Row-Major convention (Row=Y, Col=X) - Updated is_inside() and get_idx() functions in all kernels - Fixed normal vector calculation (removed swapped components) - Adjusted data flipping for correct GridMap publishing - Kept 180-degree rotation in internal representation - Removed extra flip in elevation_mapping_ros.py The elevation map now correctly aligns with LiDAR data.
- Reset map_frame to 'map' and base_frame to 'base_link' (standard ROS) - Reset map_length to 15.0m default - Reset use_sim_time default to 'false' - Excavator-specific configs remain in mole_perception_bringup
…le preserving mole-specific fixes
- Handle both dict and structured array formats from ros2_numpy - Support Livox MID-360's combined 'xyz' field instead of separate x,y,z - Add robust error handling for various point cloud structures - Prevent KeyError when processing Livox lidar data
- Fix 'Layer rgb is not in the map' error spam by adding special handling for RGB layer requests - Add max_filter plugin from main branch for filling invalid cells with maximum values - RGB layer now properly retrieves data from semantic layers using color fusion These changes eliminate the repetitive error messages and add the max_filter functionality that was missing in the ROS2 branch.
- Change executable from 'elevation_mapping_node' to 'elevation_mapping_node.py' in launch files - Use pure Python implementation instead of C++ wrapper to avoid API mismatches - Ensures compatibility with latest Python API changes
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.
This is a fix specifically for how cp.roll is being used. (This intentionally excludes my other orientation fix (transpose on publish, polygon x/y., which fixes the rotation of the whole elevation grid.)
Problem: As the robot moves, the entire elevation layer creeps diagonally and stretches features.
Cause: cp.roll(..., axis=(1,2)) expects shifts as [rows(y), cols(x)]. Code used [dx, dy] inside the methods "move" and "move_to".
Fix: Pass [dy, dx] as argument to shift_map_xy instead of [dx, dy].
Evidence: before fix, map shifts diagonally on each update call. Origin of the whole elevation_map_raw becomes gradually shifted and features gets stretched into ridges as a result. After fix, map remains anchored to map frame and features are accurately captured where they are. Origin of elevation_map_raw remains consistent with base_link.
Both pictures are taken at exactly 10.0 seconds of simulation time, without and with fix respectively.
Before:

After:
