Giter Club home page Giter Club logo

vortex-auv's Introduction

Vortex AUV

Website shields.io version ViewCount GitHub contributors Maintenance GitHub pull-requests GitHub pull-requests closed License: MIT

Banner

This repo contains software for operating UUVs, developed by students at NTNU. The software is based on the ROS Melodic framework, and aims to be hardware independent. Although the main focus of Vortex is autonomous operation, this software stack supports both AUV and ROV operations.

Documentation

vortex-auv's People

Contributors

a1ice-z avatar alekskl01 avatar areskiko avatar bruglen avatar chrisrbo avatar chrstrom avatar erikrowe avatar finnfi avatar heiring avatar hermanstray avatar ingar-eh avatar jae-hyeong-hwang avatar lasgut avatar michoy avatar oyssolbo avatar oyvinddenvik avatar pizzaalltheway avatar ronjakr avatar servis avatar sigbra avatar slaakvik avatar sollimann avatar tarekel-agroudi avatar thebadmusician avatar theoam02 avatar theohhh avatar torgeirgrini avatar vnaas avatar vortexuser avatar walduma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vortex-auv's Issues

Conflicts with vortexntnu/stim300

RuntimeError: Multiple packages found with the same name "imu_complementary_filter":

  • manta_ros/manta-auv/navigation/imu_complementary_filter
  • manta_ros/stim300/imu_tools/imu_complementary_filter

Multiple packages found with the same name "rviz_imu_plugin":

  • manta_ros/manta-auv/navigation/rviz_imu_plugin
  • manta_ros/stim300/imu_tools/rviz_imu_plugin

The offending packages in vortexntnu/manta-auv should be removed or at least renamed

Get sonardriver from Ambjørn

Ambjørn has the Sonar driver. The sonar driver needs to be in a private repo. It can not be public, as the company we got it from requires it to be private.

Generere setpoints

We need to be able to provide the setpoints necessary to go through the gate, around the pole and back through the gate.

Redundant files in Vortex-AUV

These files are redundant or inaccurate

Add further files in the comments.

  1. MANTA-AUV/control/vortex_allocator
    Reason: using yaml-files written for Terrapin and ROV-Manta

  2. MANTA-AUV/control/vortex_controler/test/controller_test.test
    Reason: using yaml-files for maelstrom

  3. MANTA-AUV/install-prereq.sh
    Reason: using kinetic and not melodic

Set up CI for build tests

Github Actions can be used to set up CI. There is an action on the Actions marketplace specifically for ROS environment setup, so it might be doable without too much work

UUV_simulator allocator and our old allocator is publishing completely different thrusts

We are testing two allocators that returns forces to the thrusters but they are returning very different thrusts. I suspect that this might cause the problems with the simulator when trying to jaw and surge at the same time.

When using a joy stick and providing max heave the output thrust from allocator is uuv_allocator = 34.09 while our_old_allocator = 7.20. Similar behavior is observed in the other DOF.

While doing this, the manta/thruster_manager/input is wanted total thrust = 28.8 this suggests that that the uuv_allocator is wrong since 28.8/4 = 7.2 unless the simulator does something fancy to neutralize the offset after after the allocator.

@Sollimann Why is max_thrust = 2040 in manta-auv/uuv_simulator/manta_control/manta_thruster_manager/config/thruster_manager.yaml

Add AUV setups to wiki

The setups for Manta and Gladlaks should be added as separate pages to the wikis user manual.

Most of the required steps for Manta are already described in the wiki on teams, and can be used as a starting point.

Implementation of torpedo launch

The AUV is supposed to be able to launch torpedoes, so this needs to be implemented in software. This can only be finalized once the hardware configuration for the launch mechanism has been decided.

Decide on camera centering branch

The camera centering brannch contains a lot of new code, but it will likley not be needed for the new AUV. There are also files that should be removed from the branch, eg. compiled python files.

Task: either delete branch or clean it up and commit it

README for top level folder

It would be helpful to have a readme in all top level folders that explains what the folders should contain and what its submodules are.

Calculate distance to gate and pole

Calculate distance to gate and pole using height of boundary boxes in computer vision node and publish it on /camera_object_info topic.

Alter /CameraObjectInfo msg type to include distanses.
Implement real height and ratio as global parameters.

Expand the current state machine

The current state machine is very bare-bones, and needs to be expanded with the current RoboSub 2020 tasks. The current structure of the state machine can also be updated if there are betters ways of structuring it.

Once the RoboSub 2020 tasks are implemented and this issue is closed before the 2021 tasks are revealed, there needs to be a new issue addressing updating the state machine to fit the new tasks.

If the RoboSub 2021 tasks are revealed before this issue is closed, the state machine will have to be updated to the new tasks before closing the issue.

Size of thrusters in uuv_simulator

The thruster models used in uuv_simulator is larger than the bluerobotics T200 thrusters.

Proposed fix: Find T200 CAD files online and convert to .dae file and change the manta model

Create state machine with proper setup for the qualification run

State-machine:
skru av og på noder
Som mappe i manta_auv: state_machine

Oppgaver

Initialize
Aktiver depth hold
Aktiver heading hold
Gå til 1m dybde

Finn gate - For ROBOSUB
Søke i heading - Aktiver search pattern

posisjoner
Sender ut goal node
Camera centering (heading + depth hold + x + y)
depth hold

gå gjennom gate
generer punkt forbi gate
Gå til punkt

Søke pole
Heading søk

Gå rundt pole
Basic alternativ: Camera centering
Mer avansert: Generere punkter og følge

returner til gate, gå gjennom gate
Basic alternativ: Camera centering
Mer avansert: Generere punkter og følge
Feede gamle punkter tilbake

surface
Gå til overflaten

stopp
shut down

Report for acoustics

A report for the previous work on acoustics needs to be written before this year's work on the acoustics.

The report should contain:

  • What has been done in the previous year
  • What worked or went well?
  • What did not work or went badly?
  • Any other valuable experiences from the previous work
  • What needs to be done this year

Document r

The parameters r, r_d and r_d_dot are currently undocumented in the LOS and autopilot nodes, since no good explanation for them has been found.

These parameters need to be documented.

Restructure codebase

The directory structure can be confusing, and should be restructured into a more intuitive format. A new format should be decided on, and a first proposition is provided below:

Motion: thruster control and path following
Navigation: Localization, mapping and path planning
Mission: State machine and states
Arm: Controller for arm
Object Detection: Detection of objects visually and with acoustics

rosdriver for Sonar

Before this task can be handled, make sure we have gotten the driver from Ambjørn and make sure the issue is marked as closed.

Write a roswrapper for the Sonar driver and modify the code in Vortex-AUV to reflect the change.

Remove old branches

There are plenty of old branches in this repo and the simulator, which should be removed

Set up orbslam in our system

ORBSLAMv3 is a state of the art SLAM system the Vortex is planning use.

Tasks:

  • Install ORBSLAM3 locally and test it with a public dataset
  • Integrate ORBSLAM3 into Vortex-AUV

Gather camera footage for testing purposes

The object detection, stereo camera, and mapping system requires testing data from an underwater camera rig to be tested properly. This footage needs to be gathered.

Create config file for tuning parameters

We should have all tunable parameters in a yaml file for ease of life purposes. If possible it could be nice with dynamic configuration. Bør og ha parametre for max/min til thruster.

Replace imports with ros interfaces

Goal: Simplify codebase and improve maintainability

All cases where there are imports accross packages should be replaced with ros interfaces, such as topics.

Known cases so far: guidance/los backstepping imports controller/vortex_controller

Add test folders to packages

Certain packages have files in them used for testing the package separate from the rest of the system, and this has led to some clutter. Issue #70 refers to both of these cases; having a /test folder in every package that needs one is therefore good for uniformity and cleanliness in the codebase.

Consider moving robot describtions from yaml to urdf

Descriptions of Manta are currently published as parameters that are loaded from yaml files during launch. The yaml files are located in control/vortex/config.

URDF is the standard for how descriptions of robots should be handled. Our simulator is already using the format, and we should consider adopting it in our main repo as well. This change has been recommended by Kristoffer Solberg.

Camera view in uuv_simulator

To use OpenCV etc. with the simulator we need to extract the simulated front camera view.

Already done in the old simulator so probably not that difficult now.

@Sollimann have you looked at this already?

Reduce launch of simulator to 1 or 2 commands

Now we need to run 5 different commands to launch the complete simulator. (including rqt for camera view)

It should be possible to reduce this to 2 commands. One to launch simulator and one to launch controller.

Literature review depth estimation

Find existing solutions on depth estimation of detected objects from camera.
Consider if point cloud should be used for depth estimation.

Create rosservice to change setpoint in controller

The setpoints for controller gets updated automatically when using a joystick and the topic /propulsion_command. We want to be able to set these setpoints with a rosservice.

I recommend starting with setpoint for depth hold mode, then extrapolate to heading and x,y

Literature review mapping

Find existing packages for mapping and dokument the following

  • Requirements
  • Limitations
  • Pros and cons

Merge path-planning branch

There is a lot of unmerged work on the path-planning branch, but it need to be cleaned up before it can be merged

Tasks

  • Remove .vscode files
  • Remove compiled python files
  • Fix merge conflict

README out of date

The README is not updated for melodic, and needs to be linted for unnecessary/wrong steps.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.