Kinematics control plugin for WHOI hybrid gliders
- If not using docker environment, use bathymetry_plugin_whoi branch of the dave repo
# at dave repo
git cehckout bathymetry_plugin_whoi
- The IMU/GPS sensor included in this repo requires hector libraries. You may install with following command
sudo apt-get install ros-noetic-hector-gazebo-plugins
- The initial position setter requires python version of gdal
sudo apt-get install python3-gdal
- The kinematics/dynamics plugin uses UwGliderStatus/UwGliderCommand msg to interact with the vehicle
git clone https://github.com/Field-Robotics-Lab/frl_msgs
- nps_uw_sensors_gazebo repository is required
git clone git@github.com:Field-Robotics-Lab/nps_uw_sensors_gazebo.git
~/uuv/src
folder and compile with catkin_make
at ~/uuv_ws
directory.build.bash
script located in the docker
folder of this repository
./build.bash
run.bash
script
./run.bash
source ~/glider_hybrid_whoi/install/setup.bash
./join.bash
source /opt/ros/noetic/setup.bash
source ~/glider_hybrid_whoi/install/setup.bash
Fore more including docker-compose: Docker environment description
build.bash
script located in the docker
folder of this repository
./build.bash
docker-compose up
docker-compose exec glider_extctl_sim /ros_entrypoint.sh rosrun slocum_glider_extctl_sim slocum_glider_sim_console
# Ctrl+C to land on mission command terminal
run initbuzz.mi
run backse01.mi
./join.bash
tail -f /tmp/Kinematics KinematicsLog.csv
roslaunch glider_hybrid_whoi_gazebo start_demo_kinematics_stratified_current.launch
# or
roslaunch glider_hybrid_whoi_gazebo BuzzBay_stratified_current.launch
# Bathymetry for Buzzbay is included in this repo
# The range is (lat,lon) = (41.50, -70.70) to (41.56, -70.65)
rosrun kinematics_ros_plugins test_directKinematics.py
rostopic echo /glider_hybrid_whoi/kinematics/UwGliderStatus
For view/edit : Google Drawing Raw file link
The slocum_glider_sim_driver
and slocum_glider_sim_console
nodes are
provided by https://gitlab.com/sentinel-aug/ros/slocum_glider
play
button on the Gazebo window and wait for the first bathymetry to be spawned. Next bathymetry tile will be spawned and the previous tile will be removed automatically according to the glider position.
roslaunch glider_hybrid_whoi_gazebo BuzzBay_stratified_current.launch
# if in docker environment
roslaunch glider_hybrid_whoi_gazebo BuzzBay_stratified_current_docker.launch
roslaunch glider_hybrid_whoi_gazebo start_demo_kinematics_stratified_current_two_gliders.launch
localhost
differently. This is hacked by using the host window machine's public ip.
Maybe you have to add this to C:\Users/User/.wslconfig
[wsl2]
localhostForwarding=true
and restart the WSL by wsl --shutdown
at cmd.
Battery position | Target once | Target servo |
---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_multiplication_x: |
f_pitch_battpos_cal_m
, f_pitch_battpos_cal_b
Voltage | Power |
---|---|
:heavy_check_mark: | :heavy_check_mark: |
f_thruster_voltage_v1
, f_thruster_voltage_v2
, f_thruster_voltage_v3
, f_thruster_power_w1
, f_thruster_power_w2
, f_thruster_power_w3
sqrt(motorpower/(fluidDensity*Area*C_D)
Heading | Angle (Center, Port, Stbd) | Angle (Direct) |
---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Flight model |
---|
:heavy_check_mark: |
Lat/Lon | Roll-Pitch-Yaw | Heading | Depth | Altitude | Power | Rudder angle | Battery position | Pumped Volume | nav_sat_fix |
---|---|---|---|---|---|---|---|---|---|
:heavy_check_mark:* | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark:* | :heavy_multiplication_x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |