gazebo_ros_wheel_slip plugin#995
Conversation
|
Friendly ping. Let me know if there's something I can do to help move this forward. I can help with a ROS 2 port once this lands. |
|
the reason it's WIP is because it feels weird to publish wheel slip data in a JointStates message. we can remove that publisher for now and merge the rest of it, which allows dynamically updating the wheel slip parameters or we could make a custom message for wheel slip data. I'm not sure if people are planning to use that or not |
|
Although the published wheel slip data sounds useful, I don't think it's necessary on my end. So, I'd be okay removing the publisher for now, with a TODO to add it back once a new message type is defined. |
are you up for removing the publisher and pushing to this branch? I'll give you permissions on my fork if so |
I probably don't have time to get to it any time soon, but I'll poke you if that changes. |
2aef6bd to
1a7080f
Compare
6ebc12e to
c429174
Compare
Uses dynamic_reconfigure to set wheel slip parameters and publishes wheel slip in JointState message. Requires gazebo 9.5.
c429174 to
cedd848
Compare
azeey
left a comment
There was a problem hiding this comment.
Looks good. I tested in gazebo and seems to work great. Left a comment about cleaning up memory.
|
I've added a test world: |
|
the build.ros.org job is parsing some console error messages from a test as compiler warnings: http://build.ros.org/job/Mpr__gazebo_ros_pkgs__ubuntu_bionic_amd64/36/ |
|
@ros-pull-request-builder retest this please |
|
the build.ros.org issue persists, but I think it's not blocking |
|
indeed, those false positive compiler warnings are tracked by ros2/ci#316 I believe I've addressed your comments @azeey |
Uses dynamic_reconfigure to set wheel slip parameters. Requires gazebo 9.5. * don't overwrite initial slip values * Add test world using trisphere_cycles
Uses dynamic_reconfigure to set wheel slip parameters and publishes wheel slip in JointState message.
Requires gazebo 9.5.
I marked this as WIP since it's a bit weird to use
JointStateto publish the wheel slip. We should consider a different / custom message.This inherits from gazebo's
WheelSlipPluginadded in the following pull requests:Description copied from those pull requests:
This adds a new plugin for tuning the amount of wheel slip experienced by a wheeled robot. It dynamically adjusts the ODE slip1 and slip2 parameters (see Force-dependent slip parameters in ODE user guide). This parameter has units like an inverse damper (velocity / effort). It is often preferred to use normalized parameters, so this plugin accepts unitless longitudinal_slip_compliance and lateral_slip_compliance parameters. The slip1 and slip2 parameters are then dynamically updated by multiplying the normalized slip compliance by the linear wheel spin velocity (radius * angular spin rate) and dividing by a wheel_normal_force parameter supplied to the plugin.
Here's some ASCII art and documentation pasted from the plugin header file:
A graphical interpretation of these parameters is provided below for a positive value of slip compliance. The horizontal axis corresponds to the slip ratio at the wheel, and the vertical axis corresponds to the tangential force ratio (tangential / normal force). As wheel slip increases, the tangential force increases until it reaches the maximum set by the friction coefficient. The slip compliance corresponds to the inverse of the slope of the force before it reaches the maximum value. A slip compliance of 0 corresponds to a completely vertical portion of the plot below. As slip compliance increases, the slope decreases.
cc: @azeey @jacobperron