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

can you give a brief introduce about the operation? #1

Open
skierlin opened this issue May 29, 2018 · 11 comments
Open

can you give a brief introduce about the operation? #1

skierlin opened this issue May 29, 2018 · 11 comments

Comments

@skierlin
Copy link

I think it is interesting and I have finished the catkin_make. but I can't start this program by rosrun the several nodes, can you give a introduce about the operation of the program. Thank you for your program.

@ayushgaud
Copy link
Owner

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.

@WR0903
Copy link

WR0903 commented Jul 20, 2018

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

@ifaceyou123
Copy link

@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.

@ayushgaud
Copy link
Owner

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.

@ifaceyou123
Copy link

@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.

@ayushgaud
Copy link
Owner

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.

@ifaceyou123
Copy link

ifaceyou123 commented Dec 5, 2018 via email

@acpl00
Copy link

acpl00 commented Jan 14, 2019

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

@bitguige
Copy link

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!

@ifaceyou123
Copy link

ifaceyou123 commented Feb 19, 2019

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!!

@witcher-joey
Copy link

thank you for your share,can you give a readme

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

7 participants