ROS
官网: https://www.ros.org/ROS
中文官网:http://wiki.ros.org/cn/不同的 ROS
版本所需的 ubuntu
版本不同,每一版 ROS
都有其对应版本的 Ubuntu
,切记不可随便安装。
具体可看 ROS
官网 https://wiki.ros.org/ROS/Installation
Ubuntu 20.04
ROS
版本 ROS noetic
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 update
在这里可以选择完整版,这样就可以将 ROS
、rqt
、rviz
、机器人通用库、2D/3D
仿真器、导航、2D/3D
感知等功能一次性安装完成。
sudo apt install ros-noetic-desktop-full
在开始使用 ROS
之前,还需要安装 rosdep
,rosdep
是 ROS
一些核心组件的运行基础,会在编译 ROS
源码时检查和安装程序包依赖。
sudo rosdep init
执行完成如下图提示命令进行更新
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run
rosdep update
在当前用户目录下生成 .ros
目录,该目录下保存着日志文件和测试结果文件。
rosdep update
有如下打印说明更新成功
$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
...
updated cache in /home/xxx/.ros/rosdep/sources.cache
如果有以下错误发生
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
ERROR: error loading sources list:
('The read operation timed out',)
请参考 rosdep update — The read operation timed out 解决方法
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
到这里 ROS
的安装已经完成,可以通过下面命令查看 ROS 环境变量。
sudo print env | grep -i ros
至此,ROS
的核心程序包就安装好了,为了构建和管理开发者自己的 ROS
工作空间,我们还需要再安装一些 ROS
依赖的包。
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
至此 ROS
的安装已经完成,为了验证安装是否成功,我们接着需要测试一下。
$ rosversion -d
noetic
输入命令
$ roscore
输出打印
... logging to /home/xxx/.ros/log/02ee2bec-e7d5-11ec-b050-00e070ce7d11/roslaunch-jetty-pc-12973.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://jetty-pc:46029/
ros_comm version 1.14.13
SUMMARY
========
PARAMETERS
* /rosdistro: noetic
* /rosversion: 1.14.13
NODES
auto-starting new master
process[master]: started with pid [12993]
ROS_MASTER_URI=http://jetty-pc:11311/
setting /run_id to 02ee2bec-e7d5-11ec-b050-00e070ce7d11
process[rosout-1]: started with pid [13004]
started core service [/rosout]
再另外打开一个终端,然后执行如下命令
$ rosrun turtlesim turtlesim_node
输出打印
[ INFO] [1654766990.824376259]: Starting turtlesim with node name /turtlesim
[ INFO] [1654766990.832467864]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
此时会出现一个新的窗口,此时的小乌龟是禁止不动的。
我们再打开一个终端,执行如下命令
$ rosrun turtlesim turtle_teleop_key
输出打印
Reading from keyboard
---------------------------
Use arrow keys to move the turtle. 'q' to quit.
以上内容的大概意思是我们可以用键盘控制小海龟进行移动,我们在这个终端按键盘上的“上、下、左、右”键,此时发现小海龟也在移动。
需要注意的是:鼠标需要选中的是终端的窗口,不是可视化的界面窗口,否则操作不起作用。
我们再打开一个终端,运行以下命令,
$ rqt_graph