MCPcopy Create free account
hub / github.com/MizuhoAOKI/mppi_swerve_drive_ros

github.com/MizuhoAOKI/mppi_swerve_drive_ros @v1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0 ↗ · + Follow
252 symbols 379 edges 48 files 194 documented · 77% updated 4mo agov1.0 · 2024-12-10★ 245

Browse by type

Functions 205 Types & classes 47
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

mppi_swerve_drive_ros

MPPI (Model Predictive Path-Integral) Controller for a Swerve Drive Robot

image

[Website] [PDF] [Arxiv] [Poster]

ROS Distro: Noetic Docker License: MIT Conference: IROS

https://github.com/user-attachments/assets/0b18bb4d-c6ad-407b-919c-c8c3c219d75c

Setup

[Option 1] Docker environment

CLICK HERE TO EXPAND

  1. Prerequisites

    • docker
      • For ubuntu users: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
    • rocker
      • For ubuntu users: sudo apt-get install python3-rocker
  2. Clone the project repository. cd <path to your workspace> git clone https://github.com/MizuhoAOKI/mppi_swerve_drive_ros

  3. Run for the first time setup to build the docker image. cd <path to your workspace>/mppi_swerve_drive_ros make setup_docker

  4. Launch the docker container and get into the bash inside. cd <path to your workspace>/mppi_swerve_drive_ros make run_docker

  5. [Inside the docker container] Build the project. cd ~/mppi_swerve_drive_ros make build

[Option 2] Native environment

CLICK HERE TO EXPAND

  1. Prerequisites

  2. Clone the project repository. cd <path to your workspace> git clone https://github.com/MizuhoAOKI/mppi_swerve_drive_ros

  3. Install foundation packages. cd <path to your workspace>/mppi_swerve_drive_ros sudo make install_deps

  4. Initialize rosdep, update it, and install dependencies. cd <path to your workspace>/mppi_swerve_drive_ros sudo rosdep init rosdep update rosdep update && rosdep install -y --from-paths src --ignore-src --rosdistro noetic
  5. Build the project. cd <path to your workspace>/mppi_swerve_drive_ros make build

Build

Build the project.

cd <path to your workspace>/mppi_swerve_drive_ros
make build

(Optional) Clean the cache before building the project if necessary.

cd <path to your workspace>/mppi_swerve_drive_ros
make clean

Usage

[Case 1] Launch gazebo simulator only, operating a 4wids vehicle manually with a joypad.

cd <path to your workspace>/mppi_swerve_drive_ros
source /opt/ros/noetic/setup.bash && source ./devel/setup.bash
roslaunch launch/gazebo_world.launch gazebo_world_name:=maze

NOTES

  • gazebo_world_name options:
    • empty
    • empty_garden
    • cylinder_garden
    • maze
  • Default joystick path is /dev/input/js0. If you want to change the path, please edit mppi_swerve_drive_ros/src/operation/joy_controller/config/joy.yaml.

[Case 2] Navigate a 4wids vehicle autonomously with a MPPI controller.

  • Try MPPI-3D(a) (driving faster but dangerous sometimes) bash cd <path to your workspace>/mppi_swerve_drive_ros source /opt/ros/noetic/setup.bash && source ./devel/setup.bash roslaunch launch/navigation.launch local_planner:=mppi_3d_a
  • Try MPPI-3D(b) (relatively safe but driving slower) bash cd <path to your workspace>/mppi_swerve_drive_ros source /opt/ros/noetic/setup.bash && source ./devel/setup.bash roslaunch launch/navigation.launch local_planner:=mppi_3d_b
  • Try MPPI-4D (safe but relatively slow) bash cd <path to your workspace>/mppi_swerve_drive_ros source /opt/ros/noetic/setup.bash && source ./devel/setup.bash roslaunch launch/navigation.launch local_planner:=mppi_4d
  • [Author's Recommendation] ✨Try MPPI-H✨ (good balance between quickness and safety) bash cd <path to your workspace>/mppi_swerve_drive_ros source /opt/ros/noetic/setup.bash && source ./devel/setup.bash roslaunch launch/navigation.launch local_planner:=mppi_h

Core symbols most depended-on inside this repo

Shape

Method 167
Class 47
Function 38

Languages

C++100%

Modules by API surface

src/control/mppi_h/src/mode2_mppi_4d/mppi_4d_core.cpp18 symbols
src/control/mppi_h/src/mode1_mppi_3d/mppi_3d_core.cpp18 symbols
src/control/mppi_4d/src/mppi_4d_core.cpp16 symbols
src/control/mppi_3d/src/mppi_3d_core.cpp16 symbols
src/control/mppi_h/include/mode2_mppi_4d/mppi_4d_setting.hpp13 symbols
src/control/mppi_h/src/mppi_h_core.cpp12 symbols
src/control/mppi_4d/include/mppi_4d/mppi_4d_setting.hpp12 symbols
src/control/mppi_h/src/mppi_h.cpp11 symbols
src/control/mppi_h/include/common_type.hpp11 symbols
src/control/mppi_4d/src/mppi_4d.cpp11 symbols
src/control/mppi_4d/include/mppi_4d/common_type.hpp11 symbols
src/control/mppi_3d/src/mppi_3d.cpp11 symbols

For agents

$ claude mcp add mppi_swerve_drive_ros \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page