---
# System prepended metadata

title: Progress report 13/12 group 8

---

# Progress report 13/12 group 8

## Jobs done
- Camera
    - Fix the camera on the robot; mounted 3D-printed camera holder on the robot.
    - Further improvment of the color detection of the mannequin. In previous code a mannequin was seen several times. Combine these together to receive one for each detected mannequin.
    - return the angle under which the camera sees the mannequin.
- Created an environment in Gazebo to simulate the project. Through this way we can already try some things at home and start debugging such that the time using the robot is optimal used.

- SLAM/Mapping:
    - The map from SLAM can be extracted and the coordinates of mannequins can be read out. (But maintaining a list of the mannequin positions still needs some work)
    - get the cartesian coordinates of the robot in the SLAM map

- Navigation:
    - The robot can now navigate to a given location in RVIZ. 
    - The navigation is implemented using Ros Navigation layer and the map is provided by SLAM.
    - The robot can navigate to a certain coordinate on the map (this also works in the Python code, when we extract coordinates of obstacles from SLAM and send them to the navigation node)

## Future work

Mannequins Detection:
- get the coordinates of mannequins from the occupancy grid map. Than we can drive towards a possible mannequin and use the camera to see how it's oriented.
- retrieve the orientation of the mannequin using the camera and take this into account to navigate through the map.

(Social) Navigation:
- remember the start position (= bar) and return to the bar after serving all the mannequins
- find a way to see if the whole map is "known" in order to know if every mannequin is being served
- Make sure the robot does not navigate to close the people (change the map based on the mannequins (and groups) or update the costmap such that they are avoided/ dont collide)
- (Make the robot look social / add a speaker) if there's enough time

Navigation:
- set all parameters as optimally as possible (currently mainly done in simulations, but needs to be check in the real setup)

Simulator:
- perhaps, we might improve the simulator to better represent the realistic setup and/or add randomization to test the software more in-depth