General PX4 questions + running avoidance on hardware

Hi,
I’m trying to scope out what it would take to get avoidance running on my hardware.

My quad is currently running arducopter on the pixhawk cube and has the px4flow module and a LW20 rangefinder. I’m pretty familiar with arducopter but I’m new to PX4. I’ve been playing around with the gazebo sim and have been reading the documentation but I have yet to flash my quad with it and fly.

My questions are as follows:

  1. What version of the px4 firmware should I run on the pixhawk? latest?
  2. The github page says avoidance has been tested on a tx2. I have a jetson nano and a tx1. Would the jetson nano suffice?
  3. The github page says it has been tested on the R200 and the D415. I have an R200 and a D435. any issues with using the D435?
  4. Is there anything similar to mavproxy for px4? Will mavproxy work with px4? (Seems like the CLI where you can enter things like ‘commander takeoff’ when you run the the gazebo sim is similar but I have been having trouble finding documentation for it)
  5. Whats the tuning process like with PX4? Is there anything similar to arducopter’s autotune?

And, as for my last question (this one’s a little over the top), would it be possible to run avoidance on the companion computer and have the pixhawk run arducoputer? I’m not expecting it to work out-of-the-box but what would a project like that entail?

Can’t answer the bulk of your questions, but for the final bit: it would take a bit of work on both the avoidance Ros node and in ArduPilot. A few messages were added to mavlink to enable the px4 avoidance stuff, and they aren’t implemented in ArduPilot.
ArduPilot has a number of avoidance implementations, but in general does path planning within the autopilot not companion computer (although if someone wanted to add support for the trajectory message I’m sure it would be welcomed). Modes and connection are different on the Ros side. You could modify the avoidance node to just send detected obstacles rather than calculate trajectories if you only want to look at the Ros side.

  1. You can run the latest release (1.9) if you want to run the local planner. For the safe landing planner you need to use Firmware master.
  2. You should be good with either of them
  3. D435 has issues with auto exposure but it’s still significant better than the R200. I would encourage you to use the D435
  4. QGroundControl (http://qgroundcontrol.com/) is the supported ground station
  5. You can follow the tuning guide here https://docs.px4.io/v1.9.0/en/config_mc/pid_tuning_guide_multicopter.html

No, the avoidance is tightly integrated with the PX4 flight controller. We use px4 specific vehicle tuning paramters and the interface to run the avoidance in missions is highly PX4 specific

@LeegOfLejnds I think all the questions are well replied. Just to add on question 4. not specific to px4, but using mavlink-router will work much better than mavproxy since mavproxy is outdated and unmaintained as far as I remember.

Mavproxy is actively maintained.
As a pure router, mavlink-router probably uses less resources, but the OP was asking about Mavproxy in the context of use as a GCS. As a GCS, Mavproxy sort of works with px4 but there are many gaps.

1 Like