tud-airlab / mppi-isaac

Model Predictive Path Integral Control using isaacgym for rollouts, gpu-accelerated
178 stars 21 forks source link

Questions about trying to apply MPPI to robot navigating function #56

Open doyeon-danny opened 5 months ago

doyeon-danny commented 5 months ago

Hi, thank you for sharing your nice work about MPPI in Isaac Gym. I want to develop your MPPI system for path planning. To achieve it, I have several questions. I hope you check my questions.

  1. Questions about robot settings. I succeeded to load Waffle(Turtlebot3) robot in Isaac Gym from Gazebo. When I tune parameters, I find that there are several value differences.

Jackal, for example, the values of max,min velocity and etc are slightly different. If you bring robot's information from Gazebo, do you have any reasons to change parameters?
image [Your Jackal params]

image [Gazebo Jackal params]

My goal was to load Waffle robot(Turtlebot3) from Gazebo. I made it and when I set same parameters from Gazebo, Waffle didn't move. If I set higher values, it moved.
Screenshot from 2024-04-25 11-25-23 [Gazebo Waffle params]

We had same robot specification and loaded same robot based on same urdf file but robot's move was different. I am wondering if you know why these gap between Gazebo and Isaac Gym made. (Because of friction...?)

  1. Setting MPPI for robot navigation. You used MPPI for moving or picking obstacles.

I find that you also have a system for robot navigation which name is "point_robot_with_obstacle.py". Its cost function used distance between robot and goal, and contact value from IsaacGym's contact related function. And you used Pybullet to constuct it. But when I used them to Isaac Gym, robot didn't avoid obstacle. I don't know why.

  1. Using your system, if I make new MPPI with new cost functions for robot navigation, Can it be my contribution? I am trying to get master's degree and I want to develop MPPI based on your great work.

I would be so glad if you let me know about what the problems are. Thank you.

cpezzato commented 4 months ago

Hi @doyeon-danny, thanks for the questions. Here is some explanation:

  1. If you bring the robot's information from Gazebo, do you have any reasons to change parameters? Well, the two simulators are definitely different, and so are the internal low-level controllers for velocity and position reference. We never really attempted to match the tuning. You can tune your simulator to match your actual system, we did not do it because we had many different robots. The config relates to the sampling and not so much on the physical limits of the robot. This is a little trick to explore a little more in the short horizon allowed. The actual velocities on the robot will be lower and you can cap or scale them for obvious safety when you go on the real robot (in vel control.)
  2. You mean the cost function did not produce the behavior you wanted? Indexes might be different in pybullet and isaacgym. Start with a simple environment with just a goal, then add an obstacle once you can reach the goal in free space. If you still have problems, open a separate issue with more details, please ;)
  3. This is up to your supervisor I'd say, and it depends on the requirements of your university. Designing a cost function would have little theoretical implications unless you start doing something more fancy like a NN for the cost in hard cases or so. You can show the limitations of the way we do it and improve with your thesis