Skip to content

Conversation

prodrigues-rapyuta
Copy link
Contributor

@prodrigues-rapyuta prodrigues-rapyuta commented Feb 18, 2025

Payload Spawner Blueprint

Overview

This feature introduces a new blueprint class, which is responsible for managing payload attached to a mobile rack.

Available features:

  • Attach to mobile Rack by Object Name
  • Bulk Spawns Pallets by hotkey / ROS topic
  • Delete all pallets inside the structure

The object manages the spawning and removal of payload to simulate more realistic scenarios in the usage of mobile racks.
It determines where to spawn each payload based on the targets the mobile rack creates.
In each of these spots, the PayloadSpawner randomly chooses if it spawns or not a specified payload, (default 0.5, or 50%).

Parameters

The object is invisible, but has the following parameters:
SpawnProbability:
displacement_x:
displacement_y:
displacement_yaw:

use_random_noise:
Random displacement x:
Random displacement y:
Random displacement yaw:

ROS Integration

...
Calling from topic

Calling from service: still not working

Exporting coordinates to external systems:

The PayloadSpawner plugin supports the exporting of json file with all the mobile racks target points coordinates, as well as the coordinates of all spawned payload objects.
Currently this real-time output is still not supported, and may be a future improvement

Documentation:

Still in progress...

Known issues:

If the coordinates or the dimensions of the mobile rack which the payload is attached change, the payload may not work as expected, requiring recompilation of the Blueprint ( the reason is under analysis)

…rade spawner to statically export target/payload coordinates
Copy link
Contributor

Choose a reason for hiding this comment

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

Does tags mean targetpoint?
image

Copy link
Contributor Author

@prodrigues-rapyuta prodrigues-rapyuta Feb 23, 2025

Choose a reason for hiding this comment

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

yes, I updated the comment to make it clearer:
"Get only the TargetPoints on the rack shelfs"

image

Copy link
Contributor

Choose a reason for hiding this comment

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

image
you are saving display name? is it bettert to save name?
actors has both display name and name and display name is appear only in editor mode. it should be no problem to use for now but it maybe better to save both or just name

Copy link
Contributor Author

@prodrigues-rapyuta prodrigues-rapyuta Feb 23, 2025

Choose a reason for hiding this comment

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

Sorry I didn't know this
I updated all the important usage of GetDisplayName to GetObjectName, like the picture below:

image

Copy link
Contributor

Choose a reason for hiding this comment

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

better not to use GWM which is RR internal terminology
image

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updated the comment:
"Add Spawned Targets infomation to a JSON file, in order to export it to external applications"
image

Copy link
Contributor

Choose a reason for hiding this comment

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

what this for?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is the solution I found for efficiently identifying and separating the TargetPoints that are created for the rack shelves from the ones that are created in front of the racks. In the construction script of the RackUnit.uasset, I changed the TargetPoint to BP_TargetPointGround (in the pic):

For the TargetPoints on the rack shelves:
image

For the approach spots:
image

Alternatively, I think it would be possible to filter by distance from the center of each rack, which could add a lot of extra complexity, or filter by z coordinate, but could also lead to some edge cases

Copy link
Contributor

Choose a reason for hiding this comment

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

is this same as BP_PayloadSpawner?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's the same, I forgot to remove after renaming

Copy link
Contributor

Choose a reason for hiding this comment

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

is this same as TargetPointGround?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's the same, I forgot to remove after renaming

@prodrigues-rapyuta
Copy link
Contributor Author

Updates:

  • Parametrize some debug parts of the Blueprint. Debug information displayed only if debug=True
  • Improve comments
  • GetDisplayName -> GetObjectName
  • remove redundant assets PayloadSpawner.uasset / TargetPointGround.uasset

@prodrigues-rapyuta
Copy link
Contributor Author

Sorry to bother, but do we still need this? This PR is open it's been 6 months..
@yuokamoto @vsamy

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