Skip to content

Releases: hanruihua/ir-sim

ir-sim-v2.10.2

Choose a tag to compare

@hanruihua hanruihua released this 01 Aug 00:18
  • Fix:

    • Apply body-frame circle-center offsets consistently across collision geometry, rendering, convex G/h constraints, and RVO neighbor state, and clamp the HRVO inverse-sine input. Keeps offset and Ackermann circles aligned across representations and prevents math-domain failures. (#344)
  • Refactor:

    • Extract object rendering from ObjectBase into a dedicated ObjectPlot class and encapsulate plotting options in dataclasses while preserving the public API and option precedence. Separates rendering responsibilities without breaking existing callers. (#345)
  • Docs:

    • Move 17 documentation GIFs (~64 MB) to the dedicated IR-SIM-GIFs repository and replace local paths with remote URLs. Keeps the source tree lightweight without losing visual examples. (#341)
    • Align usage and YAML documentation with runtime defaults, expand public API docstrings, and improve API navigation in English and Chinese. Keeps documented behavior and entry points consistent with the implementation. (#343)
    • Refresh Chinese translation catalogs, clarify world.status semantics, remove the undocumented "Done" value from the documented runtime-status list, and upgrade Ruff to 0.16.0 with reformatted Markdown code blocks. Keeps bilingual documentation and linted examples synchronized. (#347)
  • Tests:

    • Consolidate 25 test files into 13, raise irsim/ coverage from 96.7% to 97.3%, and reduce the local suite runtime from 3:02 to 2:08. Route environment and world parameter module access through their bound instances to prevent leaked global state while making the suite smaller and more reliable. (#346)

ir-sim-v2.10.1

Choose a tag to compare

@hanruihua hanruihua released this 01 Jul 10:26
  • Features:

    • Add orca group behavior for diff robots (ORCA's holonomic velocity mapped to (linear, angular) via omni_to_diff), extending reciprocal collision avoidance to differential-drive fleets; see the 19orca_world/orca_diff_world example. (#333)
    • Add a fog-of-map overlay (FogMap, enabled via world: {fog_map: true, fog_map_resolution: ...}) revealed by each robot's lidar or fov sector, for modeling exploration under partial observability; see the 24fog_world example. (#337)
  • Performance:

    • Speed up the lidar step ~2x when a dynamic obstacle overlaps a static map. (#332)
  • Fix:

    • Fix dash in-place yaw oscillation and stalling when the goal is behind the robot. (#331)
    • Fix diff RVO freezing when the goal is directly behind the robot. (#331)
    • Fix the headless keyboard event-queue overflow when spawning many environments. (#331)
    • Keep saved animation frames at a fixed size and pad video to even dimensions so the saved mp4/gif matches the on-screen figure. (#330)
    • Suppress the default velocity arrow on static obstacles (regression from v2.9.2's kinematics-handler refactor). (#313)
  • Refactor:

    • Send warnings and errors to the logger instead of print. (#326)
  • Docs:

    • Overhaul the documentation site for clarity and navigation, with full English/Chinese parity. (#325)
    • Add the arXiv paper citation and badge to the README. (#320)
    • Add the IRSIM-3DGS-Bridge community project link. (#317) (@Wayneyujie)

New Contributors

Full Changelog: v2.10.0...v2.10.1

ir-sim-v2.10.0

Choose a tag to compare

@hanruihua hanruihua released this 24 May 12:39

2.10.0

Minor release adding two new perception/behavior capabilities — the Social Force Model (SFM) for pedestrian-style crowd avoidance and a simplified 2D FMCW LiDAR sensor with per-beam radial velocity.

  • Features:

    • Add simplified 2D FMCW LiDAR sensor with range-and-velocity returns and a 22fmcw_lidar_world usage example. (#293) (@KevinLADLee )
    • Add Social Force Model (SFM) behavior for diff and omni kinematics (anisotropic Moussaid-Helbing 2009 variant) with a 23sfm_world cross-corridor usage example. (#307)
  • Performance:

    • Cache velocity_xy, rvo_neighbor_state, and rvo_line_segments per-tick on ObjectBase — ~4× faster SFM/RVO step. (#307)
  • Docs:

    • Add release dates to all version headings in changelog.md. (#288)
    • Refine the YAML configuration reference and keyboard/mouse control docs for clarity (en + zh_CN). (#296)
    • Document the sfm behavior alongside rvo (en + zh_CN). (#307)
  • Tests:

    • Add tests/test_sfm.py covering the SFM algorithm and behavior registration. (#307)

ir-sim-v2.9.4

Choose a tag to compare

@hanruihua hanruihua released this 21 Apr 10:31
4faa8ff

2.9.4

  • Features:

    • Add omni_angular kinematics and refactor omni to body-frame velocities, with redesigned keyboard control. (#270) @williamleong
    • Add env.reset(random=True) to re-sample randomized scenes without re-reading the YAML. (#283)
    • Add random_uniform sampler with pairwise min-distance and world-derived defaults for random/circle distributions. (#283)
    • Add env.refresh() / ObjectBase.refresh() to sync geometry, sensors, and collision tree without stepping. (#284)
  • Performance:

    • Replace circle-buffer obstacle-map geometry with vectorized shapely.box + unary_union: ~3× fewer linestrings, ~24× fewer coordinates, ~3.8× faster lidar step, and closes diagonal ray-leak gaps. (#276)
  • Fix:

    • Reset ObjectBase.id_iter on env init so sequential envs start IDs at 0. (#277)
    • Preserve initial velocity across env.reset() so set_velocity(init=True) takes effect. (#284)
  • Docs:

    • Fix broken cross-references and update omni velocity description to body-frame (EN + zh_CN). (#278)

ir-sim-v2.9.3

Choose a tag to compare

@hanruihua hanruihua released this 06 Apr 13:20

2.9.3

  • Features:

    • Add loop mode for waypoint navigation behavior. (#266)
    • Add line obstacle support to RVO algorithm. (#250)
    • Add CBF-QP and collision-cone usage examples. (#258) (@Lawliet9666)
  • Performance:

    • Vectorize lidar range/origin filter and skip union_all, ~48% faster lidar step on map-based arenas. (#257) (@williamleong)
    • Use STRtree intersects predicate for lidar map segment filtering, ~26% faster lidar step on PNG-map arenas. (#255) (@williamleong)
    • Cache geometry validity and streamline lidar map ray intersection, ~18% faster lidar step on PNG-map arenas. (#254) (@williamleong)
  • Fix:

    • Prevent infinite loop in WrapToPi/WrapTo2Pi for non-finite inputs. (#269)
  • Refactor:

    • Simplify file_check and find_file in util. (#256)

ir-sim-v2.9.2

Choose a tag to compare

@hanruihua hanruihua released this 15 Mar 16:16
  • Features:

    • Add env.create_robot() and env.create_obstacle() for programmatic object creation, and env.add_object() / env.add_objects() for adding them at runtime. (#251)
    • Add check_arrive() method to check if an object has reached a given goal, and initialize plot for dynamically added objects. (#240)
    • Add set_text() and set_goal_text() API for setting custom text on objects and goals. (#239)
    • Add typo detection and suggestions for invalid YAML configuration keys. (#227)
  • Refactor:

    • Centralize kinematics metadata (default color, state_dim, description) in the handler registry to make the kinematics be added more easily. (#237)
  • Fix:

    • Improve robustness of save animation by reading and saving frames one by one instead of loading all images into memory. (#230) (@williamleong)
  • Docs:

    • Add "Dynamic Object Management" section to the Make Environment documentation. (#251)
    • Fix and update Chinese translations.

ir-sim-v2.9.1

Choose a tag to compare

@hanruihua hanruihua released this 16 Feb 03:53
  • Features:

    • Add Perlin noise and image-based grid map generators, new JPS (Jump Point Search) and Informed RRT* path planners, and refactor existing planners (A*, RRT, RRT*, PRM) to use the EnvGridMap protocol. see usage 20 #215 (@KevinLADLee)
    • Drop Python 3.9 support, add Python 3.14 support. Raise minimum Python version to 3.10, modernize type annotations (Optional/Union to X | Y syntax). #216
    • Add optional reload parameter to set_random_seed() that regenerates random obstacles with the new seed when set to True. #210
    • Default animation filename to the world name when not explicitly specified. #221
  • Fix:

    • Add grid-based collision detection for obstacle maps using grid array lookup for faster detection, cache STRtree in ObstacleMap. #205
  • Refactor:

    • Add input validation decorators (validate_shape, validate_length, ensure_column_vector, ensure_numpy) for kinematics and utility functions.
  • Docs:

    • Refine README.
    • Add grid map configuration and path planning documentation. #215

ir-sim-v2.9.0

Choose a tag to compare

@hanruihua hanruihua released this 25 Jan 18:29

Assistant by claude code, this version adds multi-environment support with instance-based parameters, allowing multiple independent simulation environments to run simultaneously. It also introduces 1D ToF sensor support and keyboard improvements.

  • Features:

    • Add 1D ToF (Time-of-Flight) sensor support by setting lidar2d sensor number: 1 and angle_range: 0. (#200) by @williamleong
    • Add multi-environment keyboard switching support. Only one environment responds to keyboard input at a time; switching occurs via mouse click or focus events. (#192)
    • Add y key to toggle display render window on/off. (#194)
  • Refactor:

    • Environment parameters (env_param, world_param, path_param) are now instance-based rather than global, enabling proper multi-environment support. (#191)
  • Fix:

    • Fix robot property to raise IndexError with clear message when no robots exist. (#188)
    • Fix save_figure to handle filenames with multiple dots correctly. (#188)
    • Fix type annotations for get_group_by_name, get_obstacle_info_list, get_robot_info_list, and random_obstacle_position. (#188)
    • Fix set_ax_viewpoint to handle None objects parameter. (#188)
    • Add NotImplementedError for 3D state generation and uniform distribution (not yet implemented). (#188)
  • Docs:

    • Add changelog and contributing pages to documentation. (#203)
    • Improve custom behavior tutorial and examples. (#193)
    • Fix formatting issues in documentation. (#190)
  • Tests:

    • Refactor and improve test coverage from 94% to 97%. (#189)
    • Add tests for multi-env keyboard switching and display toggle.

ir-sim-v2.8.2

Choose a tag to compare

@hanruihua hanruihua released this 05 Jan 05:32
  • Features #183 by @hfr2015 :

    • Add group_name YAML parameter to help user manage the objects in the same group.
    • Add show_goal_text YAML parameter to decide whether to show the goal text on the plot.
    • Add get_group_by_name function to get the objects in the same group by the group name.
    • Update related documentation
  • Fix:

ir-sim-v2.8.1

Choose a tag to compare

@hanruihua hanruihua released this 12 Dec 16:58

Hotfix: Fix the autoapi extension issue in the documentation. bfa0a4c