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

Rover: Add support for attitude set points (for offboard control) #13239

Closed
jbeyerstedt opened this issue Oct 21, 2019 · 5 comments
Closed

Rover: Add support for attitude set points (for offboard control) #13239

jbeyerstedt opened this issue Oct 21, 2019 · 5 comments
Labels
Mode: Offboard Offboard mode control Rover 🚙 Rovers and other UGV

Comments

@jbeyerstedt
Copy link
Contributor

The movement control loops (currently just the rover_pos_control module) only support position setpoints, but no attitude setpoints. Therefore the rover_pos_control module has to be extended or a new module has to be created.
But first, support for actuator_control setpoints should be fixed (#13192).

To be discussed: What values should be controlled by an attitude control loop?
Yaw and velocity or just yaw and throttle/ thrust?
The second option would be easier to implement and in line with the MAVSDK API documentation of the offboard mode attitude setpoints.
If we want to control the velocity, some kind of positioning system or odometry (e.g. wheel encoders #12351) are needed. But that's more suitable for a velocity setpoint (which is part of position control).

As far as I know, there a two control modes in offboard:

  • attitude control
  • position or velocity control (in local or global NED coordinates)

Manual control (via offboard actuator_controls or RC remote) must also be considered (see #13192), but that is actually no control loop at a rover.

@Jaeyoung-Lim
Copy link
Member

Jaeyoung-Lim commented Oct 21, 2019

@jbeyerstedt To make it more consistent with the multirotor attitude setpoints, I would suggest the following setpoints would make sense.

  1. throttle/thrust with yaw setpoints.
  2. throttle/thrust with yaw rate setpoints.
  3. velocity setpoints has been implemented in Support offboard velocity setpoints for rover #13225
  4. position setpoints, it is already available(for global and local coordinates) for rovers.

You can look at how velocity tracking is being used in #13225 for supporting velocity setpoints for rover, but as multirotors use thrust with the combination of attitude / attitude rates I think it is better we go that direction with rover too.

@jbeyerstedt
Copy link
Contributor Author

I agree with @Jaeyoung-Lim about the different control modes, that should be implemented.

throttle/thrust with yaw setpoints.

Attitude setpoints have been added in #13323 and will be fixed by #13427.

Is there a special reason, why the attitude setpoints only allow forward driving? Because for our rover we also need to drive backwards.

@Jaeyoung-Lim
Copy link
Member

@jbeyerstedt We are not handling the case when the rover is driving backwards, in that case we need to reverse the steering angle so it takes the shortest route and not the other way around

@jbeyerstedt
Copy link
Contributor Author

I just added driving backwards for attitude control. See #13429

@Jaeyoung-Lim Jaeyoung-Lim added Rover 🚙 Rovers and other UGV Mode: Offboard Offboard mode control labels Nov 11, 2019
@Jaeyoung-Lim
Copy link
Member

Closing as this is now supported as per #13429

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mode: Offboard Offboard mode control Rover 🚙 Rovers and other UGV
Projects
None yet
Development

No branches or pull requests

2 participants