-
Notifications
You must be signed in to change notification settings - Fork 116
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
Gazebo: add OmniRover with Mecanum wheels #139
Open
srmainwaring
wants to merge
8
commits into
ArduPilot:master
Choose a base branch
from
srmainwaring:prs/pr-omnirover
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Add left Mecanum wheel. - Add right Mecanum wheel. - Update damping and friction. - Update surface friction. - Fix wheel joint limits. - Fix formatting / indent. - Align roller visual mesh with poles along z-axis. - Use spheres for roller collision meshes. - DART and ODE do not support ellipsoid collisions natively. - Sphere collision meshes are much faster. Signed-off-by: Rhys Mainwaring <[email protected]>
- Add OmniX rover. - Fix rover joint limits. - Fix wheel orientation. - Standardise topic names. - Update joint controller gains. - Enable ArduPilot plugin. - Fix channel for front right wheel. - Increase base link mass to 1.5kg. - Increase max velocity to 2.3 m/s - Rename model - Add readme Signed-off-by: Rhys Mainwaring <[email protected]>
Signed-off-by: Rhys Mainwaring <[email protected]>
srmainwaring
force-pushed
the
prs/pr-omnirover
branch
2 times, most recently
from
July 15, 2024 22:28
1a6fd0e
to
e9ff5a9
Compare
Signed-off-by: Rhys Mainwaring <[email protected]>
- Add Omni3 rover with Mecanum wheels. - Use three left wheels for Omni3 rover Signed-off-by: Rhys Mainwaring <[email protected]>
Signed-off-by: Rhys Mainwaring <[email protected]>
Signed-off-by: Rhys Mainwaring <[email protected]>
Signed-off-by: Rhys Mainwaring <[email protected]>
srmainwaring
force-pushed
the
prs/pr-omnirover
branch
from
July 15, 2024 22:42
e9ff5a9
to
00fdca6
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add two omni rover frames using Mecanum wheels: a 4 wheel rover with frame type OmniX (FRAME_TYPE = 3), and a 3 wheel rover that uses a new frame type Omni3Mecanum.
Figure: 4 wheel rover using frame type OmniX.
Figure: 3 wheel rover using frame type Omni3Mecanum.
Alternatives considered
The Gazebo model repo contains a Mecanum Lift. This model includes a planar controller plugin to move the model about in response to a planar twist command. The approach here is different in that the Mecaum wheels are modelled directly using 9 spheroid rollers in each wheel. There are models for left and right wheels that may be imported into another model using the SDF
<include>
element. This permits different geometries to be assembled, and allows the ArduPilot plugin to control each wheel directly by assigning it to a PWM channel.Figure: Mecanum wheel detail displaying roller joints.
Related issues and discussion
Usage
Run Gazebo
Run SITL
sim_vehicle.py -v Rover --model JSON --add-param-file=$HOME/SITL_Models/Gazebo/config/omni4rover.param --console --map
Once armed, set the mode to
MANUAL
and control as follows:rc 1
rc 2
rc 3
rc 4
Figure: omni rover moving laterally