Git Product home page Git Product logo

Comments (4)

karthikm-0 avatar karthikm-0 commented on June 27, 2024 1

Thank you very much for the detailed explanation. My assumption was that I could create my own plan which the planner would attempt to follow but I suppose the constraints are maybe too stringent. I ended up writing a control loop and it is quite smooth.

from franka_ros_interface.

justagist avatar justagist commented on June 27, 2024

Hi,
Depending on the number of waypoints you want the robot to follow, it can get very difficult to get a successful and feasible plan using Moveit, especially if you are using a time-indexed trajectory like the ones generated by DMPs. Moveit by default will (try to) use its own planners to create a new path plan for the robot to follow while staying within the constraints you specify (eg. waypoints). This may not necessarily succeed, and if it does there is no guarantee that it takes the path you want.

If you have a trajectory encoded as a DMP, you can have a continuous stream of goal positions (discretised for each time step). It is better to use a controller to follow this trajectory, rather than depending on moveit (if you want to follow the DMP path, then Moveit is unnecessary, less reliable and slower). I would suggest generating a smooth trajectory from the DMP and commanding the robot joints directly with the generated trajectory points. Since DMP allows for generating discretised trajectories with any level of granularity, you can generate points that are close enough to provide a smooth trajectory and ensure that the robot is following the required path. The safest way would be to write a control loop that would command the robot joints to the required joint position targets at each time step using the time-indexed trajectory generated by the DMP.

Also, just to be clear, it should be possible to execute a plan through waypoints using Moveit as long as the provided points are within the accessible workspace for the robot. There are several things you have to consider here though (eg. number of waypoints and time constraints would increase the planning complexity). There are several resources online which can help you with using Moveit for planning through multiple waypoints. This package is not implementing or providing support for planners, but only provides an interface for using MoveIt. I can't provide much support if the problems you are having are with MoveIt itself.

Hope this helps.

-- Saif

from franka_ros_interface.

justagist avatar justagist commented on June 27, 2024

A 'planner' by definition would only create a plan for the robot to follow and by itself does not make the robot 'follow' any plan. You should have a 'controller' for this purpose. Moveit works this way too. It creates a plan using one of its available path planners, and then uses a controller to execute it. When using moveit, this controller is by default one of the ROS TrajectoryControllers.
So if you are creating a plan yourself, you don't have to (should not) provide it to a moveit planner again, but should just choose an appropriate controller to execute your plan (while ensuring stability and smoothness ofc).

from franka_ros_interface.

karthikm-0 avatar karthikm-0 commented on June 27, 2024

Sorry, I misspoke! I meant when providing a pre-made plan to execute_plan which in turn would request a controller to execute it. But this makes sense, thanks!

from franka_ros_interface.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.