Ping360 not changing angle (ping-cpp)

Why is it that we can not make the transducer head turn? It seems like we are sending the correct message. Must we read the “next” message from Ping360? Is there any place you suggest that I should loop at?

The transducer should move to whichever angle you command it to (in the transducer message). It doesn’t change angle without being commanded to a new angle.

We tried to send increasing angles with some period (1hz with 10 Gradian increments). But it didn’t turn the transducer head as well. What would be the reason for it?

I’m not sure what you mean by this - can you post the code you’re using to set the angle? Are you verifying that it hasn’t turned by the angle the sensor returns in the device_data message?

Note that the transducer is in the oil-filled section in the top of the Ping360 casing, so you won’t see anything moving, although you should be able to feel the casing vibrate slightly as the internal stepper motor turns the transducer :slight_smile:

The code that I’m running is a c++ code. It would be a big chunk of code if were to try to send it from here. But you can monitor our progress in this GitHub repository: GitHub - GSO-soslab/ping360_ros. There are two open pull requests on the bluerobotics/ping-cpp repository, PRs #38 and #39. We are using PRs #39 version of bluerobotics/ping-cpp repository. Those PRs have Ping360 message headers. I didn’t commit my changes that set the transducer message I didn’t get any results out of it.

We are aware that the transducer is within the oil-filled section. We were expecting it to at least vibrate to some extent since there is a stepper motor that rotates just as you mentioned. We are monitoring its current draw so that we also know that it doesn’t draw more than its idle current. We compare the current drawn with both ping-viewer software and our software. We can clearly see an increase in the current drawn, and also feel the vibration of the stepper motor.

Thank you for the information you give so far.
Now that I’m looking at the title of the post, I think we got the answer for it.

With the discussion we had, I’ll continue my work with the device. I’ll post my results in another post. I’ll accept the second message as a solution.

I’m specifically interested in the snippet that sets the angle you want to command the device to, and the code that then sends that angle as part of a transducer message, in case you’re accidentally passing in a constant angle or something, or forgetting to call the function where you’ve defined that functionality.

From a brief look at your github link it seems you’ve got a “Fixme” bit of code to set up auto-transmitting (which from our previous discussion isn’t possible with the current firmware), but that doesn’t clarify what your approach was for manually setting the transducer angle. Given your attempts at that are apparently not functioning, perhaps you’d prefer to post what you’ve tried so far here in a code block, rather than intentionally committing broken code to your repo :slight_smile:

If I’m understanding this correctly, you’re saying you can notice/feel it moving when controlled via Ping Viewer, but not with your code? I assumed that was the case, but included the original comment about the transducer just in case it was a physical misunderstanding rather than a code issue :slight_smile:

Fair point that this was off-topic from the initial discussion - I’ve moved this new part of the discussion to its own post :slight_smile: