This repository
contains a python examples for offboard control on ROS2 with PX4
The px4_offboard
package contains the following nodes
offboard_control.py
: Example of offboard position control using position setpointsvisualizer.py
: Used for visualizing vehicle states in Rviz
The source code is released under a BSD 3-Clause license.
- Author: Jaeyoung Lim
- Affiliation: Autonomous Systems Lab, ETH Zurich
Add the repository to the ros2 workspace
git clone https://github.com/Jaeyoung-Lim/px4-offboard.git
If you are running this on a companion computer to PX4, you will need to build the package on the companion computer directly.
You will make use of 3 different terminals to run the offboard demo.
On the first terminal, run a SITL instance from the PX4 Autopilot firmware.
make px4_sitl gazebo
On the second terminal terminal, run the micro-ros-agent which will perform the mapping between Micro XRCE-DDS and RTPS. So that ROS2 Nodes are able to communicate with the PX4 micrortps_client.
micro-ros-agent udp4 --port 8888
In order to run the offboard position control example, open a third terminal and run the the node. This runs two ros nodes, which publishes offboard position control setpoints and the visualizer.
ros2 launch px4_offboard offboard_position_control.launch.py
In order to just run the visualizer,
ros2 launch px4_offboard visualize.launch.py
This section is intended for running the offboard control node on a companion computer, such as a Raspberry Pi or Nvidia Jetson/Xavier. You will either need an SSH connection to run this node, or have a shell script to run the nodes on start up.
If you are running this through a UART connection into the USB port, start the micro-ros agent with the following command
micro-ros-agent serial --dev /dev/ttyUSB0 -b 921600 -v
If you are using a UART connection which goes into the pinouts on the board, start the micro-ros agent with the following comand
micro-ros-agent serial --dev /dev/ttyTHS1 -b 921600 -V
To run the offboard position control example, run the node on the companion computer
ros2 launch px4_offboard offboard_hardware_position_control.launch.py