Skip to content

RoboSubLA/SeniorDesign21-22

Repository files navigation

Robosub

This is the Robosub for Cal State LA Senior Design project.

Robosub Design Picture

Design

We are using ROS to separate our code into different packages. In the packages we have nodes that we run. The nodes communicate between each other using ROS topics. Each node has the opportunity to publish data to the ROS topics that we define. Likewise each node has the opportunity to subscribe to different topics listening to the information that is being published.

System Overview

Software Design Picture

Packages

These are a list of the different packages we have in this repository.

The user interface displays all the sensor data.

This package will be in charge of the state of the Robosub and decide what tasks it should do.

This package is used for recognizing objects underwater and localize where the object is in regards to our Robosub.

This package includes all our sensors and controls.

This package is used for navigating the robosub.

We use this package to create all our messages that the robosub relies on. We have them all in the same package to make it easy to import into the other files.

This package will be in charge of launching our system

...

Getting Started

Requirements:

  • Python 2.7
  • ROS Melodic
  • Git
  • Ubuntu 18.04 ( Not necessary for working with the code )

Setting Up The Workspace:

This needs to be done in Ubuntu 18.04 with ROS Melodic installed.

  1. Create a catkin workspace. Run the following commands in your terminal:
  • mkdir -p ~/catkin_ws/src
  • cd ~/catkin_ws
  • catkin_make
  1. Next you want to clone this github repository to the catkin_ws folder.

  2. Rename the repository folder src. You can run this command in the catkin_ws folder: mv <Repository Name> src

  3. Run catkin_make again.

  4. Then in your catkin_ws folder run source devel/setup.bash. You will have to repeat this last step every time you open a new terminal.

To Start Working With The Code:

  1. Clone this repo to your local machine
  2. Branch out from the main branch and start working on your code.
  3. When you're done working with your code submit PR and have someone review it.
  4. If it is approved we will merge it with the main branch.

Starting The Robosub

We have the robosub_launcher package to help us launch the system.

You can run these script to launch the system:

roslaunch robosub_launcher robosub.launch to launch all the nodes.

roslaunch robosub_launcher robosub_dummy.launch this will launch the system in dummy mode where the sensors will publish dummy data to the system.

Useful Links:

Competition Rules

How to work with git and github

Installing ROS Melodic

Creating publisher & subscriber nodes with Python

Hardware

Arduino Mega

Nvidia Jetson TX2