Skip to content
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

[MPPI] Rotational Constraint #4656

Open
RobinHeitz opened this issue Aug 31, 2024 · 1 comment
Open

[MPPI] Rotational Constraint #4656

RobinHeitz opened this issue Aug 31, 2024 · 1 comment

Comments

@RobinHeitz
Copy link

RobinHeitz commented Aug 31, 2024

Bug report

Required Info:

  • Operating System:
    • Ubuntu 22.04 running in Docker Container
  • ROS2 Version:
    • Humble
  • DDS implementation:
    • CycloneDDS

Steps to reproduce issue

My robot's kinematic is basically omni but with the constraint that it cannot, at any time, do any rotations. Therefore, I want to configure MPPI that way that it follows the global plan, without publishing any rotational speed on /cmd_vel. This means, that the poses cannot be reached (rotational wise), if they don't align with the vehicle's base_link frame.

For testing I've used the global planner example straight line, which has poses that align with the base_link.

On planned path execution, the robot moves away from the global path and later aborts. On /cmd_vel I can see it tries to rotate around z.

Based on the following parameters, I would think it does not try to do this:

motion_model: Omni
wz_std: 0
wz_max: 0
wz_min: 0
az_max: 0
az_max: 0

Expected behavior

It can follow the global path.

Actual behavior

Moves away from global path and at some point aborts since it cannot control back.

Additional information

Currently in /odom I'm publishing the actual position based on lidar sensors, therefore this frame is correct.

@RobinHeitz RobinHeitz changed the title [MPPI [MPPI] Rotational Constraint Aug 31, 2024
@SteveMacenski
Copy link
Member

This is a pretty niche problem that is going to likely necessitate that you create a few of your own custom plugin critics to score the MPPI samples w.r.t. only the XY to create the kinds of trajectories you seek. I can't say with any certainty for this situation what you precisely need to do or settings to configure. This is something I myself would need to think through, experiment with, see how it goes, and iterate from there looking into the various modules to make sure I covered my bases. I don't think in abstract I can give you a roadmap for this specialized situation without myself simply doing it and having a robot to experiment with.

Sorry 😦

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants