PX4 FLOW (COM14) Driver Download For Windows 10

Flow data is transmitted via wireless at a lower rate. The recommended mounting orientation (meaning: zero rotation) is defined as Y on flow board pointing towards front of vehicle, as shown in the following picture. On PX4, the orientation should be set using the parameter SENSFLOWROT.

Docker containers are provided for the complete PX4 development toolchain including NuttX and Linux based hardware, Gazebo Simulation and ROS.

  1. PX4 is an open source flight control software for drones and other unmanned vehicles. The project provides a flexible set of tools for drone developers to share technologies to create tailored solutions for drone applications. PX4 is hosted by Dronecode, a Linux Foundation non-profit.
  2. # Modules Reference: Optical Flow (Driver) # thoneflow. Source: drivers/opticalflow/thoneflow (opens new window) # Description. Serial bus driver for the ThoneFlow-3901U optical flow sensor. Most boards are configured to enable/start the driver on a specified UART using the SENSTFLOWCFG parameter.

This topic shows how to use the available docker containers to access the build environment in a local Linux computer.

Dockerfiles and README can be found on Github here. They are built automatically on Docker Hub.

Prerequisites

PX4 containers are currently only supported on Linux (if you don't have Linux you can run the container inside a virtual machine). Do not use boot2docker with the default Linux image because it contains no X-Server.

Install Docker for your Linux computer, preferably using one of the Docker-maintained package repositories to get the latest stable version. You can use either the Enterprise Edition or (free) Community Edition.

For local installation of non-production setups on Ubuntu, the quickest and easiest way to install Docker is to use the convenience script as shown below (alternative installation methods are found on the same page):

The default installation requires that you invoke Docker as the root user (i.e. using sudo). If you would like to use Docker as a non-root user, you can optionally add the user to the 'docker' group and then log out/in:

Container Hierarchy

The available containers are listed below (from Github):

ContainerDescription
px4-dev-baseBase setup common to all containers
 px4-dev-nuttxNuttX toolchain
px4-dev-simulationNuttX toolchain + simulation (jMAVSim, Gazebo)
px4-dev-rosNuttX toolchain, simulation + ROS (incl. MAVROS)
 px4-dev-raspiRaspberry Pi toolchain
 px4-dev-snapdragonQualcomm Snapdragon Flight toolchain
 px4-dev-clangClang tools
px4-dev-nuttx-clangClang and NuttX tools

The most recent version can be accessed using the latest tag: px4io/px4-dev-ros:latest (available tags are listed for each container on hub.docker.com. For example, the px4-dev-ros tags can be found here).

Typically you should use a recent container, but not necessarily the latest (as this changes too often).

Use the Docker Container

The following instructions show how to build PX4 source code on the host computer using a toolchain running in a docker container. The information assumes that you have already downloaded the PX4 source code to src/Firmware, as shown:

Helper Script (docker_run.sh)

The easiest way to use the containers is via the docker_run.sh helper script. This script takes a PX4 build command as an argument (e.g. make tests). It starts up docker with a recent version (hard coded) of the appropriate container and sensible environment settings.

For example, to build SITL you would call (from within the /Firmware directory):

Or to start a bash session using the NuttX toolchain:

The script is easy because you don't need to know anything much about Docker or think about what container to use. However it is not particularly robust! The manual approach discussed in the section below is more flexible and should be used if you have any problems with the script.

Calling Docker Manually

The syntax of a typical command is shown below. This runs a Docker container that has support for X forwarding (makes the simulation GUI available from inside the container). It maps the directory <host_src> from your computer to <container_src> inside the container and forwards the UDP port needed to connect QGroundControl. With the -–privileged option it will automatically have access to the devices on your host (e.g. a joystick and GPU). If you connect/disconnect a device you have to restart the container.

Where,

  • <host_src>: The host computer directory to be mapped to <container_src> in the container. This should normally be the Firmware directory.
  • <container_src>: The location of the shared (source) directory when inside the container.
  • <local_container_name>: A name for the docker container being created. This can later be used if we need to reference the container again.
  • <container>:<tag>: The container with version tag to start - e.g.: px4io/px4-dev-ros:2017-10-23.
  • <build_command>: The command to invoke on the new container. E.g. bash is used to open a bash shell in the container.

Px4 Flow (com14) Driver Download For Windows 10 64-bit

The concrete example below shows how to open a bash shell and share the directory ~/src/Firmware on the host computer.

If everything went well you should be in a new bash shell now. Verify if everything works by running, for example, SITL:

Re-enter the Container

FLOW

The docker run command can only be used to create a new container. To get back into this container (which will retain your changes) simply do:

If you need multiple shells connected to the container, just open a new shell and execute that last command again.

Clearing the Container

Sometimes you may need to clear a container altogether. You can do so using its name:

If you can't remember the name, then you can list inactive container ids and then delete them, as shown below:

QGroundControl

When running a simulation instance e.g. SITL inside the docker container and controlling it via QGroundControl from the host, the communication link has to be set up manually. The autoconnect feature of QGroundControl does not work here.

In QGroundControl, navigate to Settings and select Comm Links. Create a new link that uses the UDP protocol. The port depends on the used configuration e.g. port 14557 for the SITL iris config. The IP address is the one of your docker container, usually 172.17.0.1/16 when using the default network.

Troubleshooting

Permission Errors

The container creates files as needed with a default user - typically 'root'. This can lead to permission errors where the user on the host computer is not able to access files created by the container.

The example above uses the line --env=LOCAL_USER_ID='$(id -u)' to create a user in the container with the same UID as the user on the host. This ensures that all files created within the container will be accessible on the host.

Px4 Flow (com14) Driver Download For Windows 10 32-bit

Graphics Driver Issues

It's possible that running Gazebo will result in a similar error message like the following:

In that case the native graphics driver for your host system must be installed. Download the right driver and install it inside the container. For Nvidia drivers the following command should be used (otherwise the installer will see the loaded modules from the host and refuse to proceed):

More information on this can be found here.

PX4 FLOW (COM14) Driver Download For Windows 10

Virtual Machine Support

Any recent Linux distribution should work.

The following configuration is tested:

  • OS X with VMWare Fusion and Ubuntu 14.04 (Docker container with GUI support on Parallels make the X-Server crash).

Memory

Use at least 4GB memory for the virtual machine.

Compilation problems

If compilation fails with errors like this:

Try disabling parallel builds.

Allow Docker Control from the VM Host

Edit /etc/defaults/docker and add this line:

You can then control docker from your host OS:

Legacy

Px4 Flow (com14) Driver Download For Windows 10 7

The ROS multiplatform containers are not maintained anymore: https://github.com/PX4/containers/tree/master/docker/ros-indigo