Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoidance Interface CI #10780

Merged
merged 28 commits into from
Mar 15, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
90c0136
add mission plan for the obstacle avoidance test
mrivi Jun 28, 2018
49e59b2
add ros test for obstacle avoidance
mrivi Jun 28, 2018
a206323
add script to initialize catkin workspace and build PX4 avoidance local
mrivi Jul 12, 2018
59f27b3
Makefile: add tests_avoidance target
mrivi Jul 12, 2018
6dae676
test: hardcode path to catkin ws
mrivi Jul 20, 2018
f6038c4
test: refactor avoidance test
lamping7 Jul 20, 2018
6f66382
test: avoidance: add to GAZEBO_MODEL_PATH and fix clone path
lamping7 Jul 23, 2018
2a653ae
jenkinsfile-SITL_tests add avoidance test
mrivi Oct 24, 2018
3b515f5
jenkins: add parameter to ROS SITL test node generation to specify th…
lamping7 Oct 30, 2018
0b84e8c
rostest_avoidance_run: source gazebo setup.sh to remove gzserver core…
mrivi Oct 30, 2018
c1094c1
enable MPC_OBS_AVOID in iris_obs_avoid
mrivi Oct 31, 2018
43e08d3
avoidance.plan: add lading waypoint plus slightly change position of the
mrivi Oct 31, 2018
6b081b3
Jenkinsfile-SITL_tests: rename test avoidance -> MC_avoidance
mrivi Nov 1, 2018
de06679
avoidance.plan: change waypoints to remove mission check fail "takeoff
mrivi Nov 1, 2018
643689f
mavros_posix_test_avoidance: enable local planner ouput on console
mrivi Nov 1, 2018
f8b9fcb
mavros_posix_test_avoidance: add pointcloud topic paramete and load p…
mrivi Nov 1, 2018
bdb1365
Jenkinsfile-SITL_tests: fix rebase mistake
mrivi Nov 27, 2018
40bdb4d
run xvfb to run cameras headlessly
mrivi Jan 11, 2019
b86eb67
update ros-kinetic container to tag 2019-01-31. Remove xvfb since it …
mrivi Jan 31, 2019
11b4e44
test: avoidance: set gazebo verbose
lamping7 Feb 1, 2019
7c13404
test px4-dev-ros:2019-02-03
mrivi Feb 8, 2019
a305bdd
mavros_posix_test_avidance: remove yaml paramters
mrivi Mar 9, 2019
b41c35e
use iris model with 3 depth sensor
mrivi Mar 9, 2019
8fa10bc
avoidance.plan: lower land waypoint
mrivi Mar 11, 2019
15b5e56
rostest_avoidance_run: checkout avoidance stable release 0.1.0
mrivi Mar 11, 2019
ae68309
- 1015_iris_obs_avoid: #!nsh -> #!/bin/bash
mrivi Mar 13, 2019
8cb3e19
Makefile: avoidance test @$(SRC_DIR) -> @"$(SRC_DIR)"
mrivi Mar 13, 2019
ba381cf
1015_iris_obs_avoid: change param name MPC_OBS_AVOID -> COM_OBS_AVOID
mrivi Mar 13, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .ci/Jenkinsfile-SITL_tests
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@ pipeline {
mission: "VTOL_mission_1",
vehicle: "tiltrotor"
],
[
name: "MC_avoidance",
test: "mavros_posix_test_avoidance.test",
mission: "avoidance",
vehicle: "iris_obs_avoid",
run_script: "rostest_avoidance_run.sh"
],

]

Expand Down Expand Up @@ -111,6 +118,7 @@ def createTestNode(Map test_def) {
cleanWs()
docker.image("px4io/px4-dev-ros-kinetic:2019-03-08").inside('-e HOME=${WORKSPACE}') {
stage(test_def.name) {
def run_script = test_def.get('run_script', 'rostest_px4_run.sh')
def test_ok = true
sh('export')

Expand All @@ -119,7 +127,7 @@ def createTestNode(Map test_def) {

// run test
try {
sh('px4-px4_sitl_default*/px4/test/rostest_px4_run.sh ' + test_def.test + ' mission:=' + test_def.mission + ' vehicle:=' + test_def.vehicle)
sh('px4-px4_sitl_default*/px4/test/' + run_script + ' ' + test_def.test + ' mission:=' + test_def.mission + ' vehicle:=' + test_def.vehicle)

} catch (exc) {
// save all test artifacts for debugging
Expand Down
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ format:

# Testing
# --------------------------------------------------------------------
.PHONY: tests tests_coverage tests_mission tests_mission_coverage tests_offboard
.PHONY: tests tests_coverage tests_mission tests_mission_coverage tests_offboard tests_avoidance
.PHONY: rostest python_coverage test_mixer_multirotor

test_mixer_multirotor:
Expand Down Expand Up @@ -374,6 +374,9 @@ tests_offboard: rostest
@"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_tests_offboard_attctl.test
@"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_tests_offboard_posctl.test

tests_avoidance:
@"$(SRC_DIR)"/test/rostest_avoidance_run.sh mavros_posix_test_avoidance.test

python_coverage:
@mkdir -p "$(SRC_DIR)"/build/python_coverage
@cd "$(SRC_DIR)"/build/python_coverage && cmake "$(SRC_DIR)" $(CMAKE_ARGS) -G"$(PX4_CMAKE_GENERATOR)" -DCONFIG=px4_sitl_default -DPYTHON_COVERAGE=ON
Expand All @@ -384,6 +387,7 @@ python_coverage:
@coverage combine `find . -name .coverage\*`
@coverage report -m


# static analyzers (scan-build, clang-tidy, cppcheck)
# --------------------------------------------------------------------
.PHONY: scan-build px4_sitl_default-clang clang-tidy clang-tidy-fix clang-tidy-quiet
Expand Down
13 changes: 13 additions & 0 deletions ROMFS/px4fmu_common/init.d-posix/1015_iris_obs_avoid
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL (Obstacle Avoidance)
#
# @type Quadrotor Wide
#

sh /etc/init.d-posix/10016_iris

if [ $AUTOCNF = yes ]
then
param set COM_OBS_AVOID 1
fi
88 changes: 88 additions & 0 deletions integrationtests/python_src/px4_it/mavros/missions/avoidance.plan
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{
"fileType": "Plan",
"geoFence": {
"circles": [
],
"polygons": [
],
"version": 2
},
"groundStation": "QGroundControl",
"mission": {
"cruiseSpeed": 15,
"firmwareType": 12,
"hoverSpeed": 5,
"items": [
{
"AMSLAltAboveTerrain": null,
"Altitude": 4,
"AltitudeMode": 0,
"autoContinue": true,
"command": 22,
"doJumpId": 1,
"frame": 3,
"params": [
15,
0,
0,
null,
47.3977432,
8.5456085,
4
],
"type": "SimpleItem"
},
{
"AMSLAltAboveTerrain": null,
"Altitude": 4,
"AltitudeMode": 0,
"autoContinue": true,
"command": 16,
"doJumpId": 2,
"frame": 3,
"params": [
0,
0,
0,
null,
47.3977432,
8.5458765,
4
],
"type": "SimpleItem"
},
{
"AMSLAltAboveTerrain": null,
"Altitude": -1,
"AltitudeMode": 0,
"autoContinue": true,
"command": 21,
"doJumpId": 3,
"frame": 3,
"params": [
0,
0,
0,
null,
47.3977432,
8.5458812,
-1
],
"type": "SimpleItem"
}
],
"plannedHomePosition": [
47.3977419,
8.5458854,
487.923
],
"vehicleType": 2,
"version": 2
},
"rallyPoints": {
"points": [
],
"version": 2
},
"version": 1
}
52 changes: 52 additions & 0 deletions test/mavros_posix_test_avoidance.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?xml version="1.0"?>
<launch>
<!-- Posix SITL MAVROS integration tests -->
<!-- Test a mission -->
<arg name="est" default="ekf2"/>
<arg name="gui" default="false"/>
<arg name="interactive" default="false"/>
<arg name="mission" default="avoidance"/>
<arg name="sdf" default="$(find local_planner)/../sim/models/iris_depth_camera_3/iris_depth_camera.sdf"/>
<arg name="vehicle" default="iris_obs_avoid"/>
<arg name="world" default="$(find local_planner)/../sim/worlds/boxes1.world"/>
<!-- PX4 SITL and Gazebo -->
<include file="$(find px4)/launch/posix_sitl.launch">
<arg name="est" value="$(arg est)"/>
<arg name="gui" value="$(arg gui)"/>
<arg name="interactive" value="$(arg interactive)"/>
<arg name="respawn_gazebo" value="true"/>
<arg name="sdf" value="$(arg sdf)"/>
<arg name="vehicle" value="$(arg vehicle)"/>
<arg name="verbose" value="true"/>
<arg name="world" value="$(arg world)"/>
</include>
<!-- MAVROS -->
<include file="$(find mavros)/launch/node.launch">
<arg name="pluginlists_yaml" value="$(find mavros)/launch/px4_pluginlists.yaml"/>
<arg name="config_yaml" value="$(find local_planner)/resource/px4_config.yaml"/>
<arg name="gcs_url" value=""/>
<arg name="fcu_url" value="udp://:14540@localhost:14557"/>
<arg name="tgt_system" value="1"/>
<arg name="tgt_component" value="1"/>
<arg name="respawn_mavros" value="true"/>
</include>
<!-- Transformation Publishers -->
<node pkg="tf" type="static_transform_publisher" name="tf_front_camera"
args="0 0 0 -1.57 0 -1.57 fcu front_camera_link 10"/>
<node pkg="tf" type="static_transform_publisher" name="tf_right_camera"
args="0 0 0 -3.14 0 -1.57 fcu right_camera_link 10"/>
<node pkg="tf" type="static_transform_publisher" name="tf_left_camera"
args="0 0 0 0 0 -1.57 fcu left_camera_link 10"/>
<!-- Suppress console outputs -->
<env name="ROSCONSOLE_CONFIG_FILE" value="$(find local_planner)/resource/custom_rosconsole.conf"/>
<!-- Launch Local Planner -->
<arg name="pointcloud_topics" default="[/camera_front/depth/points,/camera_left/depth/points,/camera_right/depth/points]"/>
<node name="local_planner_node" pkg="local_planner" type="local_planner_node" output="screen">
<param name="goal_x_param" value="17" />
<param name="goal_y_param" value="15"/>
<param name="goal_z_param" value="3" />
<rosparam param="pointcloud_topics" subst_value="True">$(arg pointcloud_topics)</rosparam>
</node>
<!-- ROStest -->
<test test-name="$(arg mission)" pkg="px4" type="mission_test.py" time-limit="300.0" args="$(arg mission).plan"/>
</launch>
20 changes: 20 additions & 0 deletions test/rostest_avoidance_run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#! /bin/bash
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fine for now, but we should try to think of a better way to do this. For example having it locally and running repeatedly shouldn't have to clone and build each time.


DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PX4_SRC_DIR=${DIR}/..

source /opt/ros/${ROS_DISTRO:-kinetic}/setup.bash
mkdir -p ${PX4_SRC_DIR}/catkin_ws/src
cd ${PX4_SRC_DIR}/catkin_ws/
git clone -b '0.1.0' --single-branch --depth 1 https://github.com/PX4/avoidance.git src/avoidance

catkin init
catkin build local_planner --cmake-args -DCMAKE_BUILD_TYPE=Release

source ${PX4_SRC_DIR}/catkin_ws/devel/setup.bash
source /usr/share/gazebo/setup.sh

export CATKIN_SETUP_UTIL_ARGS=--extend
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:${PX4_SRC_DIR}/catkin_ws/src/avoidance/sim/models

source $DIR/rostest_px4_run.sh "$@"