更新日志#
2.12.0 (2026-10-04)#
本版本新增用于真实碰撞处理的 contact 模式、面向学术论文配图的默认 Okabe-Ito 调色板、作为群体行为的社会力模型,并修复了反应式行为、激光雷达读数和环境生命周期中的问题。
新功能:
contact 模式像刚体物理引擎一样解算碰撞。 在 YAML 中设置
collision_mode: contact;它依据每个对象的mass、friction、inertia和restitution;具有有限mass的障碍物可以被推动,每个对象通过obj.contact报告其接触。详见usage/26push_box_world。(#374)新增面向学术论文配图的默认 Okabe-Ito 调色板。 渲染现在使用 Okabe-Ito 配色设置机器人、障碍物和其他对象的颜色。它们是
irsim.config.palette_param中的运行时参数;color: 'cycle'为群组中的每个机器人分配各自的调色板颜色。详见usage/06multi_objects_world。(#373)新增社会力模型的群体行为。
group_behavior: {name: sfm}一次推进整个人群,比逐对象的sfm快 2 到 2.6 倍;social_groups让行人结伴同行。详见usage/23sfm_world。(#369)激光雷达扫描报告有效性与无穷远距离。 两种激光雷达都提供逐束的
valid掩码,angle_std为光束方向加入噪声,env.get_msg(use_inf=True)按 REP 117 对未命中发布无穷大。详见usage/05lidar_world。(#379)
修复:
群体动作落到正确的机器人上。 栅格地图也不再作为幻影智能体加入群组。(#377)
RVO 为静止的机器人构建正确的速度锥。 静止的机器人不再撞向迎面而来的邻居。(#378)
差速和阿克曼机器人在
rvo与sfm下朝向目标行驶。 此前它们会转开。(#378)ORCA 以速度上限驱动全向成员。 此前它们被固定在 1 m/s。(#378)
激光雷达噪声只作用于命中的光束。 所有距离保持在
[range_min, range_max]内,range_min也已生效。(#379)无头模式下
control_mode: keyboard的场景回退到 auto。 此前它们在重置或重新加载后会崩溃。(#380)每个环境拥有独立的日志和图窗。 创建或关闭一个环境不再影响其他环境。(#380)
arrive_mode: state接受没有朝向的目标。 朝向差会做角度回绕。(#380)其他修复。 RVO 在超过速度上限时不再崩溃,FMCW 在
range_min以内的回波仍视为遮挡,传感器在构建时完成扫描,只有机器人能揭开迷雾地图,二维点可在三维中绘制,输出目录跟随脚本目录或工作目录,静止对象上的传感器会被重绘,自定义群体行为示例动起来了。(#378, #379, #380, #381)
文档:
文档 GIF 已用新调色板重新生成。 它们托管在 ir-sim-gifs 仓库中,README 画廊新增迷雾地图、contact 模式和社会力模型演示。(#381)
2.11.0 (2026-09-01)#
本版本新增用于批量训练的无头(headless)环境、复合几何体、内部/外部步进模式、ROS 风格的仿真消息,以及按环境隔离的对象 id 与随机数生成器,并大幅提升了激光雷达扫描与多机器人行为的步进速度。
在 Apple 芯片的 Mac 上以无头模式与 2.10.2 对比测得(多次运行取中位数):
耗时 |
2.10.2 |
2.11.0 |
加速比 |
|---|---|---|---|
|
2.88 ms |
0.26 ms |
11.1x |
|
6.20 ms |
1.51 ms |
4.1x |
|
5.27 ms |
0.31 ms |
17.0x |
|
4.32 ms |
0.60 ms |
7.2x |
|
3.07 ms |
2.15 ms |
1.4x |
|
37.1 ms |
2.16 ms |
17.2x |
|
5.92 ms |
3.82 ms |
1.6x |
不创建图形的 |
21.6 ms |
5.8 ms |
3.7x |
新功能:
复合几何体可建模多部件刚体。 真实平台很少是单一图元。现在可以用固定的圆、矩形和多边形部件组合出一个形状,并在碰撞、激光雷达、渲染和目标中作为一个整体使用。(#350)
外部系统可以接管状态更新。 在联合仿真或硬件在环场景中,外部仿真器或中间件已经算出了下一时刻状态;使用
step_mode: "external"时 IR-SIM 不再自行积分,而是让几何、传感器、碰撞和时钟与调用方设置的状态保持同步。(#354)ROS 风格消息用于交换仿真状态。 以前将 IR-SIM 接入 ROS 或其他仿真器需要自写胶水代码;
env.get_msg()/env.receive_msg()提供不依赖第三方库的快照与里程计更新,桥接只需几行代码。(#355)YAML 新增
custom段。 实验参数——奖励权重、安全裕度、规划器设置——可以与使用它们的场景放在一起,通过env.config["custom"]读取,而无需再维护第二个配置文件。(#359)无头模式完全不创建图形。 批量强化学习训练会创建成千上万个从不绘图的环境;
irsim.make(..., headless=True)不创建图形、窗口和输入设备,也不改动 Matplotlib 后端,并行进程完全不接触显示栈,创建环境的开销也大幅降低(见上表)。disable_all_plot保留为别名。(#362)自定义运动学模型可携带自己的 YAML 参数。 研究用模型——一阶惯性、打滑模型——需要自己的常数;
kinematics:下的所有额外键现在都会传入已注册处理器的__init__,自定义模型可以像内置模型一样直接在场景中配置,例如kinematics: {name: lag, tau: 0.5}。(#362)随机数按环境隔离。 向量化训练在一个进程中运行多个环境,结果不应取决于它们的交错顺序;使用
seed=创建的环境拥有自己的生成器,用于场景采样、重置和噪声,每次运行都可独立复现。未设种子的环境仍与以前一样共享默认生成器。(#365)
性能:
2D 激光雷达射线投射已重写。 GEOS 叠加运算被
Lidar2D与FMCWLidar2D共享的向量化射线投射取代:扫描约快 4.6-25 倍且距离误差在机器精度量级,从障碍物内部发出的扫描也不再冻结。(#353)RVO 候选速度评估已向量化。 逐候选的 Python 循环开销随 机器人数 x 邻居数 x 候选数 增长;现在对所有候选和模式(
rvo、hrvo、vo)统一用数组运算,16 个 RVO 机器人每步从 37 ms 降到 2.2 ms,且机器人越多收益越大。(#366)逐对象逐步开销被削减。 缓存几何半径、
geometry_transform改用shapely.transform、有效性不再每步做 GEOS 检查、目标每次更换只转换一次而不是每次读取都转换、acce无界时跳过加速度窗口,普通机器人群获得稳定约 1.6 倍加速。(#366)碰撞查询已批量化。 一次 STRtree 空间查询加一次向量化
intersects取代了每个对象各自的查询与检测;地图对象保留自己的占据检测。(#366)pynput 改为按需导入。 仅在创建 pynput 键盘控制器时才加载,每个进程节省约 85 毫秒导入时间。(#362)
修复:
全向机器人在其被操控的坐标系中接收指令。 ORCA、RVO 和 SFM 在世界坐标系中规划,但速度未经变换直接传给机器人,导致背向目标的机器人越走越远;现在速度会先变换到机器人自身坐标系再执行。(#357)
激光雷达角度改为截断而非取模。
angle_range或fov为 2pi 时会被取模成 0,所有光束指向正前方;二者现在都截断到 [0, 2pi]。(#360)采样间隔精确且不再为零。 浮点噪声使 0.3 / 0.1 每 2 步而不是 3 步采样一次,
sample_time小于step_time时还会除零;比率现在先舍入再截断,且至少为一步。(#360)动作行为符合用户预期。
env.step([1.0, 0.5])会把扁平动作拆给两个对象并崩溃,action_id表示列表位置而不是对象;现在接受扁平列表、元组以及以机器人名称为键的字典,action_id是对象 id 或名称,多余动作丢弃并给出一次警告,未知 id 抛出ValueError。(#360)未注册的运动学名称会抛出异常。
kinematics.name拼写错误以前会静默生成差速机器人,现在抛出NotImplementedError。(#360)警告不再刷屏。 速度被截断或机器人没有行为时,以前每一步都会警告;此类条件现在只警告一次,之后以 DEBUG 级别记录。(#360)
end()只释放自己的资源。 无头运行从不关闭自己的图形,清理时还会关闭其他环境的窗口并重置共享 id 计数器;end()现在只关闭自己的图形,不再改动共享状态。(#360)对象 id 按环境分配。 创建或重置第二个环境会回拨全局 id 计数器,导致添加到第一个环境的对象可能复用已有 id;每个环境现在从 0 开始编号,
add_object拒绝重复 id,对象按身份比较,env.id为环境编号。(#362)全局种子在
make()之后仍然有效。 以前创建不带种子的环境会用全新的无种子生成器替换共享生成器,因此先set_seed(0)再irsim.make()无法复现。现在可以了。(#365)绘图与键盘的边界问题已修复。 用宽和高绘制矩形会抛出
TypeError且与碰撞几何错位,跟随视角会先显示一帧世界中心画面,3D 线段只接受三个点,没有环境时按键会抛错;这些现在要么正常工作,要么被忽略并给出警告。(#356)
重构:
文档:
2.10.2 (2026-08-01)#
修复:
在碰撞几何、渲染、凸
G/h约束和 RVO 邻居状态中一致应用机体坐标系下的圆心偏移,并对 HRVO 反正弦函数的输入进行截断。这样可确保带偏移的圆和阿克曼模型圆在各种表示中保持对齐,并避免数学定义域错误。(#344)
重构:
将对象渲染从
ObjectBase抽取到专用的ObjectPlot类,并用数据类封装绘图选项,同时保持公共 API 和选项优先级不变。这样可分离渲染职责,且不破坏现有调用方。(#345)
文档:
测试:
将 25 个测试文件整合为 13 个,将
irsim/覆盖率从 96.7% 提升至 97.3%,并将本地测试套件运行时间从 3:02 缩短至 2:08。通过绑定实例路由环境和世界参数模块的访问,以防止全局状态泄漏,同时使测试套件更精简、更可靠。(#346)
2.10.1 (2026-07-01)#
2.10.0 (2026-05-24)#
此小版本新增两项感知与行为能力:用于行人式群体避障的社会力模型(SFM),以及可提供逐波束径向速度的简化二维 FMCW 激光雷达传感器。
新功能:
新增简化的 2D FMCW 激光雷达传感器,提供距离与速度回波,并新增
22fmcw_lidar_world使用示例。(#293) (@KevinLADLee)为
diff和omni运动学新增社会力模型(SFM)行为(各向异性 Moussaid-Helbing 2009 变体),并提供23sfm_world十字走廊使用示例。(#307)
性能:
在
ObjectBase上按时间步缓存velocity_xy、rvo_neighbor_state和rvo_line_segments,使 SFM/RVO 单步计算速度提升约 4 倍。(#307)
文档:
测试:
新增
tests/test_sfm.py,覆盖 SFM 算法与行为注册。(#307)
2.9.4 (2026-04-21)#
新功能:
新增
omni_angular运动学,提供 3 自由度机体坐标系控制[forward, lateral, yaw_rate],并将omni重构为机体坐标系[forward, lateral]。机体坐标系速度与物理全向平台的指令方式一致,omni_angular为完整约束/swerve 场景提供独立偏航控制。键盘控制围绕新轴重新设计。(#270)新增
env.reset(random=True),可从缓存的 YAML 解析结果重新采样随机场景。无需重新从磁盘读取 YAML 即可快速以全新随机场景(新位置、新随机形状)重启,适用于强化学习 rollout 和批量实验。(#283)新增带成对最小间距的
random_uniform采样器,并为random和circle分布提供基于世界的默认值。成对最小间距可防止随机采样中的物体重叠,基于世界的默认值使采样范围自动适应世界尺寸/偏移,用户无需为每个场景重复指定边界。(#283)新增
env.refresh()和ObjectBase.refresh(),无需推进仿真即可同步几何、传感器和碰撞树。在直接修改物体状态(如robot.set_state(...))后很有用,可确保下一次env.step()前传感器和碰撞数据已更新。(#284)
性能:
用矢量化的
shapely.box+unary_union替换圆形缓冲的障碍物地图几何。方格单元完美平铺栅格——linestring 减少约 3 倍、坐标减少约 24 倍、lidar 步进加快约 3.8 倍,障碍物地图碰撞查询也相应减负——并修复旧圆形缓冲中曾让 lidar 射线穿墙的对角缝隙。(#276)
修复:
文档:
修复使用指南和 YAML 配置参考中失效的交叉引用(Markdown
[Name](#irsim.path)链接替换为 Sphinx{py:class/meth/func}role),并在 EN + zh_CN 全文将 omni 速度描述更新为机体坐标系。(#278)
2.9.3 (2026-04-06)#
新功能:
为路点导航行为新增循环模式。(#266)
为 RVO 算法新增线段障碍物支持。(#250)
新增 CBF-QP 和碰撞锥使用示例。(#258) (@Lawliet9666)
性能:
矢量化 lidar 距离/原点过滤并跳过
union_all,基于地图的场景中 lidar 步进加快约 48%。(#257) (@williamleong)使用 STRtree intersects 谓词进行 lidar 地图线段过滤,PNG 地图场景中 lidar 步进加快约 26%。(#255) (@williamleong)
缓存几何有效性并简化 lidar 地图射线求交,PNG 地图场景中 lidar 步进加快约 18%。(#254) (@williamleong)
修复:
防止
WrapToPi/WrapTo2Pi在非有限输入下出现无限循环。(#269)
重构:
简化 util 中的
file_check和find_file。(#256)
2.9.2 (2026-03-16)#
新功能:
重构:
将运动学元数据(默认颜色、state_dim、描述)集中到 handler 注册表,使运动学更易于添加。(#237)
修复:
通过逐帧读取和保存而非将所有图像载入内存,提升保存动画的健壮性。(#230) (@williamleong)
文档:
在 Make Environment 文档中新增“动态物体管理”章节。(#251)
修复并更新中文翻译。
2.9.1 (2026-02-16)#
新功能:
新增 Perlin 噪声和基于图像的栅格地图生成器、新的 JPS(跳点搜索)和 Informed RRT* 路径规划器,并重构现有规划器(A*、RRT、RRT*、PRM)以使用
EnvGridMap协议。#215 (@KevinLADLee)移除 Python 3.9 支持,新增 Python 3.14 支持。将最低 Python 版本提升至 3.10,现代化类型注解(
Optional/Union改为X | Y语法)。#216为
set_random_seed()新增可选reload参数,设为True时用新种子重新生成随机障碍物。#210未显式指定时,动画文件名默认使用世界名称。#221
修复:
为障碍物地图新增基于栅格的碰撞检测,使用栅格数组查找以加速检测,并在
ObstacleMap中缓存 STRtree。#205
重构:
为运动学和工具函数新增输入校验装饰器(
validate_shape、validate_length、ensure_column_vector、ensure_numpy)。#209
文档:
完善 README。#222
新增栅格地图配置和路径规划文档。#215
2.9.0 (2026-01-26)#
此版本新增了基于实例参数的多环境支持,允许多个独立的仿真环境同时运行。还引入了 1D ToF 传感器支持和键盘改进。
2.8.2 (2026-01-05)#
功能 #183:
新增
group_nameYAML 参数,帮助用户管理同组物体。新增
show_goal_textYAML 参数,决定是否在绘图上显示目标文本。新增
get_group_by_name函数,按组名获取同组物体。更新相关文档
修复:
修复组 ID 参数冲突问题 #180 #183
修复组行为警告问题 e8ca7df
2.8.1 (2025-12-13)#
热修复:修复文档中的 autoapi 扩展问题。
2.8.0 (2025-12-12)#
此版本添加了 group_behavior 功能,支持同一组内所有对象的群体级行为,这对于协调行为(如群体或人群仿真)更加高效,因为它可以在单步中计算所有成员的动作。同时支持中文版文档。
新功能:
新增
group_behaviorYAML 参数,支持对同组所有物体的组级行为。集成
GroupBehavior类处理组级逻辑,支持基于函数和基于类的行为。新增由
pyrvo库实现的 ORCA(最优互惠碰撞避免)行为支持,可在 YAML 文件中配置。更新
behavior_registry,支持使用装饰器(@register_behavior_class、@register_group_behavior_class)注册行为类和组行为类。新增
viewpointYAML 参数,以物体视角渲染绘图。
文档:
支持中文版文档。
更新
group_behavior配置文档,包含 ORCA 参数。
修复:
generate_polygon 函数中的 rng 随机化
组索引递增问题
2.7.5 (2025-10-26)#
新功能:
新增在随机环境生成中设置种子以保证可复现性的功能。只需在 make 函数中添加 seed 参数(如
env = irsim.make("random_obstacle.yaml", seed=2)),或使用env.set_random_seed函数设置种子后调用env.reload()。详见用法random_obstacle_seed。在 ir-sim 中新增 ORCA 示例(行为),由 PyRVO 实现——经典 ORCA 算法(C++ 版,高效)的 Python 绑定。详见
usage orca world。
错误修复:
修复采样时间不生效的问题。
修复文档错误。
2.7.4 (2025-10-06)#
新功能:
新增状态归一化和输入检查装饰器函数。
新增
F5键调试环境。调试模式下环境暂停并等待下一次 F5 继续;按空格退出调试模式。新增
v键保存当前图像。新增 reload、debug 和 quit 标志。
错误修复:
修复键盘控制问题。
修复目标绘制问题。
样式:
整理 patch 绘图的绘图函数。
整理日志信息。
2.7.3 (2025-09-20)#
新功能:
将默认键盘后端切换为
pynput(全局键盘钩子),pynput不可用时自动回退到 Matplotlib(mpl)。注意:mpl在绘制大量物体时可能引入延迟。使
pynput键盘后端与mpl功能对齐:仅当图形窗口获得焦点时处理键盘输入。
在键盘配置中新增
global_hook选项,允许图形窗口失焦时输入。为
pynput后端实现reload和quit。
新增环境级
quit函数。重命名
keyboard_control.py中的键盘处理器:_on_release→_on_pynput_release,_on_press→_on_pynput_press。
错误修复:
修正目标绘图的 alpha 处理。
将默认采样时间设置为与步进时间一致。
修复随机障碍物绘图。
修复用法文档中的 GUI YAML 示例。
解决动态物体的 LiDAR 步进时序问题(LiDAR 在所有物体位姿更新后再更新)。
修复 macOS 上的键盘问题。
文档:
明确传感器更新顺序。
补充使用
pynput后端的键盘控制文档。
2.7.2 (2025-08-31)#
新功能:
在 YAML 配置中新增 gui 部分用于键盘和鼠标控制。参见 gui 配置
将默认键盘后端改为 Matplotlib(
mpl),其使用图形窗口按键事件。mpl后端在 Matplotlib 图形窗口获得焦点时生效。提供全局键盘钩子的pynput后端仍受支持,可在 YAML 中选择。新增
env.reload()可即时重载环境,使 YAML 更改无需关闭 Matplotlib 图形窗口即可应用。新增热键以配置和更新环境设置,在
auto和keyboard控制模式下均可用:r:重置环境space:暂停/恢复环境esc:退出环境x:在键盘和自动控制模式间切换l:重载环境并应用更新的 YAML,无需关闭 Matplotlib 图形窗口
更新相应的文档和用法。
2.7.1 (2025-08-25)#
新功能:
为物体新增
name属性,可在 yaml 文件中配置。新增重名检查以确保无重复名称。明确
env.step动作顺序:1. 键盘控制;2. 输入动作;3. 行为控制。新增
env.get_object_by_name和env.get_object_by_id函数,按名称和 id 获取物体。
错误修复:
修复文档和函数注释中的错误。
ir-sim 2.7.0 (2025-08-10)#
此版本改进了 CI 流水线、GitHub Actions 工作流、代码检查和格式化,以确保一致的代码风格和更快的检查速度,无 API 变更。
工作流改进:
采用
uv管理项目和依赖;pyproject.toml 现由 uv 管理。使用
uv.lock锁定依赖。使用
Ruff进行 lint 和格式化(替代Black)。新增类型提示并使用
ty进行类型检查。新增
pre-commit配置(.pre-commit-config.yaml),在提交前运行 lint 和格式化。重组 GitHub Actions 工作流以测试 API 并强制代码风格。
新增 issue 模板、dependabot.yml、贡献指南。
错误修复:
修复文档错误。
修复三维绘图标题。
目录结构:
将
doc/重命名为docs/。将
irsim/usage/移动到仓库根目录的usage/。
ir-sim 2.6.1 (2025-07-28)#
错误修复:
修复文档错误。
新功能:
新增 WrapTo2Pi 函数。
对 lidar 和 fov 角度范围应用 WrapTo2Pi。
ir-sim 2.6.0 (2025-07-21)#
此版本是文档网站的重大更新。新网站更加用户友好,更容易浏览参数用法和 API。
主要功能
为文档新增版本切换器。
优化文档样式。
优化注释和代码风格。
错误修复:
从 ndarray 提取元素
修复目标朝向和轨迹保留长度
修复 GIF 生成错误
API 变更:
将
global_param文件夹重命名为config。所有对global_param的调用都应替换为config。将
keep_length重命名为keep_traj_length和keep_trail_length。
ir-sim 2.5.5 (2025-06-29)#
新功能:
新增环境暂停和恢复功能。在键盘控制中按
space键可暂停/恢复环境。详见 键盘控制文档。新增环境标题以显示当前仿真时间和机器人状态。也可通过
env.set_title函数自定义标题。详见 make env 文档。将默认图像像素(尺寸)改为 1000x800。
功能增强:
优化代码风格、日志警告输出和网站文档。
ir-sim 2.5.4 (2025-06-16)#
错误修复:
修复 pynput 导入错误
ir-sim 2.5.3 (2025-06-15)#
新功能:
新增 GUI 模块,包含键盘和鼠标控制。
新增鼠标控制文档。
将物体默认目标设为 None。
错误修复:
修复 macOS 系统的后端错误。
修复物体绘图的 zorder 问题。
修复物体碰撞检查问题。
API 变更:
为环境新增
mouse_left_pos、mouse_right_pos和mouse_pos属性用于鼠标控制。将 keyboard_control.py 移至 gui 文件夹。因此键盘 API 改变,如从
env.alt_flag改为env.keyboard.alt_flag。
ir-sim 2.5.2 (2025-06-02)#
错误修复:
修复清除组件的 bug。
ir-sim 2.5.1 (2025-06-02)#
错误修复:
修复目标绘图坐标 bug。
修复文档和注释中的语法、格式和拼写错误。
将加速度参数名
accer统一为acce。移除障碍物的状态检查警告。
新功能:
为圆形物体新增
center。
ir-sim 2.5.0 (2025-05-26)#
此版本通过重构对象绘图函数和大型环境的几何变换操作,提升了性能(约 40% 的速度提升)。
新功能:
使用 Matplotlib patch transforms 重构物体绘图函数。
新增物体绘图功能和 API。
重构几何变换操作。
提高测试覆盖率。
新增设置激光颜色的函数。
优化文档和待办列表。
为项目新增 UV 锁文件。
错误修复:
修复对象绘制错误。
将
init_vertices重命名为original_vertices。将
init_geometry重命名为original_geometry。修复警告消息。
ir-sim 2.4.4 (2025-05-06)#
错误修复:
修复几何树错误
修复三维绘图错误
新功能:
新增 RRT* 路径规划器
为 rvo 行为新增 neighbor_threshold 参数
功能增强:
更新距离函数以加速 rvo 算法
更新机器人图像
ir-sim 2.4.3 (2025-04-30)#
错误修复:
修复 lidar 偏移绘图 bug。
新功能:
实现若干经典路径规划器(A*、RRT、PRM),改编自 python robotics 仓库。
新增绘制 quiver 的函数
在 yaml 文件中新增世界绘图参数。
更新依赖要求。
ir-sim 2.4.2 (2025-04-19)#
错误修复:
将 omni 机器人默认状态维度改为 3。
移除 env_base 中的 check_collision 和 arrive 属性。
修复测试用例中的 bug;移除部分旧功能 (#50)。
新功能:
重组 logger 函数。
新增物体航向和朝向 (#48)。
为碰撞检查构建几何树
提升此代码的测试覆盖率 (#50)。
ir-sim 2.4.1 (2025-04-02)#
错误修复:
修复多边形轨迹类型 bug。
新功能:
确保障碍物为有效多边形。
新增设置激光颜色的函数。
环境可在无 yaml 文件时初始化。
新增渲染
mode以选择要渲染的物体:static、dynamic、all。增强 readme 和文档。
ir-sim 2.4.0 (2025-03-20)#
新功能:
新增由 3D 场景数据集(Hm3d)生成的二值地图。
加速大型二值地图的碰撞检查。
支持多目标设置。
新增 requirement 文件。
为物体新增设置随机目标的调用。
错误修复:
修复碰撞模式 bug,无阻挡障碍物将不计入碰撞检查。
修复 readme 和文档中的拼写错误。
修复日志消息中的错误。
修复多物体键盘控制错误。
ir-sim 2.3.6 (2025-03-12)#
错误修复:
Lidar2d 传感器现在会穿过无阻挡物体,详见用法:
05lidar_world。修复在无头服务器运行时的 matplotlib 后端错误。
修复物体顶点错误。
修复绘图参数名:edgecolor -> trail_edgecolor;linewidth -> trail_linewidth;
新功能:
为物体新增
obj_linestyle参数以设置物体边缘线型,详见用法:05lidar_world。更新物体属性注释和 API 文档。
ir-sim 2.3.5 (2025-02-27)#
错误修复:
多边形物体初始顶点的维度
新功能:
完善物体的 show_text 功能并为物体新增缩写名,运行用法:06multi_objects_world 查看详情。
为 set_goal 函数新增 init 参数。
为环境新增 add_object、add_objects、delete_object、delete_objects 函数以支持添加或移除障碍物。
为物体新增 get_Gh 函数。
更新函数的类型提示并用 black 格式化代码。
ir-sim 2.3.4 (2025-02-18)#
错误修复:
全向机器人动力学
RVO 除零问题
Python 版本兼容性
新功能:
更新 random_obstacle_position 函数以支持障碍物选择和不重叠特性。
支持将动画保存为视频。
ir-sim 2.3.2 (2025-01-28)#
ir-sim 2.3.2 是一个错误修复版本,与 2.3.1 相比没有新功能。
ir-sim 2.3.1 (2025-01-26)#
更新相关文档。
修复若干错误
新功能:
为物体新增 FOV,详见用法 15fov_world。
为 WrapToPi 函数新增参数。
为行为新增角色选择。
ir-sim 2.3.0 (2024-12-22)#
主要版本更新:
发布项目文档。
为项目新增覆盖率测试。
重构运动学 handler 和几何 handler 以配置机器人和障碍物。
重组 lidar2d 步进函数以提升性能。
更新函数注释。
修复项目中的若干 bug。
新增 3D 绘图环境。
ir-sim 2.2.6 (2024-11-22)#
重构行为库并新增自定义行为接口。详见用法:13custom_behavior。
为 YAML 文件新增默认名称,与 Python 脚本名匹配。详见用法:12dynamic_obstacle。
更改轨迹可视化样式。详见用法:02robot_world。
重构 save_figure 函数。详见用法:07renderw_world。
修复 env.end() 函数中的 'display' bug。
ir-sim 2.2.5 (2024-10-17)#
将 GIF 文件转为 readme 链接以减小仓库体积
修改机器人箭头的可视化
按像素调整图像尺寸
新增世界时间重置功能
将 matplotlib 后端改为 TkAgg
修复可视化的若干 bug
ir-sim 2.2.4 (2024-09-17)#
修复障碍物的碰撞避免 bug
整理运动学函数
为 object_base 新增 state_shape 和 vel_shape
用 black 格式化所有 Python 代码
完善函数注释并生成 API 文档
ir-sim 2.2.3 (2024-09-01)#
将模块名从 ir_sim 重命名为 irsim,将包名从 ir_sim 重命名为 ir-sim
为项目新增引用信息
优化函数注释
为文档配置 readthedocs 和 sphinx
为物体新增 unobstructed 属性,详见用法:obstace_world
修复 state_dim 错误
ir-sim 2.2.0 (2024-08-30)#
将模块从 ir_sim 重命名为 irsim,将包名从 ir_sim 重命名为 ir-sim
为项目新增引用信息
优化函数注释
ir-sim 2.1.4 (2024-08-19)#
更新函数注释
更新 README
新增更改环境中物体分布的接口
新增环境中障碍物随机化功能
ir-sim 2.1.3 (2024-08-11)#
修复示例中的错误
删除部分旧文件
修复若干错误
ir-sim 2.1.2 (2024-08-04)#
修复 omni 动力学机器人的 bug
修复 RVO 行为错误
替换 object_base 的 diff 描述
ir-sim 2.1.1 (2024-07-15)#
更新 YAML API
增强 object_base 中的功能 (G, h)
扩展项目开发工具
修复若干错误
ir-sim 2.1.0 (2024-03-29)#
大版本更新
重构整个项目框架,所有物体均基于 object base 开发
使用 shapely 构建机器人和障碍物的几何
重构 YAML 接口
为物体新增行为库
新增物体工厂用于创建物体
新增 env logger 用于记录和打印环境状态
ir-sim 1.1.12 (2023-11-02)#
更新 show_trail 的刷新;新增设置机器人目标的方法;修复若干 bug
ir-sim 1.1.11 (2023-04-28)#
新增更改 edgecolor 的函数;新增重复 mkdirs;修复若干 bug
ir-sim 1.1.10 (2023-04-12)#
修复若干错误
新增碰撞模式 'unobstructed'
新增矩形框绘制函数
为障碍物新增半径属性
ir-sim 1.1.9 (2023-03-20)#
修复若干错误
为障碍物新增功能。
ir-sim 1.1.8 (2023-02-27)#
新增地图障碍物
修复机器人重置错误
新增不同车辆模型
ir-sim-v1.1.7 (2023-01-16)#
修复 pyproject.toml 的 bug