-
Notifications
You must be signed in to change notification settings - Fork 64
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
[SW-1394] add option for odom/fiducial/camera publishing from ros2 control launchfile #485
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @khughes-bdai and the rest of your teammates on Graphite |
), | ||
) | ||
) | ||
launch_args += declare_image_publisher_args() |
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 realize this is not the most ROS-y way to do this but I wasn't sure of a better way to reduce all of this repeated boilerplate
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.
This looks great to me. I wouldn't worry about the most "ROS-y" way and just focus on what is effective and maintainable.
# launch state publisher node (useful for publishing odom & other statuses) | ||
ld.add_action( | ||
Node( | ||
package="spot_driver", | ||
executable="state_publisher_node", | ||
output="screen", | ||
parameters=[config_file, {"spot_name": spot_name}], | ||
namespace=spot_name, | ||
) | ||
) | ||
# launch object sync node (for fiducials) | ||
ld.add_action( | ||
Node( | ||
package="spot_driver", | ||
executable="object_synchronizer_node", | ||
output="screen", | ||
parameters=[config_file, {"spot_name": spot_name}], | ||
namespace=spot_name, | ||
) | ||
) |
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 didn't add an optional flag for these like with the image publishers since they are pretty minimal and don't have the same issues with bandwidth, open to discussion if anyone thinks these should not be launched by default.
Pull Request Test Coverage Report for Build 10999106474Details
💛 - Coveralls |
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.
lgtm
] | ||
|
||
|
||
class DepthRegisteredMode(Enum): |
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.
docstring please
Merge activity
|
* main: (23 commits) [dependabot] Bump spot_wrapper from `61c2574` to `76e522b` (bdaiinstitute#517) [SW-1483] Reorganize ROS 2 control packages (bdaiinstitute#511) [dependabot] Bump ros_utilities from `06077a2` to `23a79c9` (bdaiinstitute#513) [dependabot] Bump spot_wrapper from `f410423` to `61c2574` (bdaiinstitute#514) [dependabot] Bump spot_wrapper from `5c01ea7` to `f410423` (bdaiinstitute#512) Bump Spot SDK from `4.0.2` to `4.1.0` (bdaiinstitute#495) [MAPLE-743] Add hand posing non blocking option (bdaiinstitute#510) [SW-1481] Fix namespacing with spot ros2 control examples (bdaiinstitute#505) [dependabot] Bump ros_utilities from `6ed50d7` to `06077a2` (bdaiinstitute#503) [MAPLE-743] Add Cartesian arm pose commands (bdaiinstitute#501) [SW-1465] Fix image stitching for greyscale images (bdaiinstitute#499) [SW-1391] controller that lets you specify position, velocity, and load at the same time (bdaiinstitute#493) [dependabot] Bump ros_utilities from `e4f6138` to `6ed50d7` (bdaiinstitute#498) [dependabot] Bump ros_utilities from `2dc3c6b` to `e4f6138` (bdaiinstitute#496) [dependabot] Bump spot_wrapper from `2eec3ab` to `bde75c2` (bdaiinstitute#491) Updated navigateTo interface (bdaiinstitute#487) [MAPLE-663] Spot Gripper Angle Service (bdaiinstitute#488) [dependabot] Bump ros_utilities from `2d3e031` to `2dc3c6b` (bdaiinstitute#490) [dependabot] Bump ros_utilities from `e93bfc9` to `2d3e031` (bdaiinstitute#489) [SW-1394] add option for odom/fiducial/camera publishing from ros2 control launchfile (bdaiinstitute#485) ...
Change Overview
Some nodes we have written in spot_driver are compatible with the ros2 control interface -- specifically, the state publisher node, the object sync node, and the camera publishers. This by default will launch these nodes when the ros2 control stack is run on robot. There is the option to turn off image publishing in case of bandwidth issues / if the user does not need it.
Since I was copying and pasting the launch arguments for the image publishers a lot, this PR also moves these into
spot_launch_helpers.py
so they can simply be imported into all the launchfiles that use it.Finally, this changes the topic name that the low level joint states are published on from
/<robot>/joint_states
to/<robot>/low_level/joint_states
and updates the nodes that rely on this accordingly. This is useful here because the state publisher node publishes to/<robot>/joint_states
and we want to have a clear distinction between these two, as they are being published from two different sources via different BD API calls (unclear if the values the high / low level query produces are the same).Testing Done