Skip to content
This repository was archived by the owner on May 27, 2022. It is now read-only.

Running_program

Gourav Kumar edited this page Aug 23, 2018 · 5 revisions

Running_program

Make sure have the following dependencies satisfied.

Dependencies

  • ROS : Robot Operating System
    For Installing ROS refer ROS Installation Guide. Preferably install ROS-desktop-full, otherwise, make sure all relevant packages are installed.
  • Mavros : ROS communication driver for various autopilots with MAVLink communication protocol.
    Run sudo apt-get install ros-kinetic-mavros and sudo 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.
    Run sudo 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.
    Run sudo apt-get install ros-kinetic-cv-bridge
  • Image transport : For subscribing and publishing images as ROS message.
    Run sudo apt-get install ros-kinetic-image-transport
  • voxel grid : For subscribing and publishing images as ROS message.
    Run sudo 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.

Packages

Run

  • 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
  • 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
Clone this wiki locally