purduerov / X17-Surface

0 stars 0 forks source link

rov_logo

Table of Contents

About ROV

The Remotely Operated underwater Vehicle (ROV) team was founded as a committee within Purdue IEEE Student Organization in 2008 with a small but dedicated group of five students. Today, the team's mission is to foster technical and professional skills of its members by designing, constructing, and testing an innovative underwater vehicle to compete in the MATE Center International ROV Competition.

The ROV team is comprised of both engineering and non-engineering students working collaboratively on a hands-on project from the vehicle's design and prototyping phase, to its construction and testing, and ultimately competition performance. The team fosters a multidisciplinary spirit so that the best ideas may come forth. In addition to the mission, the MATE competition also requires a professional presentation, public display poster, and technical documentation.

Because the vehicle requires excellence in design, construction, and presentation, the team members are themselves multidisciplinary collaborators and experts in their own discipline. Members learn to communicate clearly with each other and with clients while managing their own project responsibilities. Through various outreach events during the year, the team aims to inspire future generations to enter STEM (Science, Technology, Engineering, and Mathematics) fields.

For more current and past information view the links to the left or contact us as rov@purdueieee.org. The ROV team will be accepting new members at the beginning of each semester.

Project Description

X17 Surface contains the frontend and backend processes for the ROV. For the frontend, the surface (computer) connects the user interface with the cameras and gamepad, allowing us to display the camera steams, controls, and readouts needed to successfully pilot the ROV. For the backend, the surface sends and receives information to and from the Raspberry Pi inside of the ROV, allows us to send outputs to the thrusters and tools in order to fully operate the ROV.

System Architecture

Shown below is a diagram showing the X17 system architecture. Each white box represents a ROS node and each arrow represents a topic which is published and subscribed to.

x16_system_architecture
X16 System Architecture

Dependencies

ROS2

PyQt5

Note: Downloading Qt as an application needs over 20Gb. If you just want to use QtDesigner, you can download a standalone version here: https://build-system.fman.io/qt-designer-download

Installation

To see all of the dependenices used for this system, navigate to X17-Surface > requirements.txt.

This file is generated by running the following command while in the directory:

pipreqs X17-Surface

To install all of the dependancies for the frontend, you can run the following command:

pip install -r requirements.txt

Usage

All of the information needed for use of the X17 ROV can be found below.

Startup

Connecting the ROV

Launching the ROS2 Network

User Interface

<<<<<<< HEAD

Launch UI with Surface Nodes

ros2 run ui runner.py

Camera Streams

=======

Using QtDesigner

eb

Follow these steps to start using QtDesigner:

Camera Streams

Launching Streams

Receiving Streams

Using the Gamepad

gamepad\ The above image is the xbox controller used as the gamepad for the ROV.

The gamepad is used to control linear and angular movement of the ROV as well as the movement mode that it is in. The gamepad is also used to control the solenoids and other tools located on the ROV.

Movement

The ROV is capable of movement in the x,y,z linear directions as well as the x,y,z angular directions also called roll, pitch, and yaw respectively.

Linear x: Move the left stick (LS) up for positive x movement and down for negative x movement.\ Linear y: Move the left stick (LS) left for positive y movement and right for negative y movement.\ Linear z: Hold down the right trigger (RT) for positive z movement and the left trigger (LT) for negative z movement.

Angular x (roll): Hold down the right bumper (RB) for positive x roll and the left bumper (LB) for negative x roll.\ Angular y (pitch): Move the right stick (RS) up for positive y pitch and the right stick (RS) down for negative y pitch.\ Angular z (yaw): Move the right stick (RS) left for positive z yaw and the left stick (LS) right for positive z yaw.

Tool 1: Press button A\ Tool 2: Press button B\ Tool 3: Press button Y\ Tool 4: Press button X

Troubleshooting

https://chat.openai.com/

Documentation

For more documentation on using X17 Surface, visit the Purdue ROV BookStack.

Credits

X17 Software has been a collaborative effort involving the dedication and contributions of many individuals, including:

Project Team

Special Thanks

Contact Information

For any inquires about Purdue ROV, please send an email to rov@purdueieee.org

For more information on MATE ROV, visit https://materovcompetition.org/

To see updates about Purdue ROV, follow us on social media: