Last week we got our robot moving around on the canvas using a websocket. The next step in creating our simulator was to make a colored map for the robot to move around in. The backend will send a map file through the websocket and I will display that map using frontend code. The map code was essentially an array of arrays that we had to loop through and make visible using color. Visualizing the map took a lot of researching the different components needed to draw the map. I needed all the information of the map file (the amount of cells, the height and width of each cell and how much meters each cell was) and I had to convert all of that to pixels to fit the canvas I created in the frontend. Once I had everything converted it was time to color the map to show the obstacles that were in the map file. I used the probability of the numbers in the map to give them a color ranging from white to blue. Blue meaning there was almost certainly an obstacle in that place and white meaning there was almost certainly no obstacle in that cell. After everything was fine-tuned and the code was debugged with the help of some of my peers the map was up and running!
This week we also had another educational meeting to talk about the structure of the course we were creating. Together with Mark Guzdial we talked a bit more about what the course or miultiple courses should look like. We came to a consensus that the course had to have interesting hands on components. We also talked about setting learning objectives of what all we think the students would need to learn in the course. The goal is to create 3 learning objectives per week so that in the end we have a nice list of objectives.
Furthermore, I created a software diagram together with my peer who does the backend of the code. We made a structure of what the backend and frontend look like right now and how we want it to be structured in the future. As of right now our plan is to have the map and the velocity commands for the robot sent in two different websockets in order to work at the same time. We will be updating this later in the summer so that if we want to add more components we will not have to run a lot of different websockets.