This repository was archived by the owner on May 27, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Running_program
Gourav Kumar edited this page Aug 23, 2018
·
5 revisions
Make sure have the following dependencies satisfied.
-
ROS : Robot Operating System
For Installing ROS refer ROS Installation Guide. Preferably installROS-desktop-full
, otherwise, make sure all relevant packages are installed. -
Mavros : ROS communication driver for various autopilots with MAVLink communication protocol.
Runsudo apt-get install ros-kinetic-mavros
andsudo apt-get install ros-kinetic-mavros-extras
-
px4flow_node : This package parses the MAVLINK messages from the PX4Flow optical flow board, and converts them to ROS messages before publishing them.
Refer to the guide on the link for installing this. -
Eigen3 : Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
Runsudo apt-get install libeigen3-dev
from command line or to install from source use the instructions from the link -
CV Bridge : converts between ROS Image messages and OpenCV images.
Runsudo apt-get install ros-kinetic-cv-bridge
-
Image transport : For subscribing and publishing images as ROS message.
Runsudo apt-get install ros-kinetic-image-transport
-
voxel grid : For subscribing and publishing images as ROS message.
Runsudo apt-get install ros-kinetic-voxel-grid
- global planner: This package provides an implementation of a fast, interpolated global planner for navigation.
Note We implemented this system on ROS Kinetic, so all the instructions are for installing ROS Kinetic packages, though feel free to replace the -kinetic
with whatever your ROS distro might be.
- For odometry
- For Reconstruction
- For Mapping
- For Controller, costmap_2d, tfmini_ros, height_estimator, gripper_control
for adding px-ros-pkg
git submodule sync --recursive git submodule update --init --recursive
- For exploration (frontier detection)
- For Trajectory generation
- first run separate roscore
- then launch rovio (For Odometry)
- rovio also contain launch for bluefox and xsens
roslaunch rovio rovio_node.launch
# for rovio reset
./rovio_ws/src/rovio/scripts/reset.sh
For visualization (to check that frame is alligned with world frame)
-
export ROS_MASTER_URI=http://ros_ip:11311
- example:
export ROS_MASTER_URI=http://192.168.1.122:11311
- example:
- then launch rviz on ground station and check is mav frame aligned with world Then launch vin_mission_control.launch (High level PID Controller )
<launch>
#heigt estimator
<include file="$(find estimator)/launch/zestimator.launch"/>
# aruco launch with usb_cam
<include file="$(find aruco_ros)/launch/usb_cam.launch"/>
<!-- <include file="$(find px4flow)/launch/px4flow.launch"/>
<node pkg="robot_exploration" type="frontier_detection" name="robot_exploration" clear_params="true" respawn="true"/> -->
<node pkg="mav_trajectory_generation_ros" type="waypoint_node" name="waypoint_node" clear_params="true" respawn="true"/>
<node pkg="controller" type="aruco_median_filter.py" name="aruco_median_filter" clear_params="true"/>
<node pkg="controller" type="gripper.py" name="gripper" clear_params="true" />
<node pkg="controller" type="vin_mission_control" name="vin_mission_control" clear_params="true" output="screen" respawn="true">
<rosparam file="$(find controller)/param/vin_mission_control.yaml" />
</node>
</launch>
open another shell
roslaunch controller vin_mission_control.launch
# for yaw_init
rosparam set /controller/vin_mision_control/yaw_reset 1
- gripper control
- For waypoints go to mav_traj_ws
- then go to mav_tajectory_generation_ros src folder
- and edit waypoint node