[親測有效]Ubuntu20.04安裝ROS1和ROS2
[親測有效]Ubuntu20.04安裝ROS1和ROS2
參考鏈接:https://www.guyuehome.com/35421
https://blog.csdn.net/qq_41276366/article/details/108810777#commentBox
在Ubuntu中打開“軟件更新”,選擇前四個。
配置網絡,選擇最佳服務器。
安裝預備環境
1 sudo apt-get install python 2 sudo apt-get install g++
1. ROS1安裝
添加sources.list
1 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
國內中國科技大學的源
1 sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
添加Keys
1 sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
安裝ROS1桌面完整版
1 sudo apt update 2 sudo apt install ros-noetic-desktop-full
注意:在安裝源的選擇上,可以選擇最佳的服務器或者usta源都可以,親測有效。
環境測試
1 source /opt/ros/noetic/setup.bash
補全rosdep
1 sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential 2 sudo apt install python3-rosdep 3 sudo rosdep init 4 rosdep update
2. ROS2安裝
確保系統要支持 UTF-8:
1 sudo locale-gen en_US en_US.UTF-8 2 sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8
設置軟件源
1 sudo apt update 2 sudo apt install curl gnupg2 lsb-release 3 4 # 下面這條語句,我的輸出錯誤: gpg: no valid OpenPGP data found 5 # curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - 6 # 解決上面的問題,可以換成下面這條語句: 7 $ curl http://repo.ros2.org/repos.key | sudo apt-key add - 8 9 # 之后再添加源(自己電系統里選擇的源):
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
安裝ROS2 package
1 # 進入文件夾并修改ros2-latest.list文件 2 cd /etc/apt/sources.list.d 3 sudo vim ros2-latest.list 4 5 # 打開文本后出現 6 deb http://packages.ros.org/ros2/ubuntu bionic main 7 # 在deb后插入[arch=amd64] 8 deb [arch=amd64] http://packages.ros.org/ros2/ubuntu bionic main 9 10 # 保存并關閉,然后更新 11 sudo apt update 12 # 最后就可以進行安裝了 13 sudo apt install ros-foxy-desktop
sudo apt install python3-colcon-common-extensions
注意:解決:dpkg: 錯誤: 另外一個進程已經為 dpkg frontend lock 加鎖
1 $ ps -e | grep apt 2 8925 pts/0 00:00:01 apt-get 3 4 $ sudo kill 8925
*(非必須)注意:如果ROS2缺失很多依賴,可以考慮卸載重新安裝,卸載ROS2
1 sudo apt-get remove ros-foxy-*
2 sudo apt autoremove
安裝rosdep和相關依賴:
1 rosdep install --from-path /opt/ros/foxy/src --ignore-src -r -y
環境測試
1 ource /opt/ros/foxy/setup.bash
自動補全工具
1 sudo apt update 2 sudo apt install python3-argcomplete 3 sudo apt update 4 sudo apt install ros-foxy-rmw-connext-cpp #(這句命令FQ后重新安裝好ros2后,就可以運行成功了)
安裝ros1轉換bridge
1 sudo apt update 2 sudo apt install ros-foxy-ros1-bridge
3.ROS1和ROS2混合配置
1 sudo gedit ~/.bashrc
打開.bashrc文本文件后在末尾加上如下代碼,完成環境變量設置。
1 #source /opt/ros/noetic/setup.bash 2 echo "ros noetic(1) or ros2 foxy(2)?" 3 read edition 4 if [ "$edition" -eq "1" ];then 5 source /opt/ros/noetic/setup.bash 6 else 7 source /opt/ros/foxy/setup.bash 8 fi
4.ROS1和ROS2差異
編譯
1 catkin_make --> colcon build 2 3 catkin_make -DCATKIN_WHITELIST_PACKAGES="" --> colcon build --packages-select PACKAGE_NAME
bashrc存入
1 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc --> echo "source ~/colcon_ws/install/setup.bash" >> ~/.bashrc
terminal 命令
1 rosrun --> ros2 run 2 rosnode --> ros2 node 3 roslaunch --> ros2 launch 4 rosparam --> ros2 param 5 rospkg --> ros2 pkg 6 rosservice --> ros2 service 7 rossrv --> ros2 srv 8 rostopic --> ros2 topic 9 rosaction --> ros2 action
注意:ROS2相比ROS1在語法上有了很大的改變,在編程思路還是一樣。
參考鏈接:https://www.guyuehome.com/35421
https://blog.csdn.net/qq_41276366/article/details/108810777#commentBox
https://blog.csdn.net/weixin_48370221/article/details/115876753#commentBox
雪兒言

浙公網安備 33010602011771號