Dockerized gazebo simulation of a swerve drive robot in the AWS Robomaker Small Warehouse World.
Swerve-drive is drive-train with independently steerable and driven wheels. This allows the robot to be omnidirectional. A swerve drive robot can spin on the spot, strafe sideways and perform more complex motions which are not possible with diff-drive or ackermann steering. Swerve-drive robots can have 3 or more wheels. This simulation exhibits a robot with four wheel independent steering.
For more details and derivation of swerve-drive kinematics and odometry, check out the blog post.
Watch the simulated swerve-drive robot in action on Youtube.
- Docker
- make (
$ sudo apt-get build-essential
on ubuntu) - x11 (to run gazebo application windows)
- (Optional) - Nvidia Container Toolkit
-
Clone the repo
$ git clone https://github.com/freshrobotics/swerve-sim-container.git $ cd swerve-sim-container
-
Pull or Build sim image
# Pull image from github container repository $ make pull
# Locally build image $ make build
-
Launch sim
# Without Nvidia GPU $ make launch
# With Nvidia GPU $ make launch-gpu
-
(Optional) Launch teleop nodes
# Keyboard Teleop $ make teleop-keyboard # Joystick Teleop $ make teleop-joy
make run
ormake run-gpu
- Run container with shell.make shell
- Attach shell to the running container.make stop
- Stop running container.
This repo is Apache-2.0 licensed.