142 lines
5.5 KiB
Bash
142 lines
5.5 KiB
Bash
#!/bin/bash
|
|
if [ ! -z "$PIBOT_HOME" ]; then
|
|
PIBOT_HOME_DIR=$PIBOT_HOME
|
|
else
|
|
PIBOT_HOME_DIR=~/pibot_ros
|
|
fi
|
|
|
|
echo -e "\033[1;32mpibot home dir:$PIBOT_HOME_DIR"
|
|
|
|
# http://wiki.ros.org/ROS/Installation/UbuntuMirrors
|
|
sudo sh -c 'echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
|
|
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" >> /etc/apt/sources.list.d/ros-latest.list'
|
|
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
|
|
sudo apt-get update
|
|
|
|
code_name=$(lsb_release -sc)
|
|
|
|
if [ "$code_name" = "trusty" ]; then
|
|
ROS_DISTRO="indigo"
|
|
elif [ "$code_name" = "xenial" ]; then
|
|
ROS_DISTRO="kinetic"
|
|
elif [ "$code_name" = "bionic" ] || [ "$code_name" = "stretch" ]; then
|
|
ROS_DISTRO="melodic"
|
|
elif [ "$code_name" = "focal" ] || [ "$code_name" = "buster" ]; then
|
|
ROS_DISTRO="noetic"
|
|
else
|
|
echo "PIBOT not support "$code_name
|
|
exit
|
|
fi
|
|
|
|
echo "ros distro:" $ROS_DISTRO
|
|
|
|
sudo apt-get install -y git cmake unzip vim build-essential udev inetutils-ping iproute2 hostapd
|
|
|
|
sudo apt-get -y --allow-unauthenticated install ros-${ROS_DISTRO}-ros-base ros-${ROS_DISTRO}-slam-gmapping ros-${ROS_DISTRO}-navigation \
|
|
ros-${ROS_DISTRO}-xacro ros-${ROS_DISTRO}-robot-state-publisher \
|
|
ros-${ROS_DISTRO}-joint-state-publisher ros-${ROS_DISTRO}-teleop-twist-* ros-${ROS_DISTRO}-control-msgs \
|
|
ros-${ROS_DISTRO}-kdl-parser-py ros-${ROS_DISTRO}-tf2-geometry-msgs ros-${ROS_DISTRO}-hector-mapping \
|
|
ros-${ROS_DISTRO}-robot-pose-ekf ros-${ROS_DISTRO}-slam-karto ros-${ROS_DISTRO}-hector-geotiff ros-${ROS_DISTRO}-hector-trajectory-server \
|
|
ros-${ROS_DISTRO}-usb-cam ros-${ROS_DISTRO}-image-transport ros-${ROS_DISTRO}-image-transport-plugins \
|
|
ros-${ROS_DISTRO}-depthimage-to-laserscan ros-${ROS_DISTRO}-openni2* \
|
|
ros-${ROS_DISTRO}-robot-upstart ros-${ROS_DISTRO}-tf-conversions \
|
|
ros-${ROS_DISTRO}-realsense2-camera ros-${ROS_DISTRO}-libuvc* \
|
|
ros-${ROS_DISTRO}-camera-calibration ros-${ROS_DISTRO}-rtabmap* \
|
|
ros-${ROS_DISTRO}-web-video-server ros-${ROS_DISTRO}-roslint ros-${ROS_DISTRO}-laser-filters
|
|
|
|
if [ "$ROS_DISTRO" = "noetic" ]; then
|
|
sudo ln -sf /usr/bin/python3 /usr/bin/python
|
|
|
|
# third
|
|
cd $PIBOT_HOME_DIR/third_party/libuvc && mkdir -p build && cd build && cmake .. && sudo make install
|
|
|
|
cd $PIBOT_HOME_DIR
|
|
if [ ! -d $PWD/ros_package ]; then
|
|
mkdir ros_package
|
|
fi
|
|
cd ros_package
|
|
|
|
# astra ros package
|
|
if [ -f $PWD/astra.tar.gz ]; then
|
|
tar xzvf $PWD/astra.tar.gz
|
|
else
|
|
git clone https://github.com/orbbec/ros_astra_launch.git
|
|
git clone https://github.com/orbbec/ros_astra_camera.git
|
|
fi
|
|
|
|
# frontier_exploration ros package
|
|
# if [ -f $PWD/frontier_exploration.tar.gz ]; then
|
|
# tar xzvf $PWD/frontier_exploration.tar.gz
|
|
# else
|
|
# git clone -b $ROS_DISTRO-devel https://github.com/paulbovbel/frontier_exploration.git
|
|
# fi
|
|
|
|
# camera_umd
|
|
# if [ -f $PWD/camera_umd.tar.gz ]; then
|
|
# tar xzvf $PWD/camera_umd.tar.gz
|
|
# else
|
|
# git clone https://github.com/ros-drivers/camera_umd.git
|
|
# fi
|
|
|
|
cd ..
|
|
echo "ln -sf $PWD/ros_package ros_ws/src/ros_package"
|
|
if [ -f ros_ws/src/ros_package ]; then
|
|
rm ros_ws/src/ros_package
|
|
fi
|
|
|
|
ln -snf $PWD/ros_package ros_ws/src/ros_package
|
|
sudo apt-get -y --allow-unauthenticated install python3-pip python3-serial
|
|
elif [ "$ROS_DISTRO" = "melodic" ]; then
|
|
# third
|
|
cd $PIBOT_HOME_DIR/third_party/libuvc && mkdir -p build && cd build && cmake .. && sudo make install
|
|
|
|
cd $PIBOT_HOME_DIR
|
|
if [ ! -d $PWD/ros_package ]; then
|
|
mkdir ros_package
|
|
fi
|
|
cd ros_package
|
|
|
|
# astra ros package
|
|
if [ -f $PWD/astra.tar.gz ]; then
|
|
tar xzvf $PWD/astra.tar.gz
|
|
else
|
|
git clone https://github.com/orbbec/ros_astra_launch.git
|
|
git clone https://github.com/orbbec/ros_astra_camera.git
|
|
fi
|
|
|
|
# frontier_exploration ros package
|
|
# if [ -f $PWD/frontier_exploration.tar.gz ]; then
|
|
# tar xzvf $PWD/frontier_exploration.tar.gz
|
|
# else
|
|
# git clone -b $ROS_DISTRO-devel https://github.com/paulbovbel/frontier_exploration.git
|
|
# fi
|
|
cd ..
|
|
|
|
echo "ln -sf $PWD/ros_package ros_ws/src/ros_package"
|
|
if [ -f ros_ws/src/ros_package ]; then
|
|
rm ros_ws/src/ros_package
|
|
fi
|
|
|
|
ln -snf $PWD/ros_package ros_ws/src/ros_package
|
|
|
|
sudo apt-get -y --allow-unauthenticated install python-pip python-serial \
|
|
ros-${ROS_DISTRO}-freenect-* ros-${ROS_DISTRO}-orocos-kdl ros-${ROS_DISTRO}-camera-umd ros-${ROS_DISTRO}-cartographer-ros
|
|
else
|
|
sudo apt-get -y --allow-unauthenticated install python-pip python-serial \
|
|
ros-${ROS_DISTRO}-freenect-* ros-${ROS_DISTRO}-orocos-kdl ros-${ROS_DISTRO}-camera-umd ros-${ROS_DISTRO}-cartographer-ros\
|
|
ros-${ROS_DISTRO}-astra-launch ros-${ROS_DISTRO}-astra-camera ros-${ROS_DISTRO}-frontier-exploration
|
|
fi
|
|
|
|
read -s -n1 -p "install ros gui tools?(y/N)"
|
|
|
|
if [ "$REPLY" = "y" -o "$REPLY" = "Y" ]; then
|
|
sudo apt-get -y --allow-unauthenticated install ros-${ROS_DISTRO}-rviz ros-${ROS_DISTRO}-rqt-reconfigure ros-${ROS_DISTRO}-rqt-tf-tree \
|
|
ros-${ROS_DISTRO}-image-view
|
|
|
|
if [ "$ROS_DISTRO" = "noetic" ]; then
|
|
echo "please run ros_package/make_cartographer.sh to compile cartographer"
|
|
else
|
|
sudo apt-get -y --allow-unauthenticated install ros-${ROS_DISTRO}-cartographer-rviz
|
|
fi
|
|
fi
|