-
Notifications
You must be signed in to change notification settings - Fork 191
Implement ROS standard simulation interfaces #790
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
Conversation
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
This also comments out vendor packages since those are still pinned to Ionic. Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
…ve been released Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
ros_gz_sim/src/gz_simulation_interfaces/services/reset_simulation.cpp
Outdated
Show resolved
Hide resolved
ros_gz_sim/src/gz_simulation_interfaces/services/set_entity_state.cpp
Outdated
Show resolved
Hide resolved
ros_gz_sim/src/gz_simulation_interfaces/services/set_simulation_state.cpp
Outdated
Show resolved
Hide resolved
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
} else { | ||
// TODO(azeey) Error | ||
} | ||
gz::msgs::WorldControlState control_msg; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I noticed that when the world is paused, setting entity state causes the world to resume playing. I think that's because the WorldControlState msg's pause
field defaults to 0
and that's read here in SimulationRunner
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
…ction Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
…struction Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tested various services using https://github.com/RobotecAI/q_simulation_interfaces and they work great. Just one minor issue with running the simulate step action multiple times.
auto action_result = std::make_shared<SimulateStepsAction::Result>(); | ||
action_result->result.result = Result::RESULT_OPERATION_FAILED; | ||
action_result->result.error_message = "Another goal is already running"; | ||
goal_handle->abort(action_result); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When testing the simulate step action, the first action call works fine but subsequent action seems to fail and end up here saying another goal is running.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in 7dc79c6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can ticket the simulation step action issue and address that if needed. Otherwise the code looks good.
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
@ros-pull-request-builder retest this please |
🎉 New feature
Toward #732
Summary
Set up
In order to test this, you'll need a source build of gz-sim with the following PRs:
UserCommands
gz-sim#2996I have removed all Gazebo ROS vendor packages temporarily since those are currently pinned to Ionic. With the recent changes removing the version numbers from the packages, having
gz-jetty
installed, either from binaries or from source, should be sufficient to build this PR.Test it
Install ROS 2 Rolling
Add Gazebo nightlies to your apt sources. Follow https://gazebosim.org/docs/jetty/install_ubuntu/, but use
ubuntu-nightly
instead ofubuntu-stable
.Install
gz-jetty
Create a new workspace and use
vcs
to checkout standard_interfaces.reposSource
rolling
and install dependenciesBuild workspace
Run tests
colcon test --packages-select ros_gz_sim
If you want to run just the tests introduced in this PR, in a new terminal:
Tip
If the build fails with
c++: fatal error
, it likely ran out of memory. Try building withcolcon build --parallel-workers=1 --executor sequential
Note
If the build fails due to missing APIs. It is likely that somehow,
ros_gz_sim
is being build against the Gazebo install in the system instead of the one we are building from source. If this happens, uninstalllibgz-sim10
, remove thebuild/ros_gz_sim
directory and build again.Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-by
andGenerated-by
messages.