install_ros.sh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. #mirror_url=http://mirrors.ustc.edu.cn
  3. mirror_url=https://repo.huaweicloud.com
  4. if [[ -n $1 && $1 =~ ros1|ros2 ]]; then
  5. version=$1
  6. else
  7. echo "usage: install_ros.sh ros1/ros2"
  8. exit
  9. fi
  10. release=$(lsb_release -cs)
  11. if [[ $version == "ros1" && $release =~ focal ]]; then
  12. [[ -f /etc/apt/sources.list.d/ros-latest.list ]] && sudo rm /etc/apt/sources.list.d/ros-latest.list
  13. sudo sh -c "echo deb ${mirror_url}/ros/ubuntu $(lsb_release -sc) main > /etc/apt/sources.list.d/ros1.list"
  14. sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  15. sudo apt update
  16. sudo apt install -y ros-noetic-desktop-full
  17. sudo sh -c 'echo "source /opt/ros/noetic/setup.bash" >> /root/.bashrc'
  18. echo "source /opt/ros/noetic/setup.bash" >> /home/orangepi/.bashrc
  19. sudo apt install -y python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
  20. sudo sh -c 'echo "151.101.84.133 raw.githubusercontent.com" >> /etc/hosts'
  21. source /opt/ros/noetic/setup.bash
  22. sudo rosdep init
  23. rosdep update
  24. exit
  25. fi
  26. if [[ $version == "ros2" && $release =~ focal ]]; then
  27. sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  28. echo "deb [arch=$(dpkg --print-architecture)] ${mirror_url}/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list
  29. sudo apt update
  30. sudo apt install -y ros-galactic-desktop
  31. sudo apt install -y ros-dev-tools
  32. sudo sh -c 'echo "source /opt/ros/galactic/setup.bash" >> /root/.bashrc'
  33. echo "source /opt/ros/galactic/setup.bash" >> /home/orangepi/.bashrc
  34. source /opt/ros/galactic/setup.bash
  35. ros2 -h
  36. exit
  37. fi
  38. if [[ $version == "ros2" && $release =~ jammy ]]; then
  39. sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  40. echo "deb [arch=$(dpkg --print-architecture)] ${mirror_url}/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list
  41. sudo apt update
  42. sudo apt install -y ros-humble-desktop
  43. sudo apt install -y ros-dev-tools
  44. sudo sh -c 'echo "source /opt/ros/humble/setup.bash" >> /root/.bashrc'
  45. echo "source /opt/ros/humble/setup.bash" >> /home/orangepi/.bashrc
  46. source /opt/ros/humble/setup.bash
  47. ros2 -h
  48. exit
  49. fi
  50. if [[ $version == "ros2" && $release =~ noble ]]; then
  51. sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  52. echo "deb [arch=$(dpkg --print-architecture)] ${mirror_url}/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list
  53. sudo apt update
  54. sudo apt install -y ros-jazzy-desktop
  55. sudo apt install -y ros-dev-tools
  56. sudo sh -c 'echo "source /opt/ros/jazzy/setup.bash" >> /root/.bashrc'
  57. echo "source /opt/ros/jazzy/setup.bash" >> /home/orangepi/.bashrc
  58. source /opt/ros/jazzy/setup.bash
  59. ros2 -h
  60. exit
  61. fi
  62. echo "Unsupported System!"