Skip to content

raaslab/WallFollow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WallFollow

This wall_follow package contains code for navigation around bridge structures using routines for flight alongside the bridge, flight along a bridge column, etc.

Pre-requisites

  • Ubuntu 16.04 + ROS Kinetic + Gazebo 7
  • Mavros: ROS node to communicate with PX4 firmware
  • PX4 firmware : code for low level UAV flight control (on actual Pixhawk hardware or as software-in-the-loop (SITL) for Gazebo simulation)

The PX4 website contains information and instructions for installing PX4 firmware and Mavros. https://dev.px4.io/en/setup/dev_env_linux.html

The ubuntu_sim_ros_gazebo.sh script from the PX4 website may help install all the above pre-reqs conveniently. Works well on a clean Ubuntu installation on most conventional PCs. Have had issues getting it to work on NVIDIA Jetson, in which case manual installation of the pre-reqs had to be done.

Refer to this document for help regarding PX4 and Mavros and some clarity on software architecture: https://docs.google.com/document/d/1i-lWuEwOOzB-5ZloPOaRV5dGP6J1aeJemh8ISfB3lxE/edit?usp=sharing (Access restricted to those within Virginia Tech)

Dependencies

Copy and replace the models and worlds folders under your ~/src/Firmware/Tools/sitl_gazebo with those from the sitl_gazebo_wall_follow repository

Edit ~/src/Firmware/launch/mavros_posix_sitl.launch and ensure the below line to launch the correct WORLD:

<arg name="world" default="$(find mavlink_sitl_gazebo)/worlds/2_wall_new.world"/>

Get Model Working:

Add "rplidar_vert" folder to the location Firmware/Tools/sitl_gazebo/models and replace "rplidar" with the one in this repository. By doing this you change the lidar from a GPU based lidar to a CPU based lidar. The GPU based lidar does not always work correctly and potentially sees through objects, giving incorrect data.

Launch files

Flight beside bridge girder

Simulation: roslaunch wall_follow besideWall_simulation.launch

Real World: roslaunch wall_follow besideWall_real.launch

Flight along a bridge column

Simulation: roslaunch wall_follow columnLoop_simulation.launch

Real World: roslaunch wall_follow columnLoop_real.launch

Nodes

/hor/pc_subscriber

Horizontal point cloud subscriber:

  • Processes the horizontal lidar data (filtering + Hough Transform)
  • Publishes line(s) that estimate bridge structure

Subscribed topic:

  • /hor/pc2 (sensor_msgs/PointCloud2)

Published topic:

  • /hor/ho/li (wall_follow/Lines)

/vert/pc_subscriber

Vertical point cloud subscriber:

  • Processes the vertical lidar data (filtering + Hough Transform)
  • Publishes line(s) that estimate bridge structure

Subscribed topic:

  • /vert/pc2 (sensor_msgs/PointCloud2)

Published topic:

  • /vert/ho/li (wall_follow/Lines)

/besideWall

Flight alongside the bridge girder:

  • Maintains desired distance perpendicular to the girder
  • Maintains desired altitude w.r.t the top of the girder
  • Contanst fixed velocity parallel to the girder

Subscribed topics:

  • /hor/ho/li (wall_follow/Lines)
  • /vert/ho/li (wall_follow/Lines)

Published topic:

  • /mavros/setpoint_raw/local (mavros_msgs/PositionTarget)

/columnLoop

Flight along a bridge column:

  • Maintains desired distance to the column
  • Maintains centering w.r.t the column
  • Contanst fixed velocity in the vertical direction

Subscribed topics:

  • /hor/ho/li (wall_follow/Lines)
  • /vert/ho/li (wall_follow/Lines)

Published topic:

  • /mavros/setpoint_raw/local (mavros_msgs/PositionTarget)

Parameters:

/besideWall

The parameters in the besideWall_params.yaml file control the flight beside the bridge girder. Please refer to the comments in the yaml file itself for documentation.

/columnLoop

The parameters in the columnLoop_params.yaml file control the flight along a bridge column. Please refer to the comments in the yaml file itself for documentation.

Supporting documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 48.0%
  • MATLAB 34.0%
  • Python 12.5%
  • CMake 5.5%