sea-bass / pyrobosim

ROS 2 enabled 2D mobile robot simulator for behavior prototyping
https://pyrobosim.readthedocs.io/
MIT License
192 stars 29 forks source link

Add partial observability to robots #187

Closed sea-bass closed 23 hours ago

sea-bass commented 2 days ago

This PR augments the Robot class with the ability to simulate partial observability; that is, a robot must explicitly run a "detect" action to find objects at a specific location.

It also does some UI cleanup and preparation for other features coming up (opening / closing).

pyrobosim_partial_observability

image

Closes https://github.com/sea-bass/pyrobosim/issues/186

github-actions[bot] commented 2 days ago

Coverage

Coverage Report
FileStmtsMissCoverMissing
__init__.py00100% 
core
   __init__.py90100% 
   dynamics.py430100% 
   gazebo.py136894%55, 124, 230, 244–248
   hallway.py731086%59, 61, 63, 96, 158, 196–199, 205
   locations.py1262183%53, 55, 69, 84–85, 87, 98–99, 101–102, 119, 177, 192, 217, 227, 273, 284–285, 287–288, 312
   objects.py69494%78, 106, 137, 197
   robot.py2475378%150–151, 237, 250, 297, 311–312, 316, 320, 326–327, 329–330, 347–348, 376, 378–379, 400–401, 404–407, 410–412, 470, 474–476, 478, 480–483, 498, 506, 512, 517–518, 521, 541–542, 549, 558, 561, 566, 579–583
   room.py48197%113
   world.py57513975%146–147, 183–184, 188, 241–242, 244–245, 273–274, 325, 339–340, 342–343, 372–376, 378–380, 382–383, 386, 390–394, 397–399, 402–409, 440, 476–477, 480, 496, 526–527, 538, 541, 549, 565–569, 571–573, 576–577, 580–583, 585, 588, 590–592, 594–596, 598, 613, 620, 631–635, 670–671, 675–676, 694–695, 701–702, 704–705, 707, 709–710, 712, 714–715, 725–726, 729, 731, 745, 747, 754, 801, 832–833, 852–853, 857–858, 893–894, 896, 913–914, 933–937, 949–952, 964–967, 981, 992–993, 995, 1039–1040, 1172–1173
   yaml_utils.py1061189%64, 68, 153–155, 159–160, 183–184, 208–209
gui
   __init__.py20100% 
   main.py1833381%24, 26, 28–30, 32, 53, 85–86, 211–215, 222–225, 227, 230–236, 240–242, 246–247, 253, 264
   world_canvas.py2536076%29–31, 35–37, 41, 119–121, 128, 130, 187, 225, 229, 270–275, 281–282, 284–286, 291–292, 295, 298–300, 303, 308–309, 311, 329, 351–356, 359, 362–363, 378–380, 383, 400, 445, 447–448, 450–451, 487, 508, 512, 534
manipulation
   __init__.py10100% 
   grasping.py2366174%102, 110–112, 114–122, 124, 132, 462, 464–466, 470–472, 566–568, 571–575, 583, 586–588, 593–594, 600–604, 607–614, 617–619, 628, 630, 632–638
navigation
   __init__.py30100% 
   a_star.py781087%67–72, 74–76, 165
   execution.py34488%46–47, 49–50
   occupancy_grid.py1391489%44–47, 49–53, 56, 192, 226, 234, 238
   path_planner.py26676%33, 36, 38, 42, 85, 90
   planner_base.py591771%29–35, 51, 57–59, 140–145
   prm.py725622%40–44, 46, 50–51, 54, 57–64, 66–67, 76–79, 85, 101–102, 104–109, 111–112, 115–118, 121–126, 135, 144, 154, 156, 158–159, 161, 174–178
   rrt.py172795%228, 353–354, 360–361, 363, 392
   world_graph.py70395%118, 121, 145
planning
   __init__.py00100% 
   actions.py704732%59–60, 62, 66–75, 77–80, 82–86, 88–91, 93–97, 99–102, 104–105, 107–109, 155–156, 159–163
planning/pddlstream
   __init__.py7185%13
   defaultmappings.py90100% 
   planner.py40880%119–126
   primitives.py57296%68, 208
   utils.py85396%66, 99–100
utils
   __init_\.py00100% 
   general.py33487%23, 45, 51–52
   knowledge.py1441688%95–96, 105, 140–143, 150, 154–155, 168, 183, 187, 229, 245, 308
   motion.py60690%56, 67–71
   polygon.py1110100% 
   pose.py89297%211, 227
   search_graph.py93396%240–242
   trajectory.py650100% 
TOTAL362361083% 

Tests Skipped Failures Errors Time
172 0 :zzz: 0 :x: 0 :fire: 3m 58s :stopwatch: