ArduSub custom motor control

Manual has no stabilization whatsoever.

1 Like

Hey,

Just wanted to drop a quick thank you for all the help (hopefully we won’t be having any more issues that requires us to use the forum too heavily).

Here are some videos of our wet tests, we’re still fine tuning a few things but on track to have the product ready by the deadline:

(before fixing some parameters and the custom configuration, it wasn’t moving too well in water
)
https://streamable.com/epbl3

(after fixing everything)
https://streamable.com/lp93h

We’ll be testing both arms (dry & wet) simultaneously this weekend (we have already confirmed one arm is able to lift 5lbs easily)

To prevent the use of custom buttons without arming the vehicle, would I use the boolean returned by “motors.armed()” ?

Just thinking this should be a safety feature added


Hi,

Yes, you can use motors.armed() to filter user inputs for safety reasons.

Awesome @adaniel1, I will be very interested in any paper or presentation resulting from this.

In terms of documentation i’d have to check with our adviser and sponsor what exactly we can share, but here is a video that we presented during our senior design expo: https://streamable.com/a7oy0

I tried to assemble all the blue Robotics components and burnt the latest version of ardusub firmware into the pixhawk and then I tried to run the vehicle using QGroundcontrol installed on my topside computer.The topside computer and raspberry pi were connected using tether. I assume that, when I use the joystick to provide commands, actually mavlink messages are being transmitted from topside computer to raspberry pi and this pi controls the pixhawk thereby controlling thrusters, lights and camera. As I am unaware of python programming, now from my topside computer (with linux OS) , if I wanted to directly send various commands to control the thrusters, arm the vehicle, provide yaw and throttle values and also to receive mavlink messages like getting the temperature reading from the temperature sensor, do I need to install python first in my topside and raspberry pi. In which window , should I need to write these commands in the topside computer?As I am new to python programming, I couldn’t make out what is written in the " PYMAVLINK " section of " ARDUSUB " page. I kindly request you to help me with all the necessary information (or some video links) required for writing these commands in the topside computer.Looking forward for your reply,

Regards,
Deepak

@deepak both the topside computer and the raspberry pi are on the same Local Area Network, so your program can run on either machine and communicate with the autopilot.

The pymavlink examples are the simplest examples we provide. I think most of them are designed to run on the topside computer, but they can be adapted to run on either computer.

Sir,

I have a few doubts in pymavlink. I am new to python and mavlink. I read the pymavlink documentation given on “Pymavlink · GitBook”. Here it basically provides various examples to arm/disarm the vehicle, read and write parameters etc. If I take the example of ’ read and write parameters’, I found the following lines in the code:-

master.mav.param_request_read_send(
master.target_system, master.target_component,
b’SURFACE_DEPTH’,
-1}

what does these lines mean? Do we need to give values for this target system and target component ?
As per the instruction given, if we installed python 3.7.3, its dependencies and mavproxy , can we write all these code given in that page directly(without making any modifications) to some text editor and save it as .*py python file and run this file using a python interpreter 3.7.3 (assuming TETHER connections exist from my surface computer to raspberry pi and the raspberry pi is connected to pixhawk -1 using usb connection), will I be able to control my ardusub vehicle (i mean arming, diasrming, changing the value of parameters, rotating the thrusters etc) manualy without using QGC? You are kindly requested to help me on this topic.
please reply.

Hi,

I believe that mostly of your questions are related to the python language itself and not about mavlink or our ardusub project/code structure.
I recommend you to study python before doing any such task, check the official python tutorial here.

we have a different configuration , SAME AS OURS EXCEPT 2 ENGINES IN BLUEROBOTICS 1 CONFIGURATION . WE ONLY HAVE 4 ENGINES BUT THAT CONFIGIRATION HAS 6 ENGINES. WE CONSIDER NOT POWERING OVER ENGINES. WILL THE PID BE PROVIDED AFTER THAT?

Hi @MuhammedBeken, it’s a bit unclear what you want/are expecting here.

You’ve mentioned that your frame has 4 thrusters. If they’re aligned with the simplerov-4 from our already-supported frames then you can use that, but otherwise you’ll need to set up a custom frame that matches your ROV’s configuration.

Once you have an ArduSub build that matches your ROV frame then ArduSub should work as normal, which includes inbuilt PID control if you’re in a relevant flight mode.