-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* heron usv project * swarm * swarm * swarm.wbproj * heron.png * heron.png and protofile * keyboard controller and proto head * Heron.proto header add * Heron.proto header version change * ocean.wbt and swarm.wbt change version * ocean.wbt and swarm.wbt change version * windows delete artificats * windows delete artificats * ocean.sample.png * Create heron.md * documents add all of * new update for heron.md and Heron.proto file * heron file update * heron file update * heron.md changed * update .wbt * heron_collision.stl insert Heron.proto * ocean.wbproj update * heron.md update * Update heron.md * Update projects/robots/clearpath/heron/protos/docs/heron.md * Update projects/robots/clearpath/heron/protos/docs/heron.md * format changed * lidar plate rear removed * hidden removed * image update * changed proto format and obj folder new name is stl * image size changed * hidden remove * changed linear and angular velocity nae * clearpath heron usv changed icon * clearpath heron usv changed icon resize 128x128 * removed angularVelocity and lineerVelocity * removed angularVelocity and lineerVelocity from swarm and ocean world.. * removed angularVelocity and lineerVelocity from swarm and ocean world.. --------- Co-authored-by: Olivier Michel <[email protected]>
- Loading branch information
1 parent
a3cc78d
commit 1ad0a69
Showing
16 changed files
with
541 additions
and
0 deletions.
There are no files selected for viewing
61 changes: 61 additions & 0 deletions
61
projects/robots/clearpath/heron/controllers/heron_usv_controller/heron_usv_controller.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Copyright 1996-2023 Cyberbotics Ltd. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# https://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
from controller import Robot, Keyboard | ||
|
||
# Create the Robot instance. | ||
robot = Robot() | ||
|
||
keyboard = Keyboard() | ||
keyboard.enable(1000) | ||
|
||
# Get the time step of the current world. | ||
timestep = int(robot.getBasicTimeStep()) | ||
|
||
# Get left and right motors. | ||
left_motor = robot.getDevice('left_motor') | ||
right_motor = robot.getDevice('right_motor') | ||
|
||
# Enable position control mode for motors. | ||
left_motor.setPosition(float('inf')) | ||
right_motor.setPosition(float('inf')) | ||
|
||
# Set initial velocities. | ||
left_velocity = 0.0 | ||
right_velocity = 0.0 | ||
|
||
# Main loop: | ||
# - perform simulation steps until Webots is stopping the controller | ||
while robot.step(timestep) != -1: | ||
# Read keyboard input. | ||
key = keyboard.getKey() | ||
# Process keyboard input. | ||
if key == ord('W') or key == ord('w'): | ||
left_velocity = 5.0 | ||
right_velocity = 5.0 | ||
elif key == ord('S') or key == ord('s'): | ||
left_velocity = -5.0 | ||
right_velocity = -5.0 | ||
elif key == ord('A') or key == ord('a'): | ||
left_velocity = -2.5 | ||
right_velocity = 2.5 | ||
elif key == ord('D') or key == ord('d'): | ||
left_velocity = 2.5 | ||
right_velocity = -2.5 | ||
else: | ||
left_velocity = 0.0 | ||
right_velocity = 0.0 | ||
# Set motor velocities. | ||
left_motor.setVelocity(left_velocity) | ||
right_motor.setVelocity(right_velocity) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
#VRML_SIM R2024a utf8 | ||
# license: Copyright Cyberbotics Ltd. Licensed for use only with Webots. | ||
# license url: https://cyberbotics.com/webots_assets_license | ||
# documentation url: https://webots.cloud/run?url=https://github.com/cyberbotics/webots/blob/released/projects/robots/clearpath/heron/protos/Heron.proto | ||
# keywords: robot/wheeled | ||
# Clearpath Heron USV is an autonomous watercraft designed for various marine tasks. | ||
# It features electric propulsion, advanced navigation systems, and integration capabilities for collaborative missions. | ||
# With a streamlined hull and multiple sensor suites including cameras, | ||
# it excels in environmental monitoring, surveillance, and research. | ||
|
||
PROTO Heron [ | ||
field SFVec3f translation 0 0 0.0 # Is `Pose.translation`. | ||
field SFRotation rotation 0 0 1 0 # Is `Pose.rotation`. | ||
field SFString name "heron" # Is `Solid.name`. | ||
field SFString controller "heron_usv_controller" # Is `Robot.controller`. | ||
field MFString controllerArgs [] # Is `Robot.controllerArgs`. | ||
field SFString window "<generic>" # Is `Robot.window`. | ||
field SFBool synchronization TRUE # Is `Robot.synchronization`. | ||
field MFNode bodySlot [] # Extends the robot with new nodes in the body slot. | ||
] | ||
{ | ||
Robot { | ||
translation IS translation | ||
rotation IS rotation | ||
name IS name | ||
model "Clearpath Heron" | ||
controller IS controller | ||
controllerArgs IS controllerArgs | ||
window IS window | ||
synchronization IS synchronization | ||
children [ | ||
DEF BODY_SLOT Group { | ||
children IS bodySlot | ||
} | ||
Transform { | ||
translation -0.185 0 0 | ||
rotation 0 0 1 1.01503e-06 | ||
children [ | ||
Shape { | ||
appearance PBRAppearance { | ||
baseColor 0.964706 0.827451 0.176471 | ||
metalness 0 | ||
} | ||
geometry Mesh { | ||
url [ | ||
"../stl/plain-rear-plate.stl" | ||
] | ||
} | ||
} | ||
] | ||
} | ||
Transform { | ||
translation 0 -0.35 0.05 | ||
children [ | ||
Shape { | ||
appearance PBRAppearance { | ||
baseColor 0.960784 0.760784 0.0666667 | ||
metalness 0 | ||
} | ||
geometry Mesh { | ||
url [ | ||
"../stl/right_panel.stl" | ||
] | ||
} | ||
} | ||
] | ||
} | ||
Transform { | ||
translation 0 0.35 0.05 | ||
children [ | ||
Shape { | ||
appearance PBRAppearance { | ||
baseColor 0.960784 0.760784 0.0666667 | ||
metalness 0 | ||
} | ||
geometry Mesh { | ||
url [ | ||
"../stl/left_panel.stl" | ||
] | ||
} | ||
} | ||
] | ||
} | ||
Transform { | ||
translation -0.73 0.38 -0.14 | ||
children [ | ||
Propeller { | ||
device RotationalMotor { | ||
name "left_motor" | ||
maxVelocity 30 | ||
} | ||
fastHelix Solid { | ||
rotation 0 1 0 1.57 | ||
children [ | ||
Shape { | ||
appearance PBRAppearance { | ||
baseColor 0.368627 0.360784 0.392157 | ||
} | ||
geometry Cylinder { | ||
height 0.1 | ||
radius 0.05 | ||
} | ||
} | ||
] | ||
} | ||
} | ||
] | ||
} | ||
Transform { | ||
translation -0.73 -0.38 -0.14 | ||
children [ | ||
Propeller { | ||
device RotationalMotor { | ||
name "right_motor" | ||
maxVelocity 30 | ||
} | ||
fastHelix Solid { | ||
rotation 0 1 0 1.5708 | ||
children [ | ||
Shape { | ||
appearance PBRAppearance { | ||
baseColor 0.368627 0.360784 0.392157 | ||
} | ||
geometry Cylinder { | ||
height 0.1 | ||
radius 0.05 | ||
} | ||
} | ||
] | ||
} | ||
} | ||
] | ||
} | ||
DEF HERON Shape { | ||
appearance Appearance { | ||
material Material { | ||
diffuseColor 0.239216 0.219608 0.27451 | ||
} | ||
texture ImageTexture { | ||
} | ||
textureTransform TextureTransform { | ||
} | ||
} | ||
geometry Mesh { | ||
url [ | ||
"../stl/heron_base.stl" | ||
] | ||
} | ||
} | ||
] | ||
name "heron_usv" | ||
immersionProperties [ | ||
ImmersionProperties { | ||
fluidName "fluid" | ||
dragForceCoefficients 0.01 0 0 | ||
dragTorqueCoefficients 0.05 0 0 | ||
viscousResistanceForceCoefficient 400 | ||
viscousResistanceTorqueCoefficient 0.1 | ||
} | ||
] | ||
boundingObject Transform { | ||
scale 0.1 0.1 0.1 | ||
children [ | ||
Mesh { | ||
url [ | ||
"../stl/heron_collision.stl" | ||
] | ||
} | ||
] | ||
} | ||
physics Physics { | ||
density 400 | ||
centerOfMass [ | ||
0 0 0 | ||
] | ||
damping Damping { | ||
linear 0.5 | ||
angular 0.5 | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
The [clearpath's Heron USV](https://robots.ros.org/clearpath-heron-usv/) is a USV platform. | ||
|
||
### Motors | ||
|
||
There are 2 motor, motor name `left_motor`and `right_motor`. | ||
You can add new Camera, GPS or other sensors you want under `body_slot`. | ||
|
||
### Movie Presentation | ||
|
||
![youtube video](https://www.youtube.com/watch?v=qWRyCnJWVuM) | ||
|
||
### Heron PROTO | ||
|
||
Derived from [Robot](https://cyberbotics.com/doc/reference/robot). | ||
|
||
```js | ||
Heron { | ||
SFVec3f translation 0 0 0 | ||
SFRotation rotation 0 1 0 1.5708 | ||
SFString name "heron" | ||
SFString controller "heron_usv_controller" | ||
MFString controllerArgs [] | ||
SFBool synchronization TRUE | ||
MFNode bodySlot [] | ||
} | ||
``` | ||
|
||
#### Heron Field Summary | ||
|
||
- `bodySlot`: Extends the robot with new nodes. | ||
|
||
### Samples | ||
|
||
You will find the following sample in this folder: "[WEBOTS\_HOME/projects/robots/clearpath/heron/worlds]({{ url.github_tree }}/projects/robots/clearpath/heron/worlds)". | ||
|
||
Ocean | ||
|
||
#### [heron\ocean.wbt]({{ url.github_tree }}/projects/robots/clearpath/heron/worlds/ocean.wbt) | ||
|
||
![ocean.png](images/heron/ocean.jpg) This simulation shows a basicly usv. | ||
|
||
#### [heron\swarm.wbt]({{ url.github_tree }}/projects/robots/clearpath/heron/worlds/swarm.wbt) | ||
|
||
![swarm.png](images/heron/swarm.jpg) This simulation shows a basicly swarm robotics. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
publish: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
Webots Project File version R2024a | ||
perspectives: 000000ff00000000fd00000002000000010000011c00000313fc0200000001fb0000001400540065007800740045006400690074006f00720100000016000003130000004100ffffff0000000300000780000000d9fc0100000001fb0000001a0043006f006e0073006f006c00650041006c006c0041006c006c0100000000000007800000006900ffffff000006620000031300000001000000020000000100000008fc00000000 | ||
simulationViewPerspectives: 000000ff000000010000000200000100000005620100000002010000000100 | ||
sceneTreePerspectives: 000000ff000000010000000300000201000000d6000000000100000002010000000200 | ||
maximizedDockId: -1 | ||
centralWidgetVisible: 1 | ||
orthographicViewHeight: 1 | ||
textFiles: -1 | ||
consoles: Console:All:All |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
Webots Project File version R2024a | ||
perspectives: 000000ff00000000fd00000002000000010000011c000002f1fc0200000001fb0000001400540065007800740045006400690074006f00720100000016000002f10000003f00ffffff0000000300000780000000d9fc0100000001fb0000001a0043006f006e0073006f006c00650041006c006c0041006c006c0100000000000007800000006900ffffff00000662000002f100000001000000020000000100000008fc00000000 | ||
simulationViewPerspectives: 000000ff000000010000000200000100000005620100000002010000000100 | ||
sceneTreePerspectives: 000000ff00000001000000030000001c000002b4000000fa0100000002010000000200 | ||
maximizedDockId: -1 | ||
centralWidgetVisible: 1 | ||
orthographicViewHeight: 1 | ||
textFiles: -1 | ||
consoles: Console:All:All |
Oops, something went wrong.