not7cd
March 8, 2023, 4:29pm
6
I found out about this PR recently.
PX4:main
← PX4:pr-rover-ratesp
opened 01:49PM - 21 Aug 22 UTC
## Describe problem solved by this pull request
Previously USVs(boats) did not … work in mission mode due to the lack of low level control in the rover position control. Due to the low yaw damping on water the boat model would just oscillate on the yaw axis without meaningful navigation.
## Describe your solution
This PR adds a rate control loop on the rover position control module and enables way point navigation for boats.
- Added rate control of a rover using the common rate control library
- Added support for Acro mode for rovers (includes https://github.com/PX4/PX4-Autopilot/pull/18317)
- Had to make commander consider boats as a rover vehicle type for waypoint acceptance (Fixes https://github.com/PX4/PX4-Autopilot/issues/19045)
- This PR needs a modification of the gazebo model for Improved control authority and directional stability of the gazebo boat model https://github.com/PX4/PX4-SITL_gazebo/pull/895
## Test data / coverage
### After PR
Tested in SITL and demonstrated successfully of following a survey pattern
```
make px4_sitl gazebo_boat
```
- Flight log: [Log](https://review.px4.io/plot_app?log=c14bff87-6756-438c-9362-1f42c19e1d2d)


### Before PR
- Flight log: [Log](https://review.px4.io/plot_app?log=5c69e211-0a61-4abd-a6b9-20707fa7b193)

## Additional context
- This is a extended PR of https://github.com/PX4/PX4-Autopilot/pull/18317
- @junwoo091400 This should be useful for https://github.com/PX4/PX4-Autopilot/pull/19957
- Fixes https://github.com/PX4/PX4-Autopilot/issues/19045
- Depends on https://github.com/PX4/PX4-SITL_gazebo/pull/895
Which implements what I want to achieve with my PR. Fix such behaviour, and enable omnidirectional movement for my engine configuration:
PX4:pr-rover-ratesp
← not7cd:usv-control
opened 12:29AM - 16 Feb 23 UTC
This PR introduces Surface Vehicle controllers for position and attitude. Attitu… de is based on UUV controller, while position is written from scratch. This is all work in progress. This vehicle uses 6DOF frame without roll, pitch and thrust in Z axis. And uses 4 engines in OmniX configuration.
As of now, I'm able to drive it manually proving that control allocation works, and minimal modification of PID control was needed for uuv_att_control to adapt it. Position control is not implemented.
### Alternatives
Refactor rover_pos_controller to be more generic, disable so-called L1 control.
Extend uuv_pos_controller to implement more vehicle modes.
### Test coverage
- Unit/integration test: none, not sure how
- Simulation/hardware testing logs:
- Custon model based on UUV BlueROV2 with USV dynamics plugin.
- Upcoming hardware testing in 4 days.
### Context
[Driving omni vehicles - Discussion Forum, for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink](https://discuss.px4.io/t/driving-omni-vehicles/30716)

What I really need is lateral movement in very narrow cases during my mission. One is holding the position of the robotic arm reaching somewhere. For now, I can move my autonomous surface vehicle like a wheeled rover.
Should I drop my PR and try to extend rover?
ref: Driving omni vehicles
1 Like