Skip to content

Commit 593386c

Browse files
authored
Update README.md
added HelloROV to readme
1 parent 6fc4e63 commit 593386c

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

README.md

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@
2525
[1. Installation](https://github.com/open-airlab/UNav-Sim#1-installation)
2626

2727
[2. Running the simulation](https://github.com/open-airlab/UNav-Sim#2-running-the-simulation)
28+
29+
[3. Getting Started](https://github.com/open-airlab/UNav-Sim#3-unav-sim-ros-navigation-stack)
2830

29-
[3. UNav-Sim ros navigation stack](https://github.com/open-airlab/UNav-Sim#3-unav-sim-ros-navigation-stack)
31+
[4. UNav-Sim ros navigation stack](https://github.com/open-airlab/UNav-Sim#4-unav-sim-ros-navigation-stack)
3032

31-
[4. UNav-Sim documentation](https://github.com/open-airlab/UNav-Sim#4-unav-sim-documentation)
33+
[5. UNav-Sim documentation](https://github.com/open-airlab/UNav-Sim#5-unav-sim-documentation)
3234

3335
# 1. Installation Instructions (for Ubuntu OS)
3436
UNav-Sim relies in Unreal Engine 5 for generating realistic renderings. First, install UE5 and then proceed to install UNav-Sim
@@ -78,8 +80,30 @@ right-click on Blocks.uproject, select Unreal Engine Generate Project Files
7880
- Run and debug using Launch BlocksEditor(DebugGame)
7981
```
8082
83+
# 3. Getting Started - HelloROV Example
84+
85+
The **HelloROV** example demonstrates how to use the **UNav-Sim API** in combination with the **AirSim API** to control the ROV's thrusters and execute a **Circular Trajectory Following Controller**. This example drives the ROV along a circular path while maintaining a fixed altitude and yaw angle.
86+
87+
The controller generates a reference for the ROV to follow along a circular trajectory. Parameters like **radius**, **angular velocity**, **altitude**, and **yaw** are defined. At each time step, the controller calculates the reference position in the trajectory and adjusts the control signal.
88+
89+
The controller calculates the required **wrench** (force and torque) that corresponds to the ROV's desired motion. The wrench is then mapped to a set of motor commands using a predefined thrust allocation matrix. The wrench is converted into **PWM signals** for the ROV's thrusters. These PWM signals control the speed of the thrusters, which are responsible for driving the ROV along the planned trajectory.
90+
91+
The control loop operates by continuously generating reference positions and calculating corresponding control signals (wrench). Feedback from the ROV (such as position or orientation data) can be used to adjust the control strategy in real-time, enabling the ROV to stay on the trajectory.
92+
93+
The **AirSim API** facilitates communication between the control system and the ROV. The PWM signals are sent asynchronously to the ROV’s motors using the API's `moveByMotorPWMsAsync` function, allowing the ROV to execute the commands.
94+
95+
### Key APIs for Control
96+
97+
- **PWM Control (Motor Control API):**
98+
The AirSim API function `moveByMotorPWMsAsync(pwm, duration)` sends the calculated PWM values to the ROV’s motors, allowing for control of the thrusters.
99+
100+
- **Feedback:**
101+
Feedback such as position, velocity, and orientation can be accessed using the AirSim API to monitor the ROV’s progress and adjust the controller’s behavior accordingly.
102+
103+
104+
81105
82-
# 3. UNav-Sim ros navigation stack
106+
# 4. UNav-Sim ros navigation stack
83107
The UNav-Sim ROS navigation stack, as detailed in the paper, encompasses various components essential for underwater vehicle navigation. It integrates a Nonlinear Model Predictive Controller (NMPC) tailored for the BlueROV2 Heavy model and a pipe-following path planner. Additionally, the stack incorporates several Visual Simultaneous Localization and Mapping (VSLAM) algorithms.
84108
85109
## Components:
@@ -97,7 +121,7 @@ The UNav-Sim ROS navigation stack, as detailed in the paper, encompasses various
97121
98122
99123
100-
# 4. UNav-Sim documentation
124+
# 5. UNav-Sim documentation
101125
[Link to paper](https://ieeexplore.ieee.org/document/10406819)
102126
103127
## Citation

0 commit comments

Comments
 (0)