tu-darmstadt-ros-pkg / hector_quadrotor

hector_quadrotor contains packages related to modeling, control and simulation of quadrotor UAV systems.
Other
379 stars 276 forks source link

Migrate to new control structure [jade-devel] #44

Closed meyerj closed 8 years ago

meyerj commented 8 years ago

Supersedes #34. See discussion there.

paulbovbel commented 8 years ago

Continued from #34

@meyerj thanks for taking a look at this! I've been a little out-of-the-loop with github but if you have some time to sort through this pull and make improvements, I'd be happy to help any way I can.

I have a BSD licensed hardware driver for Asctec Pelican/Hummingbird, along with the associated URDFs for simulation, ready to go when this is merged and released. Of course we're still waiting for ros_control release into jade.

Do you see a clean way to do both the Euler-angle based approach, along with the vector difference? Perhaps it may be best just to have 4 controllers (position, velocity, attitude, and your original direct-velocity controller)

I would be happy to take maintainership of stuff I wrote independently, pass it to you, or we can share. I need to go carefully go through the headers of this pull, and the package.xml's, and make sure there's proper attribution.

With regards to execution order, it wasn't a huge deal for my application (running at 100 Hz with pretty low specification to hit), but I can see how that's an issue in more high-precision applications.

nicolaerosia commented 8 years ago

@meyerj @paulbovbel I just wanted to know if you are still working on this?

paulbovbel commented 8 years ago

I am open to getting this stuff merged, will try again with ros_control patches for kinetic. Who is currently maintaining this package? will it be getting a kinetic release?

meyerj commented 8 years ago

I would be willing to do a kinetic release as soon as all the direct or indirect dependencies are released. Usually ros_controls and gazebo_plugins are the two major blockers for a release in a new ROS distro.

I only have limited time at the moment to review new PRs or to work on new features. I think the main reason why this PR cannot be merged yet is the missing anti-windup feature in the ros_controls PID controller implementation (see https://github.com/ros-controls/control_toolbox/pull/38).

Furthermore, I am not yet fully convinced about the switch of the controller structure, primarily because it deviates from the controller implemented in the real platform that hector_quadrotor actually tries to simulate. But I agree that we should do the switch, if it solves other people's use cases and I eventually will come up with some patches later.

paulbovbel commented 8 years ago

Have started looking at this again, now that patches in control_toolbox are being released to kinetic-devel. Is anyone working on a kinetic release of hector_gazebo?

meyerj commented 8 years ago

Many thanks, Paul! We have not yet been working on a Kinetic release, but we will definitely do so during the next 1 or 2 weeks now that the beta is out.

paulbovbel commented 8 years ago

Awesome, will keep you posted

meyerj commented 8 years ago

I am going to merge the revisited branch into kinetic-devel.

I reimplemented the previous twist controller algorithm in the split velocity and attitude controller. The attitude controller output interface is wrench again (and not acceleration), which is closer to the real world. The position controller supports preemption now, so that a non-zero velocity command interrupts position control.