Releases: sea-bass/pyrobosim
3.2.1
3.2.0
This is a minor release that completes a 3.1.0 feature and makes a few other significant improvements and bug fixes.
Summary:
- Added ability to serialize worlds to YAML, allowing resetting worlds created programmatically in addition to from YAML files.
- Revamped logging framework to consistently use Python
logging
module if standalone and ROS logging if using ROS. - Actions with simulated delays can now be canceled during the delay, whereas previously they would block the entire system.
- Poses in world YAML files can now be specified as structures instead of lists, including Euler angles vs. quaternions.
Old (still compatible):
pose: [1.0, 2.0, 0.0, 1.57] # x, y, z, yaw
New:
pose:
position:
x: 1.0
y: 2.0
rotation_eul:
yaw: 1.57
pose:
position:
x: 1.0
y: 2.0
rotation_quat:
w: 0.7071
x: 0.0
y: 0.0
z: -0.7071
What's Changed
- Run
rosdep install
in setup script by @sea-bass in #284 - Fix typo in actions documentation by @Kilidsch in #285
- Sample object poses in
World.update_object
by @sea-bass in #287 - Fix plan cancellation logic by @sea-bass in #288
- Run all robot actions in GUI in separate threads by @sea-bass in #290
- Improved logging by @sea-bass in #292
- Allow collisions between walls in rooms and hallways by @sea-bass in #294
- Allow specifying poses as YAML in world files by @sea-bass in #295
- Serialize worlds to YAML and allow resetting all worlds by @sea-bass in #296
- 3.2.0 by @sea-bass in #302
New Contributors
Full Changelog: 3.1.0...3.2.0
3.1.0
This is a minor release that addresses several bugs/robustness issues in 3.0.0.
It additionally adds a few new features, such as (limited) world resetting from the GUI, constantly draining battery during navigation, and looking up hallways with bidirectional names (e.g., hall_roomA_roomB
and hall_roomB_roomA
)
What's Changed
- Count paths with zero poses as path planning failures by @sea-bass in #251
- Allow opening and closing locations globally from GUI by @sea-bass in #254
- Remove graph nodes from locked-off hallways when searching for paths by @sea-bass in #253
- Include hallway state in world state ROS message by @sea-bass in #255
- Cleanly shutdown ROS interface node by @sea-bass in #256
- Include navigation path length in ROS message by @sea-bass in #257
- Consistently return execution status in GUI callbacks by @sea-bass in #258
- Add header to RobotState message by @sea-bass in #259
- Consistently update robot state in GUI after path following by @sea-bass in #260
- Count open, close, lock, and unlock trivial operations as success by @sea-bass in #261
- Fix collision checking with closed hallways by @sea-bass in #265
- Use
get_location_from_pose
function consistently and optimize it to check the previous location by @sea-bass in #264 - Allow looking up hallways by reversed name by @sea-bass in #266
- Allow multiple hallways connecting two rooms and check for duplicate names in world add methods by @sea-bass in #268
- Fix
pyrobosim_ros
docs build and move build script to docs folder by @sea-bass in #269 - Add world reset UI button by @sea-bass in #270
- Import matplotlib 3D tools in the bodies of grasp plotting functions by @sea-bass in #273
- Drain battery continuously while navigating by @sea-bass in #274
- Fix path following cancelation logic by @sea-bass in #275
- Add ROSCon 2024 workshop to usage examples by @sea-bass in #276
- Fix object spawn getters by @sea-bass in #279
- Enable interactive mode in GUI MatPlotLib canvas by @sea-bass in #280
- 3.1.0 by @sea-bass in #281
Full Changelog: 3.0.0...3.1.0
3.0.0
This is a major release containing several features for the ROSCon 2024 workshop: "Hands-on with ROS 2 Deliberation Technologies"
Major features include:
- Ability to open/close hallways and storage locations.
- Simulating local, per-robot, object observability and detection actions.
- Simulating action delays, success probability, and battery depletion/charging.
- Improvements to navigation, including path canceling, runtime collision detection, planner resets, and simplified code.
- All high-level actions and task plans can now be canceled and return execution status, in both the core API and ROS interface.
- Improved ROS interface with additional features, as well as integration tests and ability to build the entire repo with colcon.
What's Changed
- Update GitHub actions and pre-commit by @sea-bass in #178
- Pin NumPy below 2.0.0 by @sea-bass in #179
- Unpin NumPy and do not upgrade pip in scripts and CI by @sea-bass in #180
- Improve setup script experience by @sea-bass in #183
- Add partial observability to robots by @sea-bass in #187
- Allow path planning failures to fail navigate actions by @sea-bass in #190
- Small fix to nav failure state tracking by @sea-bass in #192
- Cleanup navigation display and execution in GUI by @sea-bass in #193
- Fix GUI threading errors when clicking Navigate button by @sea-bass in #195
- Flesh out tests for RRT and PRM planner by @sea-bass in #196
- Add hallway open and close capabilities by @sea-bass in #198
- Fix yaw setting in location nav poses by @sea-bass in #201
- Unify navigation code and automatically extract robot location by @sea-bass in #202
- Simulate delays and failures when executing actions by @sea-bass in #205
- Add reference to "Hierarchically Decentralized Heterogeneous Multi-Robot Task Allocation System" paper by Kashid and Kumat by @sea-bass in #210
- Add path execution validation and abort by @sea-bass in #211
- Allow canceling actions and plans by @sea-bass in #214
- Run colcon tests in CI by @sea-bass in #216
- Add execution status to actions and plans by @sea-bass in #217
- Add ROS service to set location state by @sea-bass in #218
- Go through docs after latest changes by @sea-bass in #219
- Add test coverage to plan printing by @sea-bass in #220
- Extend Open/Close actions to storage locations by @sea-bass in #221
- Use signals and slots in GUI display methods by @sea-bass in #222
- Show path in GUI when the path is given beforehand + unify query to entity support in GUI vs. non-GUI actions by @sea-bass in #223
- Fix ROS 2 action abort paths by @sea-bass in #225
- Fix action status tracking by @sea-bass in #226
- Add ROS interface integration tests by @sea-bass in #227
- Handle path planning failures correctly in action interface by @sea-bass in #232
- Support getting local robot observations in world state ROS service by @sea-bass in #233
- Move action execution options to the robot definition by @sea-bass in #234
- Simulate robot battery usage and charging by @sea-bass in #235
- Enable Open, Close, and Detect actions in PDDL capabilities by @sea-bass in #237
- Require PySide6 6.4.0 or greater by @sea-bass in #238
- Add specialized ROS action servers for path planning and following by @sea-bass in #239
- Add specialized ROS action for object detection by @sea-bass in #240
- Add UI button to toggle collision polygon display (issue #200) by @muhidabid in #242
- Allow pyrobosim to be built and tested with colcon by @sea-bass in #246
- Make CI work from forks by @sea-bass in #245
- Simplify path planner API and allow planner resets by @sea-bass in #241
- Gracefully exit navigation action when target location is not specified by @sea-bass in #248
- Implemented Cancel Actions UI button (#215) by @muhidabid in #247
- Add Reset Path Planner UI button by @sea-bass in #249
- 3.0.0 by @sea-bass in #250
New Contributors
- @muhidabid made their first contribution in #242
Full Changelog: 2.0.0...3.0.0
2.0.0
What's Changed
This is a major release with breaking changes for both users and internal developers.
User-Facing Changes
- Update documentation to reflect correct base PathPlanner class by @akshayprsd in #155
- Do not require PDDLStream for tests, switch to main repo by @sea-bass in #163
- Add Trajectory class by @sea-bass in #164
- Fix pip install in Ubuntu 24.04 Dockerfile by @sea-bass in #170
- Support ROS 2 Jazzy / Ubuntu 24.04 by @sea-bass in #169
- Switch to PySide6 by @sea-bass in #171
- Use ROS actions to execute actions and task plans by @sea-bass in #173
- Fix ros_interface.py constructor docstring and clean up scripts by @sea-bass in #174
- 2.0.0 by @sea-bass in #175
Internal Developer Changes
- Add PR write permissions to tests CI job by @sea-bass in #156
- Set init for compose services by @eholum in #157
- Skip coverage comment for PRs from forks by @eholum in #158
- Fix tests and cache containers for CI by @eholum in #160
- Containerize the non-ros testing pipeline by @eholum in #161
- Pin pytest below 8.1.0 and fix warnings when creating entities with invalid categories by @sea-bass in #162
- Set package version in Sphinx configuration by @sea-bass in #165
- Update pre-commit hooks and apply changes by @sea-bass in #167
- Add coverage badge to README by @sea-bass in #168
New Contributors
- @akshayprsd made their first contribution in #155
- @eholum made their first contribution in #157
Full Changelog: 1.2.0...2.0.0
1.2.0
What's Changed
- Fix coverage base folder by @sea-bass in #147
- Show coverage in PRs + fix ReadTheDocs build by @sea-bass in #150
- Simulate simple 2D robot dynamics by @sea-bass in #151
- Add robot velocity command ROS subscribers by @sea-bass in #152
- 1.2.0 by @sea-bass in #153
Full Changelog: 1.1.0...1.2.0
1.1.0
What's Changed
- Adds Pose equivalency functions by @JoshuaFutcher in #130
- Add Robot class tests by @sea-bass in #128
- World knowledge tests by @henrygerardmoore in #126
- Add coverage collection to tests by @sea-bass in #131
- Add Pose unit tests by @sea-bass in #132
- Unit tests for path and trajectory utilities by @sea-bass in #134
- Unit tests for occupancy grid utilities by @sea-bass in #136
- Add unit tests for search graph by @sea-bass in #137
- Add more coverage to
World
class tests by @sea-bass in #138 - Add unit tests for
TaskPlan
andTaskAction
objects by @sea-bass in #139 - Add unit tests for polygon utilities by @sea-bass in #140
- Add unit tests for world YAML loading utilities by @sea-bass in #141
- Add Gazebo export unit tests and remove Ignition mentions by @sea-bass in #143
- Handle missing parent and invalid categories when adding locations and objects by @sea-bass in #144
- Split out CI jobs by @sea-bass in #145
- Version 1.1.0 by @sea-bass in #146
New Contributors
- @JoshuaFutcher made their first contribution in #130
- @henrygerardmoore made their first contribution in #126
Full Changelog: 1.0.0...1.1.0
1.0.0
What's Changed
Initial pyrobosim
release.
Full Changelog: https://github.com/sea-bass/pyrobosim/commits/1.0.0