Coder Social home page Coder Social logo

uuvsimulator / uuv_simulator Goto Github PK

View Code? Open in Web Editor NEW
657.0 50.0 355.0 73.46 MB

Gazebo/ROS packages for underwater robotics simulation

Home Page: https://uuvsimulator.github.io/

License: Other

CMake 2.74% Python 53.78% GLSL 0.44% C++ 41.99% Shell 1.06%
gazebo simulation ros underwater robotics-simulation rov auv swarms-project uuv

uuv_simulator's Introduction

uuv_simulator: Unmanned Underwater Vehicle (UUV) simulation with Gazebo

Build Status GitHub issues License

Link to the uuv_simulator repository here

Link to the documentation page

Chat on Discord

The Unmanned Underwater Vehicle Simulator is a set of packages that include plugins and ROS applications that allow simulation of underwater vehicles in Gazebo.

If you are using this simulator for your publication, please cite:

@inproceedings{Manhaes_2016,
	doi = {10.1109/oceans.2016.7761080},
	url = {https://doi.org/10.1109%2Foceans.2016.7761080},
	year = 2016,
	month = {sep},
	publisher = {{IEEE}},
	author = {Musa Morena Marcusso Manh{\~{a}}es and Sebastian A. Scherer and Martin Voss and Luiz Ricardo Douat and Thomas Rauschenbach},
	title = {{UUV} Simulator: A Gazebo-based package for underwater intervention and multi-robot simulation},
	booktitle = {{OCEANS} 2016 {MTS}/{IEEE} Monterey}
}

In you are willing to contribute to this package, please check the instructions in CONTRIBUTING.

Features

Gazebo/ROS plugins

  • Implementation of Fossen's equations of motion for underwater vehicles
  • Thruster modules with implementations for thruster's angular velocity to output thrust force based on Yoerger el al., 1990 and Bessa et al., 2006
  • Lift and drag plugin for simulation of fins
  • Simulation of 3D current velocity models (constant or based on first-order Gauss-Markov processes)
  • Sensor plugins

Controllers

  • For AUVs
    • casadi-based effort allocation algorithm
    • Geometric tracking PD controller
  • For ROVs
  • Teleoperation nodes for AUVs and ROVs

Gazebo world models

  • Ocean wave shaders for wave animation
  • Scenarios from the SWARMs project demonstration locations (e.g. Mangalia, Romania and Trondheim, Norway)
  • Subsea BOP panel for manipulation tasks

Vehicle models

Installation

This packages has been released for the following ROS distributions

Once the ros-<distro>-desktop-full package for the desired distribution is installed, the uuv_simulator can be installed as

sudo apt install ros-kinetic-uuv-simulator
sudo apt install ros-lunar-uuv-simulator
sudo apt install ros-melodic-uuv-simulator

For instructions on how to install the package from source, check this instructions page

Purpose of the project

This software is a research prototype, originally developed for the EU ECSEL Project 662107 SWARMs.

The software is not ready for production use. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards (e.g. ISO 26262).

License

UUV Simulator is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

For a list of other open source components included in UUV Simulator, see the file 3rd-party-licenses.txt.

Releases

ROS Kinetic ROS Lunar ROS Melodic

uuv_simulator's People

Contributors

arturmiller avatar brschettini avatar bst avatar g-arjones avatar jacksonhshields avatar lurido avatar russkel avatar timple avatar willcbaker 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  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  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

uuv_simulator's Issues

Underwater communication between ROVs

Hi! I'm working on modelling multiple robots simultaneously and want to also be able to model their communication in a somewhat realistic way. I think this project was designed to model multiple-ROV systems, so I figure it probably had to tackle model underwater communication as well. If I'm right, could I ask what kind of sensors / models did it use to do so, and how they're used?

Can't launch custom actuated thruster actuated vehicle model after using wiki

Hello,

I am trying to use this package, and I was following your wiki page on creating a new vehicle and launching it with UUV_Simulator here: https://github.com/uuvsimulator/uuv_simulator/wiki/Templates-to-create-a-new-thruster-actuated-vehicle-model

I'm currently having issues with trying to launch my vehicle. I'm getting this error:

uuv_simulator/uuv_gazebo_plugins/uuv_gazebo_plugins/src/ThrusterPlugin.cc:81: virtual void gazebo::ThrusterPlugin::Load(gazebo::physics::ModelPtr, sdf::ElementPtr): Assertion `(_sdf->HasElement("thrusterID"))&&("Thruster ID was not provided")' failed. Aborted (core dumped) [gazebo-2] process has died [pid 7725, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzserver --verbose -e ode worlds/ocean_waves.world __name:=gazebo __log:=/home/andrew/.ros/log/1430a016-67f0-11e7-ad4f-64006a646a5f/gazebo-2.log]. log file: /home/andrew/.ros/log/1430a016-67f0-11e7-ad4f-64006a646a5f/gazebo-2*.log

My generated urdf looks as such:
test.urdf.txt

Fossen Added Mass Matrix Questions

Hello!

I'm back with more questions! In the tutorials and the REXROV example, I see this Fossen added mass matrix. I was keeping it all Zeros for a long while, but now I'm trying to model this matrix via a simple use of a simple geometric approximation xacro macro, and it's outputting the following added mass matrix:

[1.87 0 0 0 0 0
0 183.1 0 0 0 0
0 0 183.1 0 0 0
0 0 0 0 0 0
0 0 0 0 45.7
0 0 0 0 0 45.7]

Which was causing errors such as:

[Wrn] [UnderwaterObjectPlugin.cc:202] Relative linear acceleration is invalid -nan

Which reminded me of the prior issue dealing with some issues of zero values in specific inertial areas, so I tried to add an element to my added mass matrix to make it full rank as follows:

[1.87 0 0 0 0 0
0 183.1 0 0 0 0
0 0 183.1 0 0 0
0 0 0 55 0 0
0 0 0 0 45.7 0
0 0 0 0 0 45.7]

Which resulted in the same error. I would love some guidance and education in this subject if at all possible.

For the mean time, I have set the matrix to all zeroes again, with no real problem.

Thanks in advance!

ASV simulation using uuv_simulator

Hi, I am trying to build a simulator for WAM-V using this package. Since WAM-V is a surface vessel, I tried to adjust the parameters for mass, volumn, fluid density in the underwater_object_ros_plugin, so that the model can float on the surface of the water. This is the part I changed.

251384097065863

However, no matter how I adjust the parameters, the WAM-V model is always partially submerged.

151384097065863

Is there any way to make this plugin work for WAM-V? Thanks

Q: water surface modeling?

Question, is there anything in the uuv simulator that models the water surface, such as waves? (And if not, how do get the nice surface animation in the wind farm video?)

How to get Euler angle ??

Hi everyone,

I am trying to get the Euler angle to display the Matlab/Simulink.
I used the topic /rexrov/pose_gt to have an orientation [x y z w] then i convert it to Euler angle but seemly it isnot correct. I controlled uuv revolving, but the yaw angle is always 3.14 (Like the image I attached below).

Could you give me some suggests, please?
screenshot from 2018-04-24 10 53 51

Thank you very much.

Thruster_id error when trying to reset simulation

Hi,

I'm trying to run reinforcement learning with a UUV, having it "learn" how to use its thrusters to follow a path. As much, my code is set up to reset the Gazebo simulation periodically (when the UUV does too poorly). My problem is, even on the very first reset, before anything is really happened, I get an error I don't know how to handle.

I'm calling Gazebo's reset_simulation method in the line rospy.wait_for_service('/gazebo/reset_simulation') , and the error it triggers is the following:

... logging to /home/nate/.ros/log/fba998ba-c567-11e7-ae9b-080027ea6344/roslaunch-nate-VirtualBox-18775.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

process[rosout-1]: started with pid [18801]
started core service [/rosout]
Traceback (most recent call last):
  File "/home/nate/gym-gazebo/gym_gazebo/envs/installation/catkin_ws/src/xacro/xacro.py", line 62, in <module>
    xacro.main()
  File "<string>", line 697, in main
  File "<string>", line 627, in eval_self_contained
  File "<string>", line 553, in eval_all
  File "<string>", line 528, in eval_all
  File "<string>", line 483, in eval_text
  File "<string>", line 470, in handle_expr
  File "<string>", line 444, in eval_expr
  File "<string>", line 418, in eval_term
  File "<string>", line 398, in eval_factor
  File "<string>", line 369, in eval_lit
xacro.XacroException: Property wasn't defined: u'thruster_id'
while processing /home/nate/gym-gazebo/gym_gazebo/envs/installation/catkin_ws/src/uuv_simulator/uuv_descriptions/models/rexrov/launch/upload_rexrov.launch:
while processing /home/nate/gym-gazebo/gym_gazebo/envs/installation/catkin_ws/src/uuv_simulator/uuv_descriptions/models/rexrov/launch/upload_rexrov_default.launch:
Invalid <param> tag: Cannot load command parameter [robot_description]: command [/home/nate/gym-gazebo/gym_gazebo/envs/installation/catkin_ws/src/xacro/xacro.py '/home/nate/gym-gazebo/gym_gazebo/envs/installation/catkin_ws/src/uuv_simulator/uuv_descriptions/models/rexrov/robots/rexrov_default.xacro' debug:=0 namespace:=rexrov] returned with code [1]. 

Param xml is <param command="$(find xacro)/xacro.py '$(find uuv_descriptions)/models/rexrov/robots/rexrov_$(arg mode).xacro' debug:=$(arg debug) namespace:=$(arg namespace)" name="robot_description"/>
The traceback for the exception was written to the log file

It seems to be some sort of initialization issue, but for the life of me I can't figure out what it is or how to change it. Does anyone have any ideas?

Sensor macros create non-fixed joints

I have noticed in some of the xacro macros for defining sensors(e.g. imu's), the sensor link is attached by a revolute joint with min/max positions being 0. I feel like this should just be a fixed joint right? Is there any reason why it's attached using a revolute joint instead of fixed?

ned_joint rpy value?

I am trying to make use the thruster plugin for a ROV and I am not sure why the ned_joint in urdf/rov_example_base.xacro from the temple to create a new thruster ... has ${pi} as the value for roll? And is there a separate forum/chat room to ask questions about the plugins?

State space controls

Hi,

I want to implement states-space controls for the rexrov. I was wondering if you guys have any advice where to start and how to find necessary information with the simulator. How can I get the state matrix, input matrix?

Thanks

Not working with lunar

The install need to be update to work with lunar.

roslaunch uuv_descriptions empty_underwater_world.launch                           
[empty_underwater_world.launch] is neither a launch file in package [uuv_descriptions] nor is [uuv_descriptions] a launch file name
The traceback for the exception was written to the log file

CMake Error

When installing UUV sim, I get an error my colleagues and I can't debug. We thought it was because uuv_world_ros_plugins_msgs was not a catkin package, but that did not end up working either. Could someone help me out? The error message is copied below:

uuv_simulator/uuv_control/uuv_control_utils/CMakeLists.txt:4 (find_package)

-- Could not find the required component 'uuv_world_ros_plugins_msgs'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by
"uuv_world_ros_plugins_msgs" with any of the following names:

uuv_world_ros_plugins_msgsConfig.cmake
uuv_world_ros_plugins_msgs-config.cmake

Add the installation prefix of "uuv_world_ros_plugins_msgs" to
CMAKE_PREFIX_PATH or set "uuv_world_ros_plugins_msgs_DIR" to a directory
containing one of the above files. If "uuv_world_ros_plugins_msgs"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
uuv_simulator/uuv_control/uuv_control_utils/CMakeLists.txt:4 (find_package)

Questions about Creating a new custom dynamic positioning controller

Hi,
I'm working with the uuv_simulator but I got some problems when I executed the part of "Creating a new custom dynamic positioning controller".when I ran "roslaunch uuv_control_utils send_waypoints_file.launch uuv_name:=rexrov",the error is like this:
[rexrov/send_waypoint_file-1] process has died [pid 4701, exit code 1, cmd /home/liming/catkin_ws/src/uuv_simulator/uuv_control/uuv_control_utils/scripts/send_waypoint_file.py __name:=send_waypoint_file __log:=/home/pha/.ros/log/faebb1f8-0d95-11e8-b26f-5891cf6e920e/rexrov-send_waypoint_file-1.log].

Could you help me?

Issue With Controller Tutorial - Matrix Problem?

Hey, I've been working with uuv_simulator for a few months now on a virtual machine. I recently got a dedicated Ubuntu machine, and did a fresh install. When I tried to run the custom dynamic positioning controller tutorial as a test, though, I keep running into this weird error, shown below. Anyone have any idea what it is?

gzserver: /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:109: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 16>::plain_array() [with T = double; int Size = 6; int MatrixOrArrayOptions = 0]: Assertion `(reinterpret_cast<size_t>(eigen_unaligned_array_assert_workaround_gcc47(array)) & (15)) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.
[rexrov/urdf_spawner-4] process has finished cleanly
log file: /home/nate/.ros/log/543ca190-06c5-11e8-8c94-f8b156a60794/rexrov-urdf_spawner-4*.log
Aborted (core dumped)
[gazebo-2] process has died [pid 26500, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzserver -e ode worlds/ocean_waves.world __name:=gazebo __log:=/home/nate/.ros/log/543ca190-06c5-11e8-8c94-f8b156a60794/gazebo-2.log].
log file: /home/nate/.ros/log/543ca190-06c5-11e8-8c94-f8b156a60794/gazebo-2*.log

Can't control ROV using joystick

Hi!
I followed all the steps and successfully compiled all the packages. While trying:

roslaunch uuv_descriptions empty_underwater_world.launch 
roslaunch uuv_descriptions upload_rexrov.launch mode:=default x:=0 y:=0 z:=-20 namespace:=rexrov 
roslaunch uuv_control_cascaded_pid joy_velocity.launch uuv_name:=rexrov model_name:=rexrov joy_id:=0 

I found that moving the joystick has no effect on the gazebo simulation.
I checked the joystick output and it's fine. I tried to do this:
rostopic echo /rexrov1/cml vel
nothing is publishing and I got the warning
WARNING: no messages received and simulated time is active.

Could you kindly advice what should I do? Thank you.

(I attached the rqt_graph in below
rosgraph

Problem with creating custom vehicel

Hello
When attempting to launch the newly created vehicle model I get the following:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 10201: ordinal not in range(128)
Invalid tag: Cannot load command parameter [robot_description]: command [/opt/ros/kinetic/lib/xacro/xacro --inorder '/home/ros/catkin_ws/src/auv/models/rov_example/robots/rov_example_default.xacro' debug:=0 namespace:=rov_example] returned with code [1].

Param xml is
The traceback for the exception was written to the log file

the RexROV runs just fine though.

Can't launch custom actuated thruster actuated vehicle model

Hello,

I have been trying to launch my own bot and use it with the UUV_Simulator packages as specified in the Wiki. https://uuvsimulator.github.io/tutorials/config_thruster_manager.html. However when I launch the start_thruster_manager.launch file, I get the following errors:

gzserver: /home/adit/catkin_ws/src/uuv_simulator/uuv_gazebo_plugins/uuv_gazebo_plugins/src/UnderwaterObjectPlugin.cc:193: virtual void gazebo::UnderwaterObjectPlugin::Update(const gazebo::common::UpdateInfo&): Assertion `(!std::isnan(linearAccel) && !std::isnan(angularAccel))&&("Linear or angular accelerations are invalid.")' failed.
Aborted (core dumped)
[gazebo-2] process has died [pid 16890, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzserver --verbose -e ode worlds/empty_underwater.world __name:=gazebo __log:=/home/adit/.ros/log/f421e8be-0ea4-11e8-9a5c-ac2b6e309edb/gazebo-2.log].
log file: /home/adit/.ros/log/f421e8be-0ea4-11e8-9a5c-ac2b6e309edb/gazebo-2*.log

Gazebo 7.9 and OpenCV

The Getting Started instructions "Using UUV Simulator with ROS Kinetic and Gazebo 7" seem to have a couple of issues, and we have narrowed them down to problems with Gazebo 7.9 and OpenCV. First, to get uuv_simulator to build, we had to make the changes as described here:

ros-perception/vision_opencv#193
opencv/opencv#10299

We updated the opencv make file as described above, and it did build to completion. We assume your project is waiting on that same pull request.

I have catkin installed, so I built with "catkin build," but when trying to launch the samples, I got the following:

$ roslaunch uuv_descriptions empty_underwater_world.launch
[empty_underwater_world.launch] is neither a launch file in package [uuv_descriptions] nor is [uuv_descriptions] a launch file name
The traceback for the exception was written to the log file

I tried the following, with no change:
https://uuvsimulator.github.io/faq.html#after-running-catkin-build-i-still-can-t-start-any-nodes-or-launch-files. I did notice there was no install directory.
Instead, I used the catkin_make install, and gazebo did launch.

Unfortunately, it seems some models fail to load:
roslaunch uuv_descriptions ocean_waves.launch
oceans_waves_7 9 0
roslaunch uuv_descriptions empty_underwater_world.launch
empty_underwater_7 9 0
Similar screen shots in 7.8.1 (recompiled from source)
ocean_waves7 8 1
empty_underwater_world 7 8 1

I am unable to get the RexROV to launch.

Let me know if you would like any log files.

Problem while trying to control the robot to some waypoint

Hi!

Firstly I have a world, a rov and a correspoding dp_controller running and I want to control the rov to a waypoint through terminal commands. I searched the topic list and the service list, found one service that I guess might help. So I tried


rosservice call /rexrov2/go_to "waypoint:
  point:
    x: 0.0
    y: 20.0
    z: 0.0
  max_forward_speed: 1.0
  heading_offset: 0.0
  use_fixed_heading: false" 

But it gave me error message as
ERROR: service [/rexrov2/go_to] responded with an error: error processing request: global name 'i' is not defined

Could you please kindly advice how should I solve this? Or could you please suggest a better way to control waypoints through sending commands? (different from the tutorial, in which the program reads waypoints from yaml file)

Thank you!

Yimeng

Directories being linked to cmake targets

When building uuv sim I get a number of the following warnings,

WARNING: Target "uuv_underwater_world" requests linking to directory "/opt/ros/kinetic/include".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "uuv_underwater_world" requests linking to directory "/usr/include".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "uuv_underwater_world" requests linking to directory "/opt/ros/kinetic/include".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "uuv_underwater_world" requests linking to directory "/usr/include".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "uuv_underwater_world_ros_plugin" requests linking to directory "/opt/ros/kinetic/include".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "uuv_underwater_world_ros_plugin" requests linking to directory "/usr/include".  Targets may link only to libraries.  CMake is dropping the item.

Looks like there are include directories being linked to cmake targets which isn't allowed and cmake is just ignoring them.

Possible sign error with added mass coriolis term

Is it possible that the added mass coriolis term calculated in HydrodynamicModel.cc has an incorrect sign? I see the equation in your reference that you're following, and it seems correctly calculated in the ComputeAddedCoriolisMatrix function, but then the total coriolis forces are computed via Eigen::Vector6d cor = -this->Ca * velRel and are negated.

My other point of reference can be found here. That ref presents the math in a different way, but it resolves to the same thing effectively, and I believe it has the sign on the added mass coriolis term the other way around.

link::GetRelativeLinearAccel

I'd say the derivative of linear velocity in body frame is requested here.

Gazebo link::GetRelativeLinearAccel() does not provide that, once it doesn't include the coriolis and centripetal terms

CMake problem on last commit

Hi,

I am running a Ubuntu 14.04 LTS with ROS indigo and Gazebo 7.

I have just tried to install the last commit of uuv-s imulator.
I had an error in the Cmake configuration for this version which desappear if I checkout the 7b6d063 commit :
The package uuv_world_ros_plugins_msgs was not found in uuv_control CMakeList.

I followed the installation process and I set the following PATH variable

source /opt/ros/indigo/setup.bash
source $HOME/catkin_ws/devel/setup.bash

export GAZEBO_PREFIX=$HOME/catkin_ws/install
export GAZEBO_RESOURCE_PATH=${GAZEBO_PREFIX}/share/gazebo-7.0:${GAZEBO_RESOURCE_PATH}
export GAZEBO_MODEL_PATH=${GAZEBO_PREFIX}/share/gazebo-7.0/models:${GAZEBO_MODEL_PATH}
export GAZEBO_PLUGIN_PATH=${GAZEBO_PREFIX}/lib:${GAZEBO_PREFIX}/lib/x86_64-linux-gnu:${GAZEBO_PLUGIN_PATH}

May be I did something wrong during the install process?

gazebo_gui-2 issue

Hi, I have install the uuv simulator in Ubuntu 16.04 ROS kinetic using VMware following the wiki steps. I input the commands roslaunch uuv_descriptions empty_underwater_world.launch and got the following logs:
....
[ INFO] [1495694990.448495374, 0.022000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1495694990.594566214, 0.128000000]: Physics dynamic reconfigure ready.
VMware: vmw_ioctl_command error Invalid argument.
Aborted (core dumped)
[gazebo_gui-2] process has died [pid 43452, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/name/.ros/log/6751db6c-4111-11e7-9c52-000c29919bea/gazebo_gui-2.log].
log file: /home/name/.ros/log/6751db6c-4111-11e7-9c52-000c29919bea/gazebo_gui-2*.log

So how could I get rid of this issue? Thank you.

[Please help me] Error with receive the waypoint and apply to rexrov

Hi everyone,

I am trying to run
roslaunch uuv_tutorial_dp_controller start_tutorial_dp_controller_demo.launch
then
roslaunch uuv_control_utils send_waypoints_file.launch uuv_name:=rexrov

So i have some errors as following:

Send a waypoint file, namespace= /rexrov/
Negative start time, setting it to 0.0
Check point #2
Traceback (most recent call last):
File "/home/pha/catkin_ws/src/uuv_simulator/uuv_control/uuv_control_utils/scripts/send_waypoint_file.py", line 64, in
String(filename))
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 435, in call
return self.call(*args, *kwds)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 495, in call
service_uri = self._get_service_uri(request)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 463, in _get_service_uri
raise ServiceException("service [%s] unavailable"%self.resolved_name)
rospy.service.ServiceException: service [/rexrov/init_waypoints_from_file] unavailable
[rexrov/send_waypoint_file-1] process has died [pid 4701, exit code 1, cmd /home/pha/catkin_ws/src/uuv_simulator/uuv_control/uuv_control_utils/scripts/send_waypoint_file.py __name:=send_waypoint_file __log:=/home/pha/.ros/log/faebb1f8-0d95-11e8-b26f-5891cf6e920e/rexrov-send_waypoint_file-1.log].
log file: /home/pha/.ros/log/faebb1f8-0d95-11e8-b26f-5891cf6e920e/rexrov-send_waypoint_file-1
.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete

I used the "check_point" and I saw that there is error at file send_waypoint_file.py (line 48)

try:
rospy.wait_for_service('init_waypoints_from_file', timeout=2)
print 'Check point #1'
except rospy.ROSException:
rospy.ROSException('Service not available! Closing node...')
print 'Check point #2'

Could you give me any ideas to fix it, please?
Thank you very much,

Sonar "-Inf" Issue

I recently updated to Gazebo 9.0 and the latest uuv_simulator version. I'm now having trouble with the sonar sensors (like the one included on rexrov_sonar). They're giving me "-Inf" values for all the ranges[], indicating that the ranges are less than the minimum or greater than the maximum, despite my positioning objects in the simulation to be in-range and adjusting the angle and placement of the sensor itself. The sensors were working fine before, though I'm not positive an update caused the change. Would anyone know why this might be happening, or should I be looking in the code for the sensors themselves?

Problem with create a new thruster actuated vehicle model

Hi everyone,

I have been following the tutorial to "creative a new thruster actuated vehicle model" and run
roslaunch uuv_descriptions_example upload_rov_example.launch
then I have a problem as following


Traceback (most recent call last):
File "/opt/ros/indigo/share/xacro/xacro.py", line 62, in
xacro.main()
File "/opt/ros/indigo/lib/python2.7/dist-packages/xacro/init.py", line 687, in main
process_includes(doc, os.path.dirname(args[0]))
File "/opt/ros/indigo/lib/python2.7/dist-packages/xacro/init.py", line 269, in process_includes
% (filename, str(e)))
xacro.XacroException: included file "/home/pha/catkin_ws/src/uuv_descriptions_example/models/rov_example/urdf/rov_example_base.xacro" generated an error during XML parsing: not well-formed (invalid token): line 135, column 12
Invalid tag: Cannot load command parameter [robot_description]: command [/opt/ros/indigo/share/xacro/xacro.py '/home/pha/catkin_ws/src/uuv_descriptions_example/models/rov_example/robots/rov_example_default.xacro' debug:=0 namespace:=rov_example] returned with code [1].

Param xml is <param command="$(find xacro)/xacro.py '$(find uuv_descriptions_example)/models/rov_example/robots/rov_example_$(arg mode).xacro' debug:=$(arg debug) namespace:=$(arg namespace)" name="robot_description"/> The traceback for the exception was written to the log file

I have tried by three ways :

  • I did everything like in the tutorial (This mean pkg name = uuv_descriptions_example)
  • Change the pkg name = abc_descriptions
  • Copy file in folder uuv_tutorial_rov_model.

But I have the same problems as above.

Could you give me any ideas, any keywords to solve this problem, please?
Thank you for your help,

Here is the log file
logfile.txt

Thruster axis requirement

Is it a requirement that all thrusters rotate about the x-axis? Looking at the code I believe that is true, but I don't see anywhere in the docs where it says it's a requirement.

Coordinate system

Hi, I'm new to uuv_simulator. I was previously using UWSim. UUV simulator looks very nice but I've a question: In underwater robotics we normally use North, East, Down (NED) coordinate system while Gazebo and uuv_simulator use Z up. Is there a way to change that?
Thank you!

Failing to build on Kinetic

Hi, I'm running into a build problem. On a clean build (Xenial, Gazebo 7, Kinetic), I'm getting the following error:

clyde@fastr:~/uuv_catkin_ws$ catkin_make
Base path: /home/clyde/uuv_catkin_ws
Source space: /home/clyde/uuv_catkin_ws/src
Build space: /home/clyde/uuv_catkin_ws/build
Devel space: /home/clyde/uuv_catkin_ws/devel
Install space: /home/clyde/uuv_catkin_ws/install
####
#### Running command: "cmake /home/clyde/uuv_catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/clyde/uuv_catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/clyde/uuv_catkin_ws/install -G Unix Makefiles" in "/home/clyde/uuv_catkin_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/clyde/uuv_catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /home/clyde/uuv_catkin_ws/devel;/opt/ros/kinetic
-- This workspace overlays: /home/clyde/uuv_catkin_ws/devel;/opt/ros/kinetic
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/clyde/uuv_catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.8
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 41 packages in topological order:
-- ~~  - oberon4 (metapackage)
-- ~~  - oberon4_control
-- ~~  - oberon4_description
-- ~~  - oberon7
-- ~~  - oberon7_control
-- ~~  - oberon7_description
-- ~~  - uuv_assistants
-- ~~  - uuv_control_cascaded_pid
-- ~~  - uuv_control_msgs
-- ~~  - uuv_control_utils
-- ~~  - uuv_descriptions
-- ~~  - uuv_evaluation
-- ~~  - uuv_gazebo
-- ~~  - uuv_gazebo_plugins
-- ~~  - uuv_gazebo_ros_plugins_msgs
-- ~~  - uuv_manipulators_commons
-- ~~  - uuv_manipulators_description
-- ~~  - uuv_manipulators_msgs
-- ~~  - uuv_sensor_plugins
-- ~~  - uuv_sensor_plugins_ros_msgs
-- ~~  - uuv_simulator
-- ~~  - uuv_smac_opt (metapackage)
-- ~~  - uuv_smac_opt_nmb_sm_no_disturbances
-- ~~  - uuv_smac_opt_nmb_sm_timed_disturbances
-- ~~  - uuv_smac_opt_pid_no_disturbances
-- ~~  - uuv_smac_opt_pid_timed_disturbances
-- ~~  - uuv_teleop
-- ~~  - uuv_thruster_manager
-- ~~  - uuv_tutorial_disturbances
-- ~~  - uuv_tutorial_dp_controller
-- ~~  - uuv_tutorial_seabed_world
-- ~~  - uuv_tutorial_simulation_runner
-- ~~  - uuv_tutorials
-- ~~  - uuv_world_plugins
-- ~~  - uuv_world_ros_plugins_msgs
-- ~~  - uuv_gazebo_ros_plugins
-- ~~  - uuv_manipulators_kinematics
-- ~~  - uuv_manipulators_control
-- ~~  - uuv_sensor_plugins_ros
-- ~~  - uuv_trajectory_control
-- ~~  - uuv_world_ros_plugins
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(snip)

-- Could not find the required component 'uuv_world_ros_plugins_msgs'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by
  "uuv_world_ros_plugins_msgs" with any of the following names:

    uuv_world_ros_plugins_msgsConfig.cmake
    uuv_world_ros_plugins_msgs-config.cmake

  Add the installation prefix of "uuv_world_ros_plugins_msgs" to
  CMAKE_PREFIX_PATH or set "uuv_world_ros_plugins_msgs_DIR" to a directory
  containing one of the above files.  If "uuv_world_ros_plugins_msgs"
  provides a separate development package or SDK, be sure it has been
  installed.
Call Stack (most recent call first):
  uuv_simulator/uuv_control/uuv_control_utils/CMakeLists.txt:4 (find_package)

Thanks.

Update: I was able to build successfully by reverting 9a8fb3e

Drag force implementation question

I have a question regarding the implementation of the drag model. Based on the comments and variable names and such it looks to me like a quadratic drag model is implemented, but looking through the code I don't see where the velocity is being squared. The method i'm focusing on is pasted below.

void HMFossen::ComputeDampingMatrix(const Eigen::Vector6d& _vel,
                                    Eigen::Matrix6d &_D) const
{
  // From Antonelli 2014: the viscosity of the fluid causes
  // the presence of dissipative drag and lift forces on the
  // body. A common simplification is to consider only linear
  // and quadratic damping terms and group these terms in a
  // matrix Drb

  _D.setZero();

  _D = -1 * this->DLin - _vel[0] * this->DLinForwardSpeed;

  // Nonlinear damping matrix is considered as a diagonal matrix
  for (int i = 0; i < 6; i++)
  {
    _D(i, i) += -1 * this->DNonLin(i, i) * std::fabs(_vel[i]);
  }
}

I'm unable to find the Antonelli 2014 publication that's referred to in the comment(send a link if you can, I would like to read it!). Just looking at what is implemented in this method, this looks like a linear drag model.

If we make a simplifying assumption that all the coefficients of DLinForwardSpeed are zero and all the coefficients of DLin are also zero, then all we need to focus on is DNonLin. I would then expect the overall drag force equation to look something like -DNonLin(i,i) * _vel[i] * std::fabs(_vel[i]) where you get the square of the velocity term.

The above implementation looks to me like the force due to drag would increase linearly as the velocity of the body increases. Even if we have the coefficients of DLin and DLinForwardSpeed to be positive and nonzero, it still looks like the drag force would be increasing linearly with body velocity.

Please let me know if I have understood something wrong or am missing something. Thanks!

Contributing to this project

Hello,

Does this project accept third-party contributions? I ask this because I noticed that pull requests have been left stale (I have opened a couple of them myself) and would like to to be sure that there is at least hope of having stuff merged at some point.

Thanks for the amazing effort 👍

Realistic simulation of SBL

Study how to improve the simulation of SBL in the simulation without relying solely on addition of white noise over the position.

<neutrally_buoyant> tag does nothing.

Hello,

I am trying to implement a vehicle in UUV Sim, and I am trying to just get my vehicle to float, and I even set the <neutrally_buoyant>1</neutrally_buoyant> tag as shown, but my vehicle keeps sinking the second it is uploaded. Is there any advice you can give to help get this vehicle floating neutrally or even positively buoyant?

Added Mass effect

Hi,

I was working in the added mass issue in our project, using Rock-Gazebo integration, and I came up
with a different approach for determining the added mass effect in an UUV.

I determine a so called Compensated Effort (C), i.e. a 6x6 matrix ( as a function of the rigid body and the added mass matrices) that multiplies the total efforts applied in the UUV, in such a way the resultant velocity's derivatives in Gazebo is the one provided by Fossen's equation.

If someone is interested, here is the paper of the solution.

Problem running files described in "Creating a new custom dynamic positioning controller"

Hi Everyone,

I'm new to ROS and I'm trying to follow this tutorial. Everything works properly, but when running the command roslaunch uuv_control_utils send_waypoints_file.launch uuv_name:=rexrov I get the next error message :

20180221_151222

Any idea why? Is there anything I should've done before that I haven't? I don't know either where to include the points which define the path the robot must follow.

Thanks, hope you have time to answer soon.

Possible error in buoyancy force implementation

In trying to do dynamics compensation control I think I have found a problem with the buoyancy implementation. For example(model is not a surface vessel) looking first at this block in BuoyantObject.cc

if (!this->isSurfaceVessel)
  {
    if (z + height / 2 > 0 && z < 0)
    {
      this->isSubmerged = false;
      volume = this->volume * (std::fabs(z) + height / 2) / height;
    }
    else if (z + height / 2 < 0)
    {
      this->isSubmerged = true;
      volume = this->volume;
    }

    if (!this->neutrallyBuoyant || volume != this->volume)
      buoyancyForce = math::Vector3(0, 0, volume * this->fluidDensity * this->g);
    else if (this->neutrallyBuoyant)
      buoyancyForce = math::Vector3(
          0, 0, this->link->GetInertial()->GetMass() * this->g);
  }

Where the buoyancy force is correctly computed as vol*density*g. This is the buoyancy force in world frame though, not in body frame because gravity is in world frame. This force then gets applied to the body in the same file with the following line,

this->link->AddForceAtRelativePosition(buoyancyForce, this->GetCoB());

I think the problem is that the buoyancy force that's being applied here is still in world frame and is never rotated to body coordinates before being applied to the body. This results in the force/torque that buoyancy applies to the body never changes even as the robot rotates around.

The way I have fixed it for my testing is to change the AddForceAtRelativePosition line to,

this->link->AddRelativeForce(pose.rot.GetInverse().RotateVector(buoyancyForce));
this->link->AddRelativeTorque(this->GetCoB().Cross(pose.rot.GetInverse().RotateVector(buoyancyForce))); 

I think this results in a correct buoyancy model. Please let me know what you think.

Visualizing the sensor data from UUV_Simulator in RViZ

Hello,
I've currently started using UUV Simulator and while trying it out for my own project, I'm unable to determine how to get the data from the sensors using RViZ. I've added an instance of the various macros for sensors such as the default camera etc, but I don't seem to know how to visualize the images being captured by the camera.

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.