Giter VIP home page Giter VIP logo

freefloating_gazebo's Introduction

A Gazebo plugin to simulate and control underwater vehicles

Gazebo plugins

The package builds two Gazebo plugins:

  • freefloating_gazebo_fluid (world plugin) simulates buoyancy and viscous force from water

  • freefloating_gazebo_control (model plugin) opens topics for thrusters and joints, in order to control the considered robots

Built-in PID control

An external PID controler is available: pid_control.

These PID's allow position, velocity or effort control of the vehicle body and joints.

Subscribes to setpoint and states, and publishes on the thruster and torque topics that are subscribed to by the freefloating_gazebo_control plugin. Private parameters body_control and joint_control allow setting the default mode (body: position / velocity / effort (body wrench), joint: position / velocity / effort).

This PID advertises the corresponding services to switch some of the axis (joint names or x, y, z, roll, pitch, yaw) to another type of control.

Examples

The examples can be downloaded from the freefloating_gazebo_demo package.

References

Please use the following reference when citing this work:

O. Kermorgant, "A dynamic simulator for underwater vehicle-manipulators", International Conference on Simulatation, Modeling and Programming for Autonomous Robots SIMPAR 2014, Oct 2014

freefloating_gazebo's People

Contributors

atomoclast avatar okermorgant avatar theclearpathdash avatar thedash avatar unusual-thoughts avatar wit00 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

Watchers

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

freefloating_gazebo's Issues

AttributeError: 'str' has no attribute 'url'

When I run: $roslaunch freefloating_gazebo_demo g500arm5e.launch parse:=true
I get the error: AttributeError: 'str' has no attribute 'url'
How could I solve this error? The Gazebo and UWsim can be launched and the freefloating_gazebo demo works as well. Thank you for your help in advance!

Velocity body control issue

Hi, sorry for another issue.
I was trying to control the robot in velocity, following the demo. I add to freefloating_demo/launch/PoseJointsCurrent.yaml:

body_velocity_setpoint:
    type: geometry_msgs/TwistStamped
    x: 
        min: -1.
        max: 1.
        to: twist.linear.x
    y: 
        min: -1.
        max: 1.
        to: twist.linear.y
    z: 
        min: -1.
        max: 1.
        to: twist.linear.z
    twist.angular.x: 0
    pitch:
        min: -1
        max: 1
        to: twist.angular.y
    yaw: 
        min: -1
        max: 1
        to: twist.angular.y

In the GUI with sliders, they all start with zero. When I switch to velocity mode:

rosservice call /g500arm5e/controllers/body_velocity_control "axes: ['x', 'y', 'z', 'yaw', 'pitch']"

The vehicle begins to go around, mostly rotating along z axis but also going up and horizontal.
I tried with controlling velocity on only 'x' (and position for other), and it works.
But, for example, when adding control velocity on y axis it moves even if the velocity given is 0

Unclear documentation

Could you clearify what you mean in the documentation when you say,

damping: the coefficients that are used to simulate hydrodynamic damping. 6 values are needed, the damping force will then be proportional to the velocity on each translation and rotation axis.

Are these just the geometry dependent coefficient of drag for all 6 directions of motion?

Can we revert to e55c04db4f0c4f5fed0c07757268c5814a205573

I made mistake in adding all of the other commits. The commit above is where a working version will still be as it accidently pulled in some broken development code.

If you don't mind, I can be a maintainer if this is too much work for you. I will be working to make this useful for other robots and also add code so it work with another model.

Feature proposal: Change <buoyancy> tag to something more generic

Currently the way the plugin gets its information about the hydrodynamic effects of the robot is by the tags. I propose changing the tags to something more generic such as and maybe even having different blocks within the tags for each specific effect if necessary.

Currently there are terms not related to buoyancy in the tags(drag coefficients) and I would even like to add my own tags for other hydrodynamics effects that I am modeling which i'll be parsing, but since they aren't related to buoyancy i'm hesitant to put them in that block.

My proposal,

<link>
    <hydro>
        <buoyancy>
            buoyancy stuff
        </buoyancy>
        <drag>
           drag stuff
        </drag>
    </hydro>
</link>

I'm going to be adding parameters for an added mass/inertia model and would be able to just add a block for that inside the block. Let me know what you think.

Wrong install tags

Hey, I'm getting this error:

CMake Error at freefloating_gazebo/CMakeLists.txt:63 (install): install TARGETS given target "freefloating_gazebo_model_buoyancy" which does not exist in this directory.

Probably something is missing

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.