Rishika Vunnama's Notebook - cps-vip/cps-cosimulation-env GitHub Wiki
This week I attended my first VIP meeting on Thursday. My time mainly consisted of introducing myself and getting to know the VIP and its teams better. I learned that there are three main sub-teams in this project, Device Security, ROS/HELICS, and Device Modeling. After much contemplation and some research, I decided to join the ROS/HELICS team. I also completed the welcome quiz and sub-team quiz.
This week I was finally able to meet the members of my sub-team, ROS/HELICS, and hash out logistics. We decided to meet every Friday at differing times depending on the week and also established a line of communication on Discord. We are beginning to work on our Kickoff Presentation.
To inform myself about the sub-team, I also looked at the Spring 2026 Final Presentations. Some highlights include:
- Mission 1, Basic Simulation, and Mission 2, Physical Robot Navigation
- RPi and STM32 communication
- Kalman Filtering
I also worked on the Linux/Bash tutorial shown in the announcements this week to develop fundamental skills in this area. This is a screenshot of me using pwd, ls, and cmd:
This week we did not have an in-person class and instead had an extra week to work on our kick-off presentation. The ROS/HELICS sub team had their first meeting this week in order to discuss the Kick-Off presentation. I made my efforts to better understand where the team left off in its work.
In order to understand the sub team, I looked into the git-hub repos to understand their work. Some highlights include:
- The CAD model of the robot currently (PCB design has many remaining tasks to complete)
- The NAV2 GitHub repository
- The Robot PID controller repository (picture below)
I decided to focus on PCB design in this sub team which involves designing, building, and testing the substation inspection robot. Some skills that I needed to improve in order to give my best on this sub team include C++, HELICS, ROS2, GridLAB-D, CAD, Electronics. To get further in improving my skills, I familiarized myself with the current CAD model and looked into each piece shown. Here is a picture of the full robot below:
This week, the ROS/HELICS team finished the kick-off presentation. We were supposed to have a meeting the next day, but due to scheduling conflicts, we decided to give offline updates instead.
During class after the kick-off presentations, I was reminded of the fact that the robot might switch from an SM32 Microcontroller to an FPGA. To better grasp what this means, I researched the differences along with looking at the current design. This is some of what I did:
- Understood the largest difference between SM32 microcontrollers and FPGAs, the contrast between software-based sequential processing and hardware-based parallel processing
- Tried to identify which functions implemented by the SM32 could be implemented with the FPGA, these include encoder processing, sensor interfaces, and fault detection
- Looked at the current electronic stack to see how the current design fits an SM32 and to try to start thinking about how the design could be adapted for an FPGA
This is some of the current electronic stack:
Outside of PCB design, I also decided to start learning Verilog due to the FPGA. I am currently learning using HDLBits.
https://hdlbits.01xz.net/wiki/Main_Page
This week, the ROS/HELICS team began to iron down the tasks needed to be completed to make progress on the robot. We began to meet with our specific sub teams to understand what we needed to do to get started.
During class, I was made aware that not too many changes are necessary to make to the design in regards to the switch from the STM32 to the FPGA because of a dev board that will be placed on the robot. However, the PCB team also realized that before we could make any significant changes to the robot design, we would have to look at the physical robot. We made plans to see this robot during the next class.
The changes that need to made to the robot according to the previous team and some analysis are:
- Shaft cut to prevent overflow
- Reprint of the back wheels
- Shaft mount for the right motor
- Rewiring
Since I do not have any experience with CAD modeling, I made sure to watch tutorials for different designs to practice and hone my skills before the actual design changes are made after viewing the robot. I used Too Tall Toby's tutorials which were also recommended to Sabina previously. I began with the initial beginner design given in the first practice tutorial, before moving on to more advanced designs.
This week, the ROS/HELICs team began to start completing the tasks that were ironed out.
Specifically, the PCB team worked on scheduling a good time for a visit to the makerspace and more discussion. Due to the disturbance of fall break, there was a slight hindrance and therefore we were not able to meet before the VIP class this week. However, we have plans to meet Friday in order to start the 3d-printing.
These are the changes that we will mainly focus on at the makerspaces:
- Shaft cut to prevent overflow
- Reprint of the back wheels
- Shaft mount for the right motor
This week I mainly continued to personally work on CAD modeling. I worked on furthering my skills. I started with beginner tutorials like I described last time, and am now moving on to more specific models. Currently, I am workin on a sheet model design. This is the work for it midway below. I spent quite a lot of time on this but I am having a few issues with it which required a lot of reconstructing on my end.
This week, the PCB sub team was supposed to meet at a makerspace to complete the tasks ironed out previously. However, due to Txaber having a sickness we were unable to complete this. The PCB team specifically continued to work on scheduling a good time to meet and decided for either after the VIP meeting today or tomorrow. We hope to complete this as soon as possible because the hindrances are causing too much of a delay.
The ROS/HELICs team in general completed the Midterm presentation slides. There was not too much work in this area due to a solid base from the Kick-off presentation slides. We just made sure to highlight which areas we are in progress of completing in accordance to our goals.
Due to the fact that the PCB team could not properly meet this week, I decided to focus on learning Verilog through HDLBits. I also continued to focus on CAD modeling, but also felt that I had a solid understanding of OnShape by this point. Currently I am going through different activities in HDLBits. Due to my experience working with VHDL, this did not prove too difficult for me, there was just a manner of small syntax differences.
This is some code I wrote early on in practice:
`default_nettype none module top_module( input a, input b, input c, input d, output out, output out_n ); wire a_b; wire c_d; wire a_b_c_d; assign a_b = (a & b); assign c_d = (c & d); assign a_b_c_d = (a_b | c_d); assign out = a_b_c_d; assign out_n = !(a_b_c_d); endmodule