-
Notifications
You must be signed in to change notification settings - Fork 98
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
Implement proper tracked motion model #958
Conversation
Videos of the implementation (they only work in Chrome, I don't know why). ign-tracked1.mp4.mp4ign-tracked2.mp4.mp4ign-tracked3.mp4.mp4ign-tracked4.mp4.mp4 |
All the required upstream releases have been finished. I'll have a look at updating this PR next week. Should I also give a try at updating other teams' tracked robots? (at least CSIRO DTR and HD2 robots off the top of my head). |
Is |
Yes, that's the correct branch. |
# Conflicts: # submitted_models/ctu_cras_norlab_marv_sensor_config_1/model.sdf # submitted_models/ctu_cras_norlab_marv_sensor_config_2/model.sdf # submitted_models/ctu_cras_norlab_marv_sensor_config_3/model.sdf # submitted_models/ctu_cras_norlab_marv_sensor_config_4/model.sdf
I think this PR is ready to be reviewed. Do not get confused by moving the |
To test this PR:
|
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 tested both Absolum and MARV robots on the create. Absolum was able to climb over it without anye issues, but MARV got stuck with half of the robot on the crate and half on the ground. Is that expected?
I also noticed that the battery doesn't start draining when either of the robots are commanded to move. Currently only the LinearBattery
system monitors the JointVelocityCmd
and JointForceCmd
components to detect when the battery should start draining. https://github.com/ignitionrobotics/ign-gazebo/blob/acac5b50f75f672d9a335471966cd3681ce7926c/src/systems/battery_plugin/LinearBatteryPlugin.cc#L399. Since the TrackedVehicle
system doesn't make use of these components, LinearBattery
is unable to start draining the battery. One thought is to create a component that gets attached to a model and triggers LinearBattery
to drain. This would in addition to the current trigger components LinearBattery
monitors. Then TrackedVehicle
can attach this component on the model when it receives a motion command.
submitted_models/ctu_cras_norlab_marv_sensor_config_1/model.sdf
Outdated
Show resolved
Hide resolved
If MARV got stuck with its belly, it's expected. This happens also with the real robot. You need to help the robot with rear flippers to climb up the pallet. (I was suggesting a belly belt when designing the robot, but it was considered too silly :) ). |
Regarding the battery plugin and new gazebo component - what about adding component Another alternative (or just a temporary solution until next gazebo release) is copy-pasting the Yet another alternative - the battery plugin could get a list of topics to subscribe to and it could start draining as soon as any message is received on any of these topics. In this particular case, it should receive the list of Last, the battery plugin could check pose of the model and start draining when it moves more than a specified amount (this should account for the initial little falls models can do when they are inserted into the simulation). |
Or maybe the best option would be adding start_draining/stop_draining topics or services to the battery plugin? |
What about this hotfix for the battery issue, which could be upstreamed? peci1#2 |
I like the idea of the battery plugin monitoring a list of topics. We'll need to make it message type agnostic though. I'm okay with the hotfix for expediency. @nkoenig can you confirm? |
I've changed the battery draining topics to generic raw subscription. You can track and comment changes related to the battery hotfix in peci1#2 . |
I've started implementing the better track model also for other robots: peci1#3 |
Here is a PR that adds topic support to the battery plugin in gazebo: gazebosim/gz-sim#1255. |
I've updated this PR and peci1#3 to integrate with gazebosim/gz-sim#1255 . So the battery drain should be fixed now for all the tracked vehicles. |
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.
Works great! Thanks for your patience @peci1.
@azeey Can I ask for upload of these models to Fuel? |
Sure thing @peci1. I'll start looking into an update tomorrow. |
The models on Fuel have been updated. |
This PR fixes issue #365 . It adds proper support for tracked motion to Absolem and MARV robots (it could be extended to other tracked robots, too).
Depends on gazebo-forks/dart#22, gazebosim/gz-physics#267 and gazebosim/gz-sim#869.