Demo 2
Work Done
Adapted previous code to the new problem as stated in the previous post. Additionally, implemented a rudimentary anticipatory controller based on probabilities in a database.
ROS Architecture
The robot communication is established using Robot Operating System (ROS) with 5 main nodes.
-
orbbec_camera: node responsible for receiving the images from the camera and publishing them to ROS;
-
human_locator: node responsible for analyzing the depth images and returning the position of the highest point in a certain region of interest which is then considered as the position of the human in the workspace;
-
object_color_segmenter: groups of nodes responsible for analyzing the color images and returning the position of the objects in the workspace using color segmentation;
-
database: node responsible for managing the database (postgres docker container) including creating the tables, inserting data and queries;
-
decision_making_block: node responsible for receiving the information resulting from the sensor data and keeping an internal state machine to decide what actions should be taken and when they should be taken;
-
move_it!: group of nodes responsible for planning the robot trajectory in each action.