Making an Autonomous Water Rover using Navio2 ,3DR telemetry and Internet

I am trying to incorporate autonomous behavior in an existing project using navio2 and a 3DR 4333MHz telemetry module. The project is a Water Boat made on RPi 3. I would first explain the progress of my project and the places where I am clueless due to my lack of experience with Ardupilot / ROS / Navio2 and need help

Actuators for motion : We have three dc pumps two for forward motion and one for reverse motion. By providing PWM output to a mosfet driver I am traversing the rover forward left right backward (either by hardcoding wall avoidance at present and web remote)

Web Interface : I am using an arduino pro mini as a sensor hub with ph, temp, conductivity and turbidity and two distance sesnors. It is connected to the rpi using usb. This sensor data and camera feed from rpi are streamed on a website hosted flask on the rpi. A remote like ui on the website is enabling me to control the rover as of now.

Now I have a Navio2 board with the image etched into it and also mission planner installed on my Windows 10 laptop. Also I have a 3DR telemetry 433MHz from mRo. I need to keep the web interface alive for the sensor data and incorporate waypoint navigation using mission planner. I have the following doubts :-

  1. What are the steps that i need to get autonomous behaviour along with rempte control with Navio2 on Rpi 3b±-> Mission Planner --> 3DR telemetry kit 433MHz
  2. Can ADC sensors be interfaced with nacio2 and rpi along with other sensors interfaced on my rpi and their data relayed to ground station using 3DR and then uploaded on a local website?
  3. Can live streaming of video from rpi cam/ usb cam from rpi be relayed using 3DR and then sent to the same website?
    4)Is some special configuration needed to get to configure mission planner /navio2 for my customized rover i.e. pwm out only and no direction control. If yes where do I need to do it?

If I am missing anything else do let me know. This is my first time trying to use ardupilot and I need to get a hang of this as soon as possible. I want to get the autonomous behaviour sorted as soon as possible due to deadlines of some National Level Project Competitions. Also it was very difficult to get this hardware so I absolutely want to make the most of it. Thanking you

Have read docs on the website but they are not helping me figure what exactly I need to do to solve my problems even if i get a an idea of how I should proceed I could refer the docs and tackle one issue at a time.

Hi @CHIRAG_SHAH!

Sorry for not answering earlier. Here are my thoughts about your questions.

  1. ArduRover would be the best choice as it supports boats since version 3.0.0. You need to specify that the vehicle is a boat with the FRAME_CLASS parameter. More information about boat configuration is available here.

  2. You can check the Navio2 ADC pinout here. This is an abstract class where you can find functions to get voltage. Can you provide us some information about which sensors you are going to use? Because it would be highly dependent on the device driver.

  3. Unfortunately, video streaming over the radio isn’t possible , but it can be achieved over the WiFi connection. Check our detailed guide describing how to do it.

  4. I don’t think that you need any special configuration. But if you encounter any problems, feel free to ask your questions here.

Hi due to Sebastian’s help I had managed to get started but I couldn’t find the frame_class parameter . I had gone through the ardupilot getting started guide.

I have interface the sensors on an arduino pro mini will read the serial data on ROS later . I had managed video streaming on Rpi before using motion on WiFi. I could set it up on the navio2 rpi too right?

Also can I host a flask server on rpi and control the rc outs using this app? (as a backup web remote which I had made before, I am also pushing the sensor data received from prp mini on this )

Also the rc outs are not compatible with my motor driver so I am reading the pulse width between 1100-1900 from an arduino and then converting it to 0-255 to get a compatible output.

Also I could pull the github examples from navio2 on my rpi do you know why that maybe? I got a certificate error…

Once the implementation is done with the mission planner I wanted to implement the same on ROS. I read through the docs and have the following queries -

  1. Will I have to code the planning algorithm, calibrate the sensors on my own ?
  2. I would be willing to do that but is it possible to just get mission .i.e waypoints from the Mission planner or do I need to manually enter the lat long values?

I am sure I will have more doubts but right now I wanted to figure this out so that I could proceed.

Yes, you can easily achieve it using our docs for streaming video or you can go deeper and use different ROS nodes for processing and modifying the video stream.

You just have to install pip dependencies and use our examples and everything should work as expected.

I haven’t seen this error but maybe it’s simpler to clone that repo again?

Could you please elaborate on what do you think that algorithm should do?

You can save WP file from mission planner. You can get more information about the waypoint file format here.

Hi I was trying to setup frame_class and skid_steering param but i have no such option visible in the standard param list of mission planner.Could you direct me to what might be wrong?

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.