How to properly use DO_SET_ROI?

I WP list is like :
WP1: DO_SET_ROI (in the middle)
WP2…20 waypoints at fixed altitude around WP1

When I set auto, the quad didnt go nowhere. 3.1
When I removed DO_SET_ROI wp, Auto worked as expected.

How should it be done ? - the goal is to

You set Waypoint1, then an ROI command, Then a Waypoint 2, then an ROI command, so for a 20 Waypoint Mission you will need 20 ROI commands

do you have to reset the ROI between each waypoint? couldn’t you just set WP1, DO_SET_ROI via the map at the thing you want to face during the entire mission and set more waypoints? so it would always face the same spot during the mission?

what does the ALT param do in that command, change ALT?

also, what is the difference between do_set_roi in the WP list of the Mission Planner and plain ROI?

finally, are they any options for the do_set_roi command that can be chosen?..I thought I saw something previously that the command could face the next WP or face any WP in the list or keep facing the direction of the travel to the previous waypoint, or face the set ROI’s Lat/Long spot(default?)…

would be nice to be able to unset the ROI during the mission and return to normal behaviour…assuming its not reset at each WP as implied above…

Looks like it’s still a ToDo github.com/diydrones/ardupilot/ … .pde#L1013

github.com/diydrones/ardupilot/ … .pde#L1680

thanks, but what about my first three questions? anyone have any answers?

[quote=“billbonney”]Looks like it’s still a ToDo github.com/diydrones/ardupilot/ … .pde#L1013

github.com/diydrones/ardupilot/ … .pde#L1680[/quote]

It seems the links refer to Version 2.8.1

The same result if you look at master
github.com/diydrones/ardupilot/ … .pde#L1013
github.com/diydrones/ardupilot/ … .pde#L1680

so, is it (and how), or is it not supposed to work ?

10b, here: diydrones.com/forum/topics/arduc … 1-released , says it is “fixed”.

I think that means it was broken from it’s current behaviour, not updated to the behaviour as outlined by the MAVLink protocol. And the code confirms that the behaviour is the same as before. Ask on the 3.1 post for more info from Randy

So you definitely should use do-set-roi and not the older ROI command. That older ROI command is there for plane and rover but i don’t think it even works for those code bases.

we don’t support some of the options from the mavlink commands yet and I can’t make any promises on when we will.

If the alt command works then it would change the altitude of where the camera points not the altitude of the vehicle.

Should it be used like:

do-set-roi
WP1
do-set-roi
WP2
(does it last for only one WP?)

-or -

do-set-roi
WP1
WP2
(and how is it cancelled ?)

I posted that previously here viewtopic.php?f=25&t=5120#p7190

thanks, now I remember :slight_smile:

I am trying to fully understand the DO and Condition commands, like DO_SET_ROI

as I understand it, all Condition and DO commands must be placed after one of the basic NAV commands (TAKEOFF, WAYPOINT, LOITERxxx, RTL, or LAND) and are executed while the vehicle is completing that NAV command …there also must be a NAV command following them (even if its not executed…like when Jumping) since some of the Condition commands need info about that command (like Condition_Distance which needs to know where the next NAV command is to figure when its reached the specified distance before it)…
and completion of the preceding NAV command will “flush” any un-completed intervening commands between it and the next NAV command…

so it does not need to be following a WAYPOINT command, just a NAV command…like Loiter…

so this sequence is supposed to work, isnt it?

WAYPOINT 1
DO_SET_ROI (a)
LOITER_TIME 30s LAT/LONG
DO_SET _ROI (b)
RTL

it should point to “a” from WAYPOINT1 to the new position at “LAT/LONG” of the LOITER_TIME command(actually a new waypoint), then rotate in place there to point to “b” while the 30s time elapses, then RTL…

is this correct?

I have tried this and it doesn’t work:

WAYPOINT 1
LOITER_TIME 30s
DO_SET_ROI a
RTL

it does not turn to point at “a” while loitering even though its after a NAV command, before another, and the preceding NAV command hasn’t completed before getting to the DO_SET_ROI…

seems very inconsistent…

See this
youtube.com/watch?feature=pl … X7dZDk8iEY

sorry, that video gives no information or answers to the above questions…

@hwurzburg - did you ever get any closer to this one?

I’m trying to implement this myself at the moment, would love to find a resource that clarifies this…

How about the wiki?
copter.ardupilot.com/wiki/missio … Do-Set-ROI

Thanks Craig. The wiki is a good start, but a lot of commands just seem to do nothing.

The first specific problem we have is that we can’t get the quad to yaw to point the camera where it’s directed to by the DO_SET_ROI commands. Tilt works sometimes (I think depending on which GCS we’re using and what we have done as far as SET_MOUNT commands and the WP_YAW_BEHAVIOUR parameter). We’re working around this with a CONDITION_YAW but it’s hardly ideal since we need so many waypoints (even in a straight line) to keep the target in frame.

This remains true for both the right-click ‘point camera here’ command and when sandwiching do_set_roi’s in-between mission items. Tried in both GUIDED and AUTO modes.

In the gimbal setup tab in mission planner we only have tilt enabled on CH9 and controlled by RC CH6 input, and none of the stabilise options are selected. We’re flying a 3DR IRIS with 3.1.3 firmware and with the Tarot 2d Gimbal All is connected and set up as per the manuals, with the appropriate parameters file that you posted about recently.

So I guess to be more specific with my previous post:

  1. What do we need to do to tell the system that it needs to yaw the quad in order to do ROI’s?
  2. What parameters affect the ROI and yaw behaviour or the system in Copter 3.1 ? WP_YAW_BEHAVIOUR, SET_MOUNT, others?

I assume we’re just missing something obvious, but I also know we’re not the only ones…

Cheers.

Craig,

We are having the exact same issues almost 3 years later. Did you ever get this to work?

Sully