基于某種特殊需求,從Ubuntu16到22目前都嘗試過安裝ros、ros2
參考1:http://t.csdnimg.cn/DzvSe
參考2:http://t.csdnimg.cn/sOzr1
1.設置locale
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
2.確認軟件源
2.1 universe
使用如下命令檢查:
apt-cache policy | grep universe
返回可能有若干行,但是應該包含如下內容:
500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packagesrelease v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=amd64
如果沒有包含上述內容,那么輸入如下命令:
sudo apt install software-properties-common
sudo add-apt-repository universe
Ubuntu 將其軟件分為四個關鍵軟件源:
?Main:默認啟用,包含 Ubuntu 維護的自由和開源軟件。
?Restricted:默認啟用,提供設備的專有驅動程序。
?Universe:提供由社區維護的自由和開源軟件,滿足各種軟件許可和維護需求。
?Multiverse:提供因版權或法律條款而受限的軟件。
2.2 ros2軟件源
先添加證書
sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
以上操作的本質是將ros.key這個文件下載并重命名為ros-archive-keyring.gpg到指定路徑下。
按照官方給的教程是這個地址,但這個地址國內大概率是訪問不了的,https://raw.githubusercontent.com,網上流傳的直接將域名和IP加到hosts文件中其實也不實用,這個地址無論是域名還是IP我們都不好訪問(國外地址)。
國內其實已經有人做好解決方案了,比如小魚的一鍵安裝,還有就是清華的解決方案,這里我們采用清華的軟件源。
sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://mirrors.tuna.tsinghua.edu.cn/rosdistro/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null
這里一定注意,[arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg]不要省略。完成以上操作后執行sudo apt update
試下,不報錯就是配好了。
3.安裝ros2
這里安裝的桌面版的,大概2G,也要注意ubuntu不同版本對應不同的ros2版本,不要強行安裝非官方指定對應版本,會很麻煩。
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
裝完后記得配置環境變量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
測試下
ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_cpp listener