Coder Social home page Coder Social logo

Comments (11)

ayushgaud avatar ayushgaud commented on June 3, 2024 3

Hi @skierlin
I have been meaning to add a readme to the code but there are some bugs which need to be fixed before that. Anyway for your reference here is a small description:

  • GoalPointTransformer.cpp allow the users to select on goal point on the map through rviz
  • path_planning.cpp publishes trajectory_msgs::MultiDOFJointTrajectory "waypoint"
  • "waypoint" is taken as an input by trajectory_generation in order to produce a new trajectory_msg which is smoothed with jerk constraints
  • The scaling node is used to calculate the scale required for converting the monocular slam estimates to metric units.
  • The transform node is used to transform point cloud from camera axis convention to ROS convention.
  • The old_path_planner code is there only for reference since I have modified it in the path_planning node for replanning which is currently not working properly.

Regarding the implementation:

  • I am using FCL for collision checking but instead of using RRT I am using RRT* with path length minimization as optimization objective.
  • Ideally, collision checking should also be done for trajectory polynomials but you can increase the margins by increasing the size of the quadrotor model in the code. Still, this will never guarantee you collision free path which is a major problem if you require aggressive maneuvering hence the workaround is to take keep on taking intermediate waypoints until the trajectory is collision free (Ref). Secondly, I don't use Bspline since waypoints are treated as control points hence the trajectory will not pass through it.
  • For simulation, I pass this trajectory message to RotorS simulator which uses a popular nonlinear geometric controller based on the work of T.Lee while in the real case I use a simple position controller keeping my parameters under the limit so that the generated trajectory is not aggressive and can be tracked easily with a simple linear controller.
  • I saw the mav_trajectory_generation package after writing the minimum jerk code, but yes it can be used you just have to pass the waypoints to it. They have also made certain modifications where they are further optimizing the trajectory using unconstrained nonlinear optimization so as to generate better solutions (Ref)
  • I feed octree and quadrotor model using only FCL definitions which are necessary for collision checking while OMPL only gives random poses to FCL quadcopter object and takes in the binary collision flag.

from path_planning.

WR0903 avatar WR0903 commented on June 3, 2024

感觉很有趣,但需要一个运行它的说明,不知道是否方便写给使用说明

from path_planning.

ifaceyou123 avatar ifaceyou123 commented on June 3, 2024

@ayushgaud Hi,I have a question. Recently I was using gazebo and px4 for simulation of drones. What I want to achieve is that the drone uses a depth camera to generate a point cloud map and then save the map in octomap format. Then use the octomap map to generate a navigation path in order through the window. I want to ask, can I use this path_planning program? is this suitable for me?
Thank you for your work.

from path_planning.

ayushgaud avatar ayushgaud commented on June 3, 2024

Hi @ifaceyou123
I believe what you are looking for is quite similar to the work I have done for Ardupilot here. It uses mavlink for the interface so technically you should be able to directly use it without any modifications. If you face any issues, please let me know.

from path_planning.

ifaceyou123 avatar ifaceyou123 commented on June 3, 2024

@ayushgaud. Thank you for your lightning-fast reply, this is exactly what I want to ask. I am now using ardupilot SITL with Gazebo to run the simulation. The quadrotor and camera use iris and r200 . Then I try to use pointcloud and pose to build octomap directly (in simulation). I am very happy to see your project, I feel that your program are really awesome! this project is really useful to me. I think I can learn more from this. I am very grateful to get your reply.

from path_planning.

ayushgaud avatar ayushgaud commented on June 3, 2024

I am glad that you find that project useful. I have also updated the readme to include the links to the blogs which describe the framework in a bit detail. Hopefully, you may find that useful too.

from path_planning.

ifaceyou123 avatar ifaceyou123 commented on June 3, 2024

from path_planning.

acpl00 avatar acpl00 commented on June 3, 2024

Take a look at the avoidance package https://github.com/PX4/avoidance

from path_planning.

bitguige avatar bitguige commented on June 3, 2024

Hi,I have a question to consult. I want to achieve some experiment in Pelican (a quadrotor of Ascending Tech). The quadrotor uses a camera to generate a point cloud map and then be saved as octomap format. Based on the octomap, the quadrotor generate a navigation path using sample-based method and trajectory optimization. Is there any existing package that I can directly use? Thank you!

from path_planning.

ifaceyou123 avatar ifaceyou123 commented on June 3, 2024

Hi Gaud,
I encountered the following problem while running the node of traj_gen .
trajectory
and still, in the goalpoint_transformer.cpp file I changed the listener.lookupTransform("odom",....) to listener.lookupTransform("map",....) , because the frame_id of my nav_msgs/Odometry is "map". but there is always an error in the bash. as we can see in this picture.
transform
Do you know the reason? Is my modification wrong? thanks a lot!!

from path_planning.

witcher-joey avatar witcher-joey commented on June 3, 2024

thank you for your share,can you give a readme

from path_planning.

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.