Releases: hanruihua/ir-sim
ir-sim-v2.9.3
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)
- Vectorize lidar range/origin filter and skip
-
Fix:
- Prevent infinite loop in
WrapToPi/WrapTo2Pifor non-finite inputs. (#269)
- Prevent infinite loop in
-
Refactor:
- Simplify
file_checkandfind_filein util. (#256)
- Simplify
ir-sim-v2.9.2
-
Features:
- Add
env.create_robot()andenv.create_obstacle()for programmatic object creation, andenv.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()andset_goal_text()API for setting custom text on objects and goals. (#239) - Add typo detection and suggestions for invalid YAML configuration keys. (#227)
- Add
-
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
-
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
EnvGridMapprotocol. 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/UniontoX | Ysyntax). #216 - Add optional
reloadparameter toset_random_seed()that regenerates random obstacles with the new seed when set toTrue. #210 - Default animation filename to the world name when not explicitly specified. #221
- 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
-
Fix:
- Add grid-based collision detection for obstacle maps using grid array lookup for faster detection, cache STRtree in
ObstacleMap. #205
- Add grid-based collision detection for obstacle maps using grid array lookup for faster detection, cache STRtree in
-
Refactor:
- Add input validation decorators (
validate_shape,validate_length,ensure_column_vector,ensure_numpy) for kinematics and utility functions.
- Add input validation decorators (
-
Docs:
- Refine README.
- Add grid map configuration and path planning documentation. #215
ir-sim-v2.9.0
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: 1andangle_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
ykey to toggle display render window on/off. (#194)
- Add 1D ToF (Time-of-Flight) sensor support by setting lidar2d sensor
-
Refactor:
- Environment parameters (
env_param,world_param,path_param) are now instance-based rather than global, enabling proper multi-environment support. (#191)
- Environment parameters (
-
Fix:
- Fix
robotproperty to raiseIndexErrorwith clear message when no robots exist. (#188) - Fix
save_figureto handle filenames with multiple dots correctly. (#188) - Fix type annotations for
get_group_by_name,get_obstacle_info_list,get_robot_info_list, andrandom_obstacle_position. (#188) - Fix
set_ax_viewpointto handleNoneobjects parameter. (#188) - Add
NotImplementedErrorfor 3D state generation and uniform distribution (not yet implemented). (#188)
- Fix
-
Docs:
-
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
-
- Add
group_nameYAML parameter to help user manage the objects in the same group. - Add
show_goal_textYAML parameter to decide whether to show the goal text on the plot. - Add
get_group_by_namefunction to get the objects in the same group by the group name. - Update related documentation
- Add
-
Fix:
ir-sim-v2.8.1
Hotfix: Fix the autoapi extension issue in the documentation. bfa0a4c
ir-sim-v2.8.0
This version add the feature of group_behavior to support group-level behavior for all objects within the same group, which is more efficient for coordinated behaviors (like swarm or crowd simulation) as it computes actions for all members in a single step. The chinese (中文) version documentation is also supported.
-
Features:
- Add
group_behaviorYAML parameter to support group-level behavior for all objects within the same group. #169 - Integrate
GroupBehaviorclass to handle group-level logic, allowing for both function-based and class-based behaviors. #169 - Add ORCA (Optimal Reciprocal Collision Avoidance) behavior support implemented by pyrvo library, this behavior can be configured in the YAML file. #169 see usage orca_behavior_world
- Update
behavior_registryto support registration of behavior classes and group behavior classes using decorators (@register_behavior_class,@register_group_behavior_class). #169 - Add
viewpointYAML parameter for rendering the plot with the viewpoint of the object. #162 see keyboard_control
- Add
-
Docs:
-
Fix:
New Contributors
ir-sim-v2.7.5
-
Features:
- Add features to set/fix the seed in random environment generation for reproducibility.
Simply add the seed parameter to the make function (e.g.,env = irsim.make("random_obstacle.yaml", seed=2)) or set the seed using theenv.set_random_seedfunction followed byenv.reload(). See usage random_obstacle_seed for details. #147 #148 (thank @atinfinity for suggestions) - Add ORCA example (behavior) in ir-sim, implemented by pyrvo, a Python binding of the classic ORCA algorithm (C++ version, high efficiency). See usage orca world for details. #149
- Add features to set/fix the seed in random environment generation for reproducibility.
-
Bug fixes:
ir-sim-v2.7.4
-
Features:
- Add state normalization and an input-checking decorator function. #135
- Add new key
F5to debug the environment. In debug mode, the environment pauses and waits for the next F5 to continue; press Space to exit debug mode. #137 (thank @hfr2015 for suggestions) - Add new key
vto save the current figure. #137 - Add flags for reload, debug, and quit. #137
-
Bug fixes:
-
Style:
ir-sim-v2.7.3
-
Features:
- Switch the default keyboard backend to
pynput(global keyboard hook), with automatic fallback to Matplotlib (mpl) whenpynputis unavailable. Note:mplkeyboard event can introduce delays when plotting many objects. #130 - Parity for the
pynputkeyboard backend withmpl#130 :- Keyboard input is handled only when the figure window is focused.
- Add a
global_hookoption in the keyboard config to allow input when the figure window is unfocused. - Implement env
reloadandquitfor thepynputbackend.
- Add an environment-level
quitfunction. #130 - Rename keyboard handlers in
keyboard_control.py:_on_release→_on_pynput_release,_on_press→_on_pynput_press. #130
- Switch the default keyboard backend to
-
Bug fixes:
- Correct goal plot alpha handling. c4b238e
- Set default sample time to match step time. f549b16
- Fix random obstacle plotting. #126
- Fix GUI YAML example in the usage docs. c77d47b
- Resolve LiDAR step timing for dynamic objects (LiDAR updates after all object poses are updated). #127
- Fix keyboard issue on macOS. #130
-
Docs: