|
|
|
import math
|
|
|
|
|
|
|
|
import pygame
|
|
|
|
|
|
|
|
from slam.environment import Environment
|
|
|
|
from slam.sensors import Lidar2DSensor
|
|
|
|
|
|
|
|
PYGAME_RUNNING = True
|
|
|
|
SENSOR_ON = False # Mouse cursor
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
global PYGAME_RUNNING
|
|
|
|
global SENSOR_ON
|
|
|
|
environment = Environment(map_path="../data/slam_demo_floor_plan.png", map_height=600, map_width=1200)
|
|
|
|
environment.original_map = environment.map.copy()
|
|
|
|
laser = Lidar2DSensor(200, environment.original_map, uncertainty=(0.5, 0.01))
|
|
|
|
environment.map.fill(environment.colors.black)
|
|
|
|
environment.info_map = environment.map.copy()
|
|
|
|
|
|
|
|
while PYGAME_RUNNING:
|
|
|
|
|
|
|
|
for event in pygame.event.get():
|
|
|
|
if event.type == pygame.QUIT:
|
|
|
|
PYGAME_RUNNING = False
|
|
|
|
if pygame.mouse.get_focused():
|
|
|
|
SENSOR_ON = True
|
|
|
|
else:
|
|
|
|
SENSOR_ON = False
|
|
|
|
|
|
|
|
if SENSOR_ON:
|
|
|
|
sim_robot_position = pygame.mouse.get_pos()
|
|
|
|
laser.position = sim_robot_position
|
|
|
|
sensor_data = laser.sense_obstacles()
|
|
|
|
# Draw data to map
|
|
|
|
environment.store_points(sensor_data)
|
|
|
|
environment.show_sensor_data()
|
|
|
|
# update the map
|
|
|
|
environment.map.blit(environment.info_map, (0, 0))
|
|
|
|
# display the map
|
|
|
|
pygame.display.update()
|
|
|
|
|
|
|
|
exit(0)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|