Software Team Member

How and Why I've joined?

After completing the preparatory school and one semester of my undergraduate education, it was the summer of 2022 and I knew that I wanted to be involved in broader projects. I was fluent in C, C++, and Python. Also, I had a basic understanding of OpenCV and embedded systems. I knew that with the skillset I had, I could contribute to the software department of a project team while continuing to improve my technical skills. Therefore, I have sent applications to three project teams that have profound accomplishments in their fields.

The first team that reached out to me was the ITU ROV Team, a team working on underwater systems. Underwater robotics being one of the most challenging fields of robotics and ITU ROV Team being a reputable, well-known, and successful organization were the reasons that got me intrigued to join the team. After the interview process consisting of face-to-face meetings and technical assignments, I got accepted to the software department of the team. The algorithm I have designed for the technical interview can be found in my GitHub repositories.

My Responsibilities within The Team

At the first general meeting of the software team, the tasks were distributed. I got assigned to work on the development of embedded software of the vehicle control unit of the vehicle’s (from now on will be referred to as VCU), planning and development of the interior and exterior communication structure of the vehicles with using ROS (robot operating system), and designing of the scanning algorithm used for scanning any environment efficiently as possible.

Embedded Systems

The tasks of obtaining and transmitting data from sensors like sonars, IMUs, and pressure sensors; ensuring the motor control is working, and controlling external components like lights and grippers are carried out by the VCU of our vehicle.

My attention related to the embedded software of the team was mainly on improving the efficiency of the algorithm to increase the frequency of the data coming from the sensors. To complete this objective, I have implemented FreeRTOS to the embedded system by distributing the algorithms controlling the sensors and external components to tasks I have created within the FreeRTOS structure. I have planned to use used semaphores (one sonar semaphore for three sonars, one IMU semaphore, one for pressure sensor, and one for motor control) for controlling the execution of tasks.

Sadly, I did not have the chance to see this algorithm working in the vehicle although it was working in debug mode since we had little time left before the competitions we were attending and had to test other specifications. Hence, I have created another algorithm working with pre-decided delays and used it.

Other than the implementation of FreeRTOS and optimization of the algorithm, I have spearheaded the full functionality of the gripper and the lights of the vehicle.

Communication Structure

A set of libraries called ROS is used in our vehicles to establish communication between the VCU, the UI, and the ground control station. 

ROS has functioning libraries for both C++ and Python, the main programming languages used in our vehicle’s software. As I was responsible for using both during my time as a software team member, I have worked with ROS in both of these languages.

I have contributed to the improvements of this communication structure and the broadening of it by creating new message types, topics, nodes, and services fulfilling desired tasks. 

Also, I have written the codes able to establish the communication between nodes and create the topics, publishers, and subscribers in ROS.

Scanning Algorithm

Competitions we have attended, TEKNOFEST Unmanned Underwater Systems Competition and TAC Challenge 2023, required us to find specific objects within a pool (TEKNOFEST) and a cube inside the Nordic Sea with twenty meters edge (TAC Challenge). To find the objectives within those areas as quickly as possible, I have designed a scanning algorithm that determines the best possible route to scan the environment as quickly as possible. I have used sensor fusion algorithms, data obtained from various sensors, and image processing algorithms working with images obtained from our vehicle’s camera. 

This algorithm I have created was written in Python and executed by our vehicle’s computer which is Jetson Nano.

Benefits of the Software Team Membership

As an engineer candidate, this was my first step through entering the vast world of engineering. I had the chance to work in a team of almost fifty people from different disciplines. This has both enhanced my teamwork skills and broadened my perspective on engineering projects. I have gathered a tremendous amount of experience and knowledge by working on two projects, Pioneer Mk – II “Torpedo” and Explorer Mk – II “Zuma”, that have contributed to my technical skills in embedded systems, robotics, and communication protocols; and increased my general understanding of electronics profoundly. 

Accomplishments

After a year of hard work and sleepless nights, we have won the third-place award in TAC Challenge 2023. Also, we have achieved the well-deserved pride of being the first university project team from Turkey that has ever competed in open seas.

SONY DSC