-
Notifications
You must be signed in to change notification settings - Fork 270
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
Add wheel slip user command #1241
Conversation
cc @scpeters. I'm targetting edifice as I commented here, but maybe that was an incorrect choice.
I started to take a look of how to do that, but I'm finally be working on a different task for 1 or 2 weeks. I'm still planning to take a deeper look at how to implement parameters in ignition after that. I had already had implemented this on Monday when we discussed how to implement parameters in Ignition, so I'm opening this for evaluation in case that (ab)using the user commands services to provide this functionality seems like an acceptable approach. |
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.
#include <ignition/gazebo/config.hh> | ||
#include <ignition/gazebo/Export.hh> | ||
#include <ignition/gazebo/components/Component.hh> | ||
#include <ignition/gazebo/components/Factory.hh> | ||
#include <ignition/gazebo/components/Serialization.hh> |
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.
alphabetize
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.
sorry, you mean like
#include <ignition/gazebo/config.hh> | |
#include <ignition/gazebo/Export.hh> | |
#include <ignition/gazebo/components/Component.hh> | |
#include <ignition/gazebo/components/Factory.hh> | |
#include <ignition/gazebo/components/Serialization.hh> | |
#include <ignition/gazebo/components/Component.hh> | |
#include <ignition/gazebo/components/Factory.hh> | |
#include <ignition/gazebo/components/Serialization.hh> | |
#include <ignition/gazebo/config.hh> | |
#include <ignition/gazebo/Export.hh> |
When having nested folders, I group items in each subfolder and I only alphaorder each group.
i.e. I put first all header files in the parent folder (in alpha order, in this case the items in ignition/gazebo
are config.hh
, Export.hh
), after that I put the subfolders in alpha order (only components
here) and the items of the subfolder in alpha order as well (i.e. Component.hh
, Factory.hh
, Serialization.hh
).
I'm also not sure if lowercase letters are ordered after uppercase letters (like ascii code ordering, a
goes after Z
), or if I should ignore casing when ordering.
In the first case it should be:
#include <ignition/gazebo/config.hh> | |
#include <ignition/gazebo/Export.hh> | |
#include <ignition/gazebo/components/Component.hh> | |
#include <ignition/gazebo/components/Factory.hh> | |
#include <ignition/gazebo/components/Serialization.hh> | |
#include <ignition/gazebo/Export.hh> | |
#include <ignition/gazebo/components/Component.hh> | |
#include <ignition/gazebo/components/Factory.hh> | |
#include <ignition/gazebo/components/Serialization.hh> | |
#include <ignition/gazebo/config.hh> |
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 don't know much about the user command interface, but I've left some feedback below.
As we discussed offline, I think implementing this as a command (instead of a parameter) makes sense. I guess it ultimately depends on how we differentiate commands vs parameters; until then, it's difficult to say how the wheel slip configuration should be exposed. What does it look like when users want to interact with the command (e.g. from the command-line)? An example would be nice (even if it is not functional yet). I'm wondering if we really need to bridge this via |
80dad69
to
6b4bfc0
Compare
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.
The current implementation of wheel slip plugin in gazebo_ros_pkgs exposes a pair of parameters to set wheel slip parameters for all wheels : https://github.com/ros-simulation/gazebo_ros_pkgs/blob/dcda27f7ac710bdd6a8aba2692e3b3b3ac1d9c4b/gazebo_plugins/include/gazebo_plugins/gazebo_ros_wheel_slip.hpp#L31-L41, along with the ones used to set values for individual wheels.
Should we port that functionality here ? Basically equivalent to link_name : *
, which would update values for all wheels in the ecm ?
Also, could you please add a test case for this ?
Will do.
I think that's a good idea, using |
Done in 76e14b7. |
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.
Thanks for the wildcard addition to link names ! Can we add some simple tests for this PR ? Otherwise looks good.
I was trying to create a test, but I couldn't find a way how. The other thing I wanted to test is to see if I could check that the generated I will only add a test that shows that the service calls work, but if anyone has a better idea of how to test this I can try it. |
I agree, it is not possible here to test that the WheelSlip plugin has set the the correct parameters. Otherwise looks good to me. THe CI will require a release of |
@adityapande-1995 I have modified how entities are identified based on feedback here. |
Signed-off-by: Ivan Santiago Paunovic <[email protected]> Co-authored-by: Aditya Pande <[email protected]>
Signed-off-by: Ivan Santiago Paunovic <[email protected]>
Signed-off-by: Ivan Santiago Paunovic <[email protected]>
…nrobotics/ign-gazebo into ivanpauno/wheel-slip-cmd Signed-off-by: Ivan Santiago Paunovic <[email protected]>
d5ecb6c
to
77b76ab
Compare
The failing jobs seem unrelated. @chapulina @adityapande-1995 can this be merged? |
This test failure looks related:
I haven't been actively reviewing this, but please feel free to merge once CI is happy and it has an approval. Feel free to ping me if you need another set of eyes after the first approval. |
Signed-off-by: Ivan Santiago Paunovic <[email protected]>
Signed-off-by: Ivan Santiago Paunovic <[email protected]>
Sorry, I didn't pay attention to the windows job. 19606cd should've fixed the previous issue (all the other tests in that file are being skipped on Windows). |
@ivanpauno @jacobperron @scpeters , heads up that Edifice ( |
It would be good to have it merged before, so we only need to forward port to newer releases. @adityapande-1995 could you take a look again? |
CI looks fine to me |
* GzSceneManager: Prevent crash 💥 when inserted from menu (#1371) Signed-off-by: Louise Poubel <[email protected]> Signed-off-by: ahcorde <[email protected]> Co-authored-by: ahcorde <[email protected]> * Prepare version 6.7.0 (#1373) * Prepare version 6.7.0 Signed-off-by: Jose Luis Rivero <[email protected]> * Populate GUI plugins that are empty (#1375) Signed-off-by: Louise Poubel <[email protected]> * Fix visualization python tutorial (#1377) Signed-off-by: ahcorde <[email protected]> * Add xyz and rpy offset to published odometry pose (#1341) * Added xyz and rpy offset to published pose Signed-off-by: Aditya <[email protected]> * Added headless rendering tutorial (#1386) * Added headless rendering tutorial Signed-off-by: Nate Koenig <[email protected]> * Update tutorials/headless_rendering.md Co-authored-by: Louise Poubel <[email protected]> Signed-off-by: Nate Koenig <[email protected]> * Update tutorials/headless_rendering.md Co-authored-by: Louise Poubel <[email protected]> Signed-off-by: Nate Koenig <[email protected]> * Mention ogre2 Signed-off-by: Nate Koenig <[email protected]> * Added note about software rendering Signed-off-by: Nate Koenig <[email protected]> * add 'on linux systems' Signed-off-by: Nate Koenig <[email protected]> * Add xyz and rpy offset to published odometry pose (#1341) * Added xyz and rpy offset to published pose Signed-off-by: Aditya <[email protected]> Signed-off-by: Nate Koenig <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Louise Poubel <[email protected]> Co-authored-by: Aditya Pande <[email protected]> * Allow to turn on/off lights (#1343) Signed-off-by: ahcorde <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Add gazebo Entity id to rendering sensor's user data (#1381) Adds the gazebo::Entity id to a rendering::Sensor's UserData object. The main use case is so that we can get back the corresponding gazebo Entity in the rendering thread when processing sensors. Signed-off-by: Ian Chen <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Alejandro Hernández Cordero <[email protected]> * Don't mark entities with a ComponentState::NoChange component as modified (#1391) Signed-off-by: Ashton Larkin <[email protected]> * Disable ModelCommandAPI_TEST.RgbdCameraSensor on macOS (#1397) Disabling test since it's very flaky. Signed-off-by: Addisu Z. Taddese <[email protected]> * Disable PeerTracker.PeerTrackerStale on macOS (#1398) Signed-off-by: Addisu Z. Taddese <[email protected]> * Toggle Light visuals (#1387) Signed-off-by: ahcorde <[email protected]> * Prevent hanging when world has only non-world plugins (#1383) Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Alejandro Hernández Cordero <[email protected]> * Component inspector: refactor Pose3d C++ code into a separate class (#1400) Signed-off-by: Louise Poubel <[email protected]> * add initial_position param to joint controller system (#1406) Similar to the <initial_position> parameter in the JointTrajectoryController system, this PR adds an <initial_position> parameter to the JointPositionController to let users specifies the initial target pos for a joint. Signed-off-by: Ian Chen <[email protected]> * Fix JointStatePublisher topic name for nested models (#1405) The joint-state-publisher system currently assumes it's always attached to the top level model and hence generates an incorrect topic name for nested models. This PR updates it to generate the correct topic name. Signed-off-by: Ian Chen <[email protected]> * Added user command to set multiple entities (#1394) Signed-off-by: ahcorde <[email protected]> Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Disable tests that are expected to fail on Windows (#1408) Signed-off-by: Louise Poubel <[email protected]> * Fortress: Install Ogre 2.2, simplify docker (#1395) Signed-off-by: Louise Poubel <[email protected]> * SceneBroadcaster: only send changed state information for change events (#1392) Signed-off-by: Ashton Larkin <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Add wheel slip user command (#1241) Signed-off-by: Ivan Santiago Paunovic <[email protected]> * Distortion camera integration test (#1374) Signed-off-by: William Lew <[email protected]> Co-authored-by: Alejandro Hernández Cordero <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Add the Model Photo Shoot system, port of Modelpropshop plugin from Gazebo classic (#1331) This system can be used to generate thumbnails of models. In comparison to the Modelpropshop plugin in Gazebo classic, this adds the ability to generate thumbnails after randomizing the joint positions of the model. Signed-off-by: Marco A. Gutierrez <[email protected]> Signed-off-by: Addisu Z. Taddese <[email protected]> * Referring to Fuel assets within a heightmap (#1419) Signed-off-by: Louise Poubel <[email protected]> * Disable sensors in sensors system when battery is drained (#1385) Added a new parameter <disable_on_drained_battery> to the sensors system. If set to true, sensors will be disabled if the model is out of battery. It listens to the battery state of charge from the battery plugin, and if the charge reaches zero, all child sensors and nested sensors are set to be inactive. Signed-off-by: Ian Chen <[email protected]> * 🏁🎈 5.4.0 (#1420) Signed-off-by: Louise Poubel <[email protected]> * ServerConfig accepts an sdf::Root DOM object (#1333) Signed-off-by: Nate Koenig <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Michael Carroll <[email protected]> Co-authored-by: Alejandro Hernández Cordero <[email protected]> * Preparing 6.8.0 release (#1425) * Prepareing 6.8.0 release Signed-off-by: Jose Luis Rivero <[email protected]> * Update changelog after merging forward port Signed-off-by: Jose Luis Rivero <[email protected]> * Add Gaussian noise to Odometry Publisher (#1393) * Added gaussian noise and odometry with covariance publisher Signed-off-by: Aditya <[email protected]> Co-authored-by: Louise Poubel <[email protected]> * Fix deprecation warnings for ModelPhotoShoot (#1437) Signed-off-by: Louise Poubel <[email protected]> Co-authored-by: ahcorde <[email protected]> Co-authored-by: Jose Luis Rivero <[email protected]> Co-authored-by: Aditya Pande <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Nate Koenig <[email protected]> Co-authored-by: Ian Chen <[email protected]> Co-authored-by: Ashton Larkin <[email protected]> Co-authored-by: Addisu Z. Taddese <[email protected]> Co-authored-by: Ivan Santiago Paunovic <[email protected]> Co-authored-by: William Lew <[email protected]> Co-authored-by: Marco A. Gutiérrez <[email protected]> Co-authored-by: Michael Carroll <[email protected]>
This pull request has been mentioned on Gazebo Community. There might be relevant details there: https://community.gazebosim.org/t/new-ignition-releases-2022-04-13-fortress-edifice/1367/1 |
🎉 New feature
Summary
Depends on gazebosim/gz-msgs#205.
Add an user command to reconfigure the wheel slip parameters.
Combined with gazebosim/ros_gz#70, it will allow reconfigurability from ROS similar to what the gazebo_ros_pkgs wheel slip plugin provided.
Ideally, we would have a concept similar to parameters in ignition instead of this.
Test it
Manual testing:
80dad69 can be reverted to see a log each time the wheel slip system detected a cmd.
Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge