Skip to content

ROS2 Gem: New components for simulating manipulators#161

Merged
lgleim merged 2 commits intoo3de:developmentfrom
danielemorra98:manipulator_controller_component_pr
Apr 5, 2023
Merged

ROS2 Gem: New components for simulating manipulators#161
lgleim merged 2 commits intoo3de:developmentfrom
danielemorra98:manipulator_controller_component_pr

Conversation

@danielemorra98
Copy link
Copy Markdown
Contributor

@danielemorra98 danielemorra98 commented Feb 8, 2023

This PR follows the discussion about manipulation. The purpose is to develop a controller for manipulators and to build a bridge between the simulation and MoveIt.

It adds three new components:

  • URDFMetadataComponent: created during the creation of a new Prefab from a URDF model, it stores the joints names and the corresponding EntityIds into a map
  • JointPublishedComponent: it publishes the joints positions into /joint_states topic every simulation clock
  • ManipulatorControllerComponent: it controls the hinge joints of manipulator instantiating a ROS2 Action Server (of FollowJointTrajectory type). The joints are controlled through the SetVelocity method and the commandVelocity can be computed in two ways (selectable from the Editor view):
  1. Feed-Forward
  2. PID

These components are supposed to make the bridge between the simulation and MoveIt.
I am opened to every kind of inputs/suggestions. I think the most critical parts are:

Tested on:

  • OS: Linux
  • Version: Focal - 20.04
  • CPU: 11th Gen Intel Core i9-11900K
  • GPU: NVIDIA RTX A5000
  • Memory: 64 Gb

URDF imported: https://github.com/danielemorra98/custom_panda_moveit/blob/master/urdf/panda.urdf
ROS2 MoveIt2 launch file: https://github.com/danielemorra98/custom_panda_moveit/blob/master/launch/panda.launch.py

@danielemorra98 danielemorra98 requested review from a team as code owners February 8, 2023 15:08
@lgleim lgleim marked this pull request as draft February 8, 2023 15:13
@danielemorra98 danielemorra98 force-pushed the manipulator_controller_component_pr branch from 87476ac to 323ff1f Compare February 8, 2023 15:34
@adamdbrw
Copy link
Copy Markdown
Contributor

adamdbrw commented Feb 8, 2023

@danielemorra98 as a quick note before I review, I noticed you made some changes to ROS2Frame that might be overlapping with another PR that is going to be merged soon: #119. Please also consider rebasing on recent changes in conflicting files.

Copy link
Copy Markdown
Contributor

@michalpelka michalpelka left a comment

Choose a reason for hiding this comment

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

Great work! Needs some refinements, but looks awesome.
How to test this contribution?

{
m_status.emplace(name, AZStd::string::format("Failed: %s", result.GetError().c_str()));
}
hierarchyMap[AZ::Name(name.c_str())] = childEntity.GetValue();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Consider AZ::Name(name.c_str(), name.size())

Copy link
Copy Markdown
Contributor Author

@danielemorra98 danielemorra98 Feb 9, 2023

Choose a reason for hiding this comment

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

I did not find this constructor type. Are you sure about this?

Copy link
Copy Markdown
Contributor

@adamdbrw adamdbrw left a comment

Choose a reason for hiding this comment

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

@danielemorra98 would you like to discuss the design, following the PR with design docs for manipulation? I see that you made some choices which differ from what we came up during our design discussions in the PR, I would like to understand the reasoning behind it better.

return position;
}

float ManipulatorControllerComponent::ComputeFFJointVelocity(float & currentPosition, float & desiredPosition, const rclcpp::Duration & duration)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Extract into specific control method classes

return desiredVelocity;
}

float ManipulatorControllerComponent::ComputePIDJointVelocity(float & currentPosition, float & desiredPosition, const uint64_t & deltaTimeNs, int & jointIndex)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Extract into specific control method classes

@adamdbrw
Copy link
Copy Markdown
Contributor

adamdbrw commented Feb 9, 2023

Perhaps the best approach would be to have a RFC for the feature since it is new and quite large?

@danielemorra98
Copy link
Copy Markdown
Contributor Author

Great work! Needs some refinements, but looks awesome. How to test this contribution?

@michalpelka you can test it importing this URDF and using this launch file. You would need to install MoveIt2 before

@lgleim lgleim changed the base branch from development to main February 10, 2023 08:40
@lgleim lgleim changed the base branch from main to development February 10, 2023 08:41
@adamdbrw adamdbrw added the feature/robotics This item is related to robotics. label Feb 13, 2023
@danielemorra98 danielemorra98 force-pushed the manipulator_controller_component_pr branch 2 times, most recently from 8545bd1 to 9a6886a Compare February 13, 2023 14:44
@danielemorra98 danielemorra98 changed the base branch from development to main February 13, 2023 15:40
@danielemorra98 danielemorra98 changed the base branch from main to development February 13, 2023 15:40
@danielemorra98 danielemorra98 force-pushed the manipulator_controller_component_pr branch from 1661964 to 9004ac4 Compare February 14, 2023 10:48
Copy link
Copy Markdown
Contributor

@adamdbrw adamdbrw left a comment

Choose a reason for hiding this comment

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

@danielemorra98 thank you for addressing the high-level design changes, this looks much better now! I focused more on some details now, I believe some are quite important, please take a look at my comments.

@danielemorra98
Copy link
Copy Markdown
Contributor Author

@adamdbrw I addressed the modifications from your latest comments, tell me what you think. Especially regarding the new map stored in the JointPublisherComponent

Copy link
Copy Markdown
Contributor

@adamdbrw adamdbrw left a comment

Choose a reason for hiding this comment

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

@danielemorra98 thank you for applying the comments, great improvements here!
Let me know if there are unresolved comments (I resolved some but if you comment / react to each it could help).
After making sure the comments are resolved we will try the PR and we can go ahead and approve it!

@danielemorra98
Copy link
Copy Markdown
Contributor Author

@adamdbrw Now it looks like every comment is marked as resolved

Copy link
Copy Markdown
Contributor

@michalpelka michalpelka left a comment

Choose a reason for hiding this comment

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

I cannot rebase the code, I cannot test it against the current version of o3de.
Could you please remove the already merged code in your contribution, and ideally rebase it on top of the current development?

@danielemorra98
Copy link
Copy Markdown
Contributor Author

@michalpelka @adamdbrw I am facing compilation errors when I build the Project with the latest commit of both o3de and o3de-extras. Do you know if there is a stable version to build against?

@michalpelka
Copy link
Copy Markdown
Contributor

@danielemorra98 to merge it need to be compiled against the development of both o3de-extras and o3de.

@danielemorra98 danielemorra98 force-pushed the manipulator_controller_component_pr branch 2 times, most recently from 5d6072a to a3c7be6 Compare March 15, 2023 08:52
@danielemorra98
Copy link
Copy Markdown
Contributor Author

@michalpelka I meant something outside from this PR:

o3de-extras/Gems/ROS2/Code/Source/RobotImporter/URDF/URDFPrefabMaker.h:71:16: error: too few template arguments for class template 'multimap'
        AZStd::multimap<AZStd::string, AZStd::string> m_status;

@michalpelka
Copy link
Copy Markdown
Contributor

@danielemorra98 , I was able to compile your PR with small adjusments:

@adamdbrw
Copy link
Copy Markdown
Contributor

@danielemorra98, @michalpelka Lets fix the conflicts and the header issue (which is outside of this PR), rerun the AR, confirm with a test and have this PR merged (if everyone agrees).

@lgleim
Copy link
Copy Markdown
Contributor

lgleim commented Mar 23, 2023

  • I used o3de ("3f0b4dee328f4f5f2381b30f690132ec3c345fc4"), with the newer commits("d4488e895eb43a73d169e9faf11b8e7b7160b0b6") I encountered the same issue you mentioned.
    I had to apply fix : https://gist.github.com/michalpelka/b386e956f6084db89b6b635d2059cb43 .
    I will raise an issue, and prepare proper PR for that, so please apply this fix locally only.

Looks like this has been addressed with #218

@danielemorra98 Can you please have a look at implementing the two remaining proposed changes?

@danielemorra98
Copy link
Copy Markdown
Contributor Author

@michalpelka :

  • I followed the suggestion coming from this comment (see here); can you confirm me that it is still not handling rclcpp exeptions (without adding the -fexceptions to the target ROS2.Static)?
  • the last commit removes any modifications to the LidarFILES so that not to have any conflicts with development branch

@lgleim
Copy link
Copy Markdown
Contributor

lgleim commented Mar 27, 2023

CI build passed. @michalpelka Are you still facing compilation issues regarding exception handling?

@adamdbrw
Copy link
Copy Markdown
Contributor

@lgleim the CI build unfortunately does not check much as the Gem only builds with a Project that has it enabled, this is currently not checked. We can help and check this on our side with an empty project. We can check the UX as well since we are coming closer to a release (however, this PR targets development, is it intended for stabilization/release as well?)

I see there is a couple of commits which do not belong to the new changeset: 14bcd07 and 848efbd. Could we remove them from this PR? @michalpelka could assist with that.

@lgleim
Copy link
Copy Markdown
Contributor

lgleim commented Mar 27, 2023

the CI build unfortunately does not check much as the Gem only builds with a Project that has it enabled, this is currently not checked.

Is anyone currently working on end-to-end testing, e.g. via python scripts?

We can help and check this on our side with an empty project. We can check the UX as well since we are coming closer to a release (however, this PR targets development, is it intended for stabilization/release as well?)

That would be much appreciated. We were targeting development based on the discussion we previously had around further refactoring the controller architecture (cf. o3de/sig-simulation#54) but would be happy to see this feature making stabilization/release

I see there is a couple of commits which do not belong to the new changeset: 14bcd07 and 848efbd. Could we remove them from this PR? @michalpelka could assist with that.

Absolutely, any help to move this forward is much appreciated.

@danielemorra98
Copy link
Copy Markdown
Contributor Author

I see there is a couple of commits which do not belong to the new changeset: 14bcd07 and 848efbd. Could we remove them from this PR? @michalpelka could assist with that.

@adamdbrw some more recent commits undo the modification of the above mentioned ones. I probably added confusion, since I did not know how to remove those commits to the PR.

@adamdbrw
Copy link
Copy Markdown
Contributor

@danielemorra98 I think it would be the best and the easiest to run an interactive rebase (git rebase -i) reaching to the very first commit in this branch. Since you are the only author of this PR and the commits would be squashed on merge anyway, you could rebase it into a single commit (squashing all but one) and then rebase that commit on the newest development branch to produce a nice and clean change-set. This would get rid of the confusing extra commits. What do you think?

Signed-off-by: danielemorra98 <morradaniele@ymail.com>

* Review changes

Signed-off-by: alek-kam-robotec-ai <aleksander.kaminski@robotec.ai>

* Add Entity Exclusion

Signed-off-by: alek-kam-robotec-ai <aleksander.kaminski@robotec.ai>

* Review changes

Signed-off-by: Aleksander Kamiński <aleksander.kaminski@robotec.ai>

* Review changes v2

Signed-off-by: Aleksander Kamiński <aleksander.kaminski@robotec.ai>

* Adjusted to review

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Fixed initialization of component

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Adjust to suggestions

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

---------

Signed-off-by: alek-kam-robotec-ai <aleksander.kaminski@robotec.ai>
Signed-off-by: Aleksander Kamiński <aleksander.kaminski@robotec.ai>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Co-authored-by: Michał Pełka <michal.pelka@robotec.ai>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

building the hierarchy map that  store joint_name and joint_entities

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

save the hierarchy joint map in a component

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

building the a component that access to joint position and publish them on ROS2 /joint_states topic

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

added the PhysX Gem (Game) and ROS2 control_msgs

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

new implementation of jointPublisherComponent (WORKING)

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

new function to retrieve the hierarchyMap

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

added the descriptor to the Gem Module

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cmake files modifications

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

new manipulator component

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

ON PROGRESS: modification at ManipulatorComponent

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

(NOT WORKING PROPERLY) two new ComputJointVelocity logics

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

fixed bug about the initialization of the PIDs vector + little changes

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

some cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

adding providing and required services

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

AZ_TracePrintf and minor things

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

additional comments

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

include format consistency modifications

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

come back to previous ROS2Frame version

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

sorting modification

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup and minor things

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

added ComboBox

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

new reference to ROS2 JointState msg

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

new inheritance for JointPublisherComponent

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

minor changes

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

New RosFrame logic to choose between dynamic and static tf
It is based on Joint type

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

forgot to include PhisX component header file

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

save the hierarchy joint map in a component

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

building the a component that access to joint position and publish them on ROS2 /joint_states topic

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

new implementation of jointPublisherComponent (WORKING)

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

new manipulator component

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

ON PROGRESS: modification at ManipulatorComponent

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

(NOT WORKING PROPERLY) two new ComputJointVelocity logics

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

fixed bug about the initialization of the PIDs vector + little changes

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

some cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

adding providing and required services

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

additional comments

Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

include format consistency modifications

Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

come back to previous ROS2Frame version

Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

sorting modification

Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup and minor things

Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

added ComboBox

Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

minor changes

Signed-off-by: Daniele Morra <d50030749@china.huawei.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

comments following the defined format

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

Add missing includes

Signed-off-by: Aleksander Kamiński <aleksander.kaminski@robotec.ai>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

some cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

adding frequency user specification

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

first implementation of jointName inside ROS2Frame

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

remotion of MetadataComponent + using jointName in ROS2FrameComponent

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

Refactor and some additional comments

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

Update ManipulatorControllerComponent.cpp

Signed-off-by: danielemorra98 <48955695+danielemorra98@users.noreply.github.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

updated ROS2Gem README.md with new dependencies

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

added and exposed ROS2 controller name in ManipulatorControllerComponent

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

minor changes

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

Update Gems/ROS2/Code/Include/ROS2/Frame/ROS2FrameComponent.h

Co-authored-by: Lars Gleim <lgleim@users.noreply.github.com>
Signed-off-by: danielemorra98 <48955695+danielemorra98@users.noreply.github.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

Added documentation on expected input to the SetJointName method

Update Gems/ROS2/Code/Include/ROS2/Frame/ROS2FrameComponent.h

Signed-off-by: Lars Gleim <lgleim@users.noreply.github.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

modifications to follow up new PIDConfiguration refactor

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

minor changes

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cmake enables exceptions

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

Address latest queries

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

small change

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

small change

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

forward class declaration for handling rclcpp_action exceptions

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup, refactor and addressed modifications by GitHub reviews

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup of extra comments

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

small changes

Signed-off-by: danielemorra98 <morradaniele@ymail.com>
Signed-off-by: Daniele Morra <morradaniele@ymail.com>

cleanup

Signed-off-by: danielemorra98 <morradaniele@ymail.com>

Adding SRG color space as a swapchain option; this allowed rendering to Valve Index

Signed-off-by: Gene Walters <genewalt@amazon.com>

Made ROS2Frame required for ROS2Odometry to prevent possible crash on run (o3de#211)

Signed-off-by: Mateusz Wasilewski <mateusz.wasilewski@robotec.ai>

Change how ROS 2 packages are included. (o3de#204)

* Change how ROS 2 packages are included.

Include cmake configs from the ROS 2 package instead of building lib and
include paths.
Added function `target_depends_on_ros2_package` that allows specifying
version and optionality of the ROS 2 package.

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Adjust to review

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Change cmake to treat urdfdom as normal package, not ament package.
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

---------

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

Sensor frequency smoothness improvements (o3de#194)

* Improve sensor ticking in ROS2

Co-authored-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Adjust to review.

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

---------

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Co-authored-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>

Adjust camera position on ROSBot in RosRobotSample (o3de#197)

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

Remove unused 3rd parameter for AZ_CLASS_ALLOCATOR. (o3de#191)

Signed-off-by: Jackie9527 <80555200+Jackie9527@users.noreply.github.com>

Rework RGBD sensor. (o3de#117)

* Rework RGBD sensor.

The RGBD sensor is running only one pipeline with this change.

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Adjusted to review

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Apply suggestions from code review, adjusted code to recent API changes.

Co-authored-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
Signed-off-by: Michał Pełka <michalpelka@gmail.com>

---------

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Signed-off-by: Michał Pełka <michalpelka@gmail.com>
Co-authored-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>

Add support for custom VK allocator for Vulkan api and a readme file for build steps (o3de#219)

* Add support for custom VkAllocationCallbacks for vulkan related api

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Add a readme file for the OpenXrTest project that entails steps on how to build the project and how to modify XR pipelines

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Minor edit

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

---------

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

Backport multiple commits from stabilization/2305 to development (o3de#237)

* Fleet of Robots template (o3de#186)

* Introduce fleet robot template.

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* New template name and some fixes

- Changed template name
- Updated `template.json` file
- Added render passes folder
- Some visual fixes in the main level

Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>

* Extended readme

Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>

* Added license file

Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>

* Update README.md

Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>

* Adjusted to review

Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>

* Reverted {BEGIN/END_LICENSE} removal

Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>

* Fix: missing entry

Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>

* Adjustments to review, minor changes to readme

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Apply suggestions from code review

Co-authored-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
Signed-off-by: Michał Pełka <michalpelka@gmail.com>

* Further adjusments to review.

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

---------

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>
Signed-off-by: Michał Pełka <michalpelka@gmail.com>
Co-authored-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>
Co-authored-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>

* Added missing headers to `URDFPrefabMaker.h` (o3de#218)

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* As part of fixing o3de#118 (o3de#227)

it was discovered that the error log from xacro is cut off on the
first angle bracket, making it impossible to see the actual error
problem fully if it occurs.

This change surrounds the error text with a code macro (three
backticks) so that it shows up in markdown as the actual literal code,
which causes Qt to ignore any angle brackets and other markdown inside
the text.

o3de#118

(Will attach a screenshot)

Signed-off-by: Nicholas Lawson <70027408+lawsonamzn@users.noreply.github.com>

* Fix bug with wheel base handling in Vehicle Dynamics in ROS 2. (o3de#229)

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>

* Removed incorrect camera sensor (o3de#215)

Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>

---------

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Signed-off-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>
Signed-off-by: Michał Pełka <michalpelka@gmail.com>
Signed-off-by: Nicholas Lawson <70027408+lawsonamzn@users.noreply.github.com>
Co-authored-by: Paweł Budziszewski <pawel.budziszewski@robotec.ai>
Co-authored-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
Co-authored-by: Nicholas Lawson <70027408+lawsonamzn@users.noreply.github.com>

Add RHIService a dependent of XRSystem (o3de#242)

* Make XRSystem depend on RHIService so that RHI is activated before XRSystem is activated

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Minor tab

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Minor tab issue

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

---------

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

Manipulation feature design (o3de#163)

* Design docs for manipulation

---------

Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Signed-off-by: Mabel Zhang <mabel@openrobotics.org>
Co-authored-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Co-authored-by: Mabel Zhang <mabel@openrobotics.org>
@danielemorra98 danielemorra98 force-pushed the manipulator_controller_component_pr branch from 394f76b to e79276b Compare April 3, 2023 09:35
…o manipulator_controller_component_pr

Signed-off-by: Daniele Morra <morradaniele@ymail.com>
@danielemorra98
Copy link
Copy Markdown
Contributor Author

@adamdbrw now it should be ok

Copy link
Copy Markdown
Contributor

@michalpelka michalpelka left a comment

Choose a reason for hiding this comment

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

I was able to test PR and works as intended.
It is unstable (crashes for some user's input), but it can be merged into development and stabilized.

@lgleim
Copy link
Copy Markdown
Contributor

lgleim commented Apr 4, 2023

Copy link
Copy Markdown
Contributor

@byrcolin byrcolin left a comment

Choose a reason for hiding this comment

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

I dont see anything wrong here.

@lgleim lgleim merged commit 49c9331 into o3de:development Apr 5, 2023
@lgleim
Copy link
Copy Markdown
Contributor

lgleim commented Apr 5, 2023

Awesome, thanks again to everyone contributing to this feature and getting it up to O3DE community standards!

lgleim added a commit that referenced this pull request Apr 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature/robotics This item is related to robotics.

Development

Successfully merging this pull request may close these issues.

8 participants