Skip to content

Acoustic tracking task #614

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Apr 20, 2023
Merged

Acoustic tracking task #614

merged 15 commits into from
Apr 20, 2023

Conversation

caguero
Copy link
Contributor

@caguero caguero commented Apr 4, 2023

This patch adds the new acoustic tracking task including:

  • Example world
  • Practice worlds
  • Scoring plugin

How to test it?

  1. Launch the simulation:
ros2 launch vrx_gz competition.launch.py world:=acoustic_tracking_task
  1. Launch the joystick teleoperation node:
ros2 launch vrx_gz usv_joy_teleop.py
  1. Teleoperate the robot going close to the moving pinger until the task finishes.

Note: You can uncomment the block within lines 496 and 503 of the worlds to visualize the moving pinger. Do not forget to recompile.

Signed-off-by: Carlos Agüero <[email protected]>
@caguero caguero requested a review from M1chaelM April 4, 2023 16:09
@caguero
Copy link
Contributor Author

caguero commented Apr 5, 2023

As per our offline discussion this scoring plugin has been updated. It now tracks the error of the vehicle with respect to a single moving pinger. There are topics to track the instant error and the mean error during the task. I also introduced two obstacles that add a penalty when touched.

@M1chaelM
Copy link
Collaborator

M1chaelM commented Apr 13, 2023

@caguero This is working as advertised, but I think we should consider a few tweaks if we have time before the release:

  • I propose changing the name to "acoustic tracking" to avoid confusion with our previous wayfinding task and help suggest that we are practicing for working with an underwater vehicle. Open to other suggestions if you have a better name.
  • I think the underwater beacon should move at least twice as fast, and travel along a longer (and maybe slightly more complicated) path. Maybe something similar to path a USV would need to travel to complete the basic wayfinding task?
  • Can we re-use the obstacle field from the gymkhana task, or something similar to it? More obstacles would help give a better sense of what I'm hoping will be the final look of the task.

Let me know what you think. If you'd prefer to postpone any of the above until the next release I think that's fine too.

@caguero
Copy link
Contributor Author

caguero commented Apr 13, 2023

@caguero This is working as advertised, but I think we should consider a few tweaks if we have time before the release:

  • I propose changing the name to "acoustic tracking" to avoid confusion with our previous wayfinding task and help suggest that we are practicing for working with an underwater vehicle. Open to other suggestions if you have a better name.
  • I think the underwater beacon should move at least twice as fast, and travel along a longer (and maybe slightly more complicated) path. Maybe something similar to path a USV would need to travel to complete the basic wayfinding task?
  • Can we re-use the obstacle field from the gymkhana task, or something similar to it? More obstacles would help give a better sense of what I'm hoping will be the final look of the task.

Let me know what you think. If you'd prefer to postpone any of the above until the next release I think that's fine too.

Good suggestions, thanks.

I renamed the plugin and changed the layout only in the acoustic_tracking_task.sdf world for now. Could you please test that world first before I actually modify the practice worlds? I didn't reuse the obstacle field model because I wanted to place the obstacle buoys in places that are close enough to the pinger trajectory.

@caguero caguero changed the title Acoustic wayfinding task Acoustic tracking task Apr 13, 2023
Signed-off-by: Carlos Agüero <[email protected]>
@M1chaelM
Copy link
Collaborator

M1chaelM commented Apr 13, 2023

Could you please test that world first before I actually modify the practice worlds? I didn't reuse the obstacle field model because I wanted to place the obstacle buoys in places that are close enough to the pinger trajectory.

Thanks! I just tested it. I like this version much better. One thing I'm trying to brainstorm is ways to make it qualitatively different from the basic acoustic task and stationkeeping task. Right now it is different some of the time, but a lot of the time the beacon is moving through regions of open water and the USV just has to stationkeep above it (with a slight drift). I think we could address this easily with two changes:

  • Make the beacon move even faster. Double its speed again? That way following it seems less like stationkeeping.
  • Make sure there are situations where the USV has to decide between minimizing distance to the buoy and avoiding obstacles. Right now if I sit on top of the buoy I also avoid all the obstacles. Two ways to fix this would be to either change the path or just add a bunch more obstacles.

Also a tiny tweak, but could we change the color of the visual marker to something different from the obstacles? Maybe white or red?

@caguero
Copy link
Contributor Author

caguero commented Apr 13, 2023

Could you please test that world first before I actually modify the practice worlds? I didn't reuse the obstacle field model because I wanted to place the obstacle buoys in places that are close enough to the pinger trajectory.

Thanks! I just tested it. I like this version much better. One thing I'm trying to brainstorm is ways to make it qualitatively different from the basic acoustic task and stationkeeping task. Right now it is different some of the time, but a lot of the time the beacon is moving through regions of open water and the USV just has to stationkeep above it (with a slight drift). I think we could address this easily with two changes:

  • Make the beacon move even faster. Double its speed again? That way following it seems less like stationkeeping.
  • Make sure there are situations where the USV has to decide between minimizing distance to the buoy and avoiding obstacles. Right now if I sit on top of the buoy I also avoid all the obstacles. Two ways to fix this would be to either change the path or just add a bunch more obstacles.

Also a tiny tweak, but could we change the color of the visual marker to something different from the obstacles? Maybe white or red?

I implemented your suggestions bumping up the speed of the pinger, changing its visual to white and adding a few more obstacles in the trajectory. Let me know what you think.

@M1chaelM
Copy link
Collaborator

I implemented your suggestions bumping up the speed of the pinger, changing its visual to white and adding a few more obstacles in the trajectory. Let me know what you think.

Looks great! Thank you!

Signed-off-by: Carlos Agüero <[email protected]>
@caguero
Copy link
Contributor Author

caguero commented Apr 14, 2023

I implemented your suggestions bumping up the speed of the pinger, changing its visual to white and adding a few more obstacles in the trajectory. Let me know what you think.

Looks great! Thank you!

@M1chaelM , I have updated the practice worlds. #0 is very similar to the example world. In #1 the pinger follows an X pattern over 4 waypoints. In #2 the pinger follows a square pattern.

@M1chaelM
Copy link
Collaborator

@caguero Per our offline discussion, could you adjust course 2 so it is more 2-dimensional, similar to course 1? Thank you!

Signed-off-by: Carlos Agüero <[email protected]>
@caguero
Copy link
Contributor Author

caguero commented Apr 19, 2023

@caguero Per our offline discussion, could you adjust course 2 so it is more 2-dimensional, similar to course 1? Thank you!

Done, I've reused the same waypoints as #1 but to be followed in a different order and I shuffled the obstacles a bit to be in the trajectory of the pinger. For easier testing I left some orange buoys in the four waypoints that the pinger is visiting. I'll remove them before merging the PR.

Copy link
Collaborator

@M1chaelM M1chaelM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Thanks!

Signed-off-by: Carlos Agüero <[email protected]>
@caguero caguero merged commit 2e14430 into main Apr 20, 2023
@caguero caguero deleted the caguero/acoustic_wayfinding branch April 20, 2023 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants