diff --git a/setup.txt b/setup.txt new file mode 100644 index 0000000..2ccb9cf --- /dev/null +++ b/setup.txt @@ -0,0 +1,114 @@ +Cesar Rodriguez +February 2022 + +Steps to recreate stable PX4 environment + +STEP 1) Installing ROS Melodic + +- SETUP SOURCES.LIST + sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' +- SETUP YOUR KEYS + sudo apt install curl # if you haven't already installed curl + curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - +- INSTALLATION + sudo apt update + sudo apt install ros-melodic-desktop-full +- ENVIRONMENT SETUP + echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc +- DEPENDENCIES + sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential + + Initilize rosdep: + sudo apt install python-rosdep + sudo rosdep init + rosdep update +- PX4 DEPENDENCIES + sudo apt-get install python-catkin-tools python-rosinstall-generator -y + wstool init ~/catkin_ws/src +- MAVLINK + rosinstall_generator --rosdistro melodic mavlink | tee /tmp/mavros.rosinstall +- MAVROS + rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall +- CREATE WORKSPACE AND DEPS + cd ~/catkin_ws + wstool merge -t src /tmp/mavros.rosinstall + wstool update -t src -j4 + rosdep install --from-paths src --ignore-src -y +- INSTALL GEOGRAPHIC LIB DATASETS + cd ~/catkin_ws + sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh +- BUILD SOURCE + catkin build + + +STEP 2) PX4 Environment Development + +- DOWNLOAD PX4 SOURCE CODE + git clone https://github.com/PX4/PX4-Autopilot.git --recursive +- RUN UBUNTU.SH + bash ./PX4-Autopilot/Tools/setup/ubuntu.sh +- BUILD ROS/GAZEBO: Gets Gazebo9 + wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh + bash ubuntu_sim_ros_melodic.sh +- Download QGroundControl from: + https://docs.qgroundcontrol.com/master/en/releases/daily_builds.html +- Build jMAVSim and Gazebo + make px4_sitl jmavsim + %%% May need to open QGroundControl for it to work %%% + make px4_sitl gazebo +- Create px4 package + cd ~/PX4-Autopilot + DONT_RUN=1 make px4_sitl_default gazebo + source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default + export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd) + export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo + roslaunch px4 posix_sitl.launch + +STEP 3) This is Cesar stuff, need to do stuff to rebuild oscillation_ctrl +- INSTALL XTERM + sudo apt-get update -y + sudo apt-get install -y xterm +-INSTALL MAVROS_CONTROLLERS + cd ~/catkin_ws/src + clone repo: + git clone https://github.com/Jaeyoung-Lim/mavros_controllers + Download dependencies: + cd ~/catkin_ws + wstool merge -t src src/mavros_controllers/dependencies.rosinstall + wstool update -t src -j4 + rosdep install --from-paths src --ignore-src -y --rosdistro $ROS_DISTRO + catkin build + source ~/catkin_ws/devel/setup.bash + ~Troubleshooting: https://github.com/Jaeyoung-Lim/mavros_controllers + +-TOOLS/SITL_GAZEBO + change default sitl_gazebo folder with working folder + -- Change this to add model, change airframe, etc and add citadel_hill world +-ROMFS/PX4FMU_COMMON + create airframe file in init.d-posix + add it to cmake list in same 'airframe' folder (with number) + add airframe name in ~/PX4-Autopilot/platforms/posix/cmake/sitl_target.cmake (no number) +-LAUNCH FILES + change default ~/PX4-Autopilot/launch folder with working folder +-MAVROS + - in px4.launch, replace: + + + - with: + + +- CHANGE DEVEL/SETUP.BASH + In catkin_ws (or any working directory) add to devel/setup.bash: + CURRENT_DIR=$(pwd) + cd ~/PX4-Autopilot + + source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default + export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd) + export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo + + cd $CURRENT_DIR + + + + +