版本
目前官方推荐的 ROS 2 版本与 Ubuntu 版本是严格对应的,不同 ROS 2 发行版只支持特定的 Ubuntu 版本。
ROS 2 发行版 | 支持的 Ubuntu 版本 |
---|---|
Foxy Fitzroy | Ubuntu 20.04 LTS |
Galactic Geochelone | Ubuntu 20.04 LTS |
Humble Hawksbill | Ubuntu 22.04 LTS |
Iron Irwini | Ubuntu 22.04 LTS |
Jazzy Jalisco | Ubuntu 22.04 LTS |
Reachy Mini 官方 GitHub 上的 reachy2_emotions、reachy-sdk 以及仿真环境示例,大多是基于 ROS 2 Humble + Ubuntu 22.04 进行开发的。
安装ROS2
添加源
$ echo "deb [arch=$(dpkg --print-architecture)] https://repo.huaweicloud.com/ros2/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
添加源对应的秘钥
$ sudo apt install curl gnupg2 -y
$ curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
更新
$ sudo apt update
安装ROS2
$ sudo apt install ros-humble-desktop
配置环境变量
$ ros2
ros2: command not found
$ source /opt/ros/humble/setup.bash
$ ros2
usage: ros2 [-h] [--use-python-default-buffering] Call `ros2 <command> -h` for more detailed usage. ...
ros2 is an extensible command-line tool for ROS 2.
options:
-h, --help show this help message and exit
--use-python-default-buffering
Do not force line buffering in stdout and instead use the python default buffering, which might be affected by PYTHONUNBUFFERED/-u
and depends on whatever stdout is interactive or not
Commands:
action Various action related sub-commands
bag Various rosbag related sub-commands
component Various component related sub-commands
daemon Various daemon related sub-commands
doctor Check ROS setup and other potential issues
interface Show information about ROS interfaces
launch Run a launch file
lifecycle Various lifecycle related sub-commands
multicast Various multicast related sub-commands
node Various node related sub-commands
param Various param related sub-commands
pkg Various package related sub-commands
run Run a package specific executable
security Various security related sub-commands
service Various service related sub-commands
topic Various topic related sub-commands
wtf Use `wtf` as alias to `doctor`
Call `ros2 <command> -h` for more detailed usage.
ros2加入bashrc
$ echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
ROS2 安装目录
$ cd /opt/ros/humble/
robot@robot-VirtualBox:/opt/ros/humble$ ls
bin include local local_setup.sh local_setup.zsh setup.bash setup.zsh src
cmake lib local_setup.bash _local_setup_util.py opt setup.sh share tools
测试ROS2
Listener & Talker
启动Listener
下面的日志只有在Talker启动之后才会有
$ ros2 run demo_nodes_py listener
[INFO] [1754626218.811253482] [listener]: I heard: [Hello World: 1]
[INFO] [1754626219.785175049] [listener]: I heard: [Hello World: 2]
[INFO] [1754626220.783907744] [listener]: I heard: [Hello World: 3]
[INFO] [1754626221.783766487] [listener]: I heard: [Hello World: 4]
[INFO] [1754626222.783233217] [listener]: I heard: [Hello World: 5]
[INFO] [1754626223.783616866] [listener]: I heard: [Hello World: 6]
[INFO] [1754626224.784847427] [listener]: I heard: [Hello World: 7]
[INFO] [1754626225.783966946] [listener]: I heard: [Hello World: 8]
[INFO] [1754626226.783729145] [listener]: I heard: [Hello World: 9]
启动Talker
另起一个终端
$ ros2 run demo_nodes_cpp talker
[INFO] [1754626218.783679400] [talker]: Publishing: 'Hello World: 1'
[INFO] [1754626219.781620882] [talker]: Publishing: 'Hello World: 2'
[INFO] [1754626220.781182900] [talker]: Publishing: 'Hello World: 3'
[INFO] [1754626221.781479093] [talker]: Publishing: 'Hello World: 4'
[INFO] [1754626222.780757923] [talker]: Publishing: 'Hello World: 5'
[INFO] [1754626223.780789074] [talker]: Publishing: 'Hello World: 6'
涂鸦乌龟
启动海龟模拟器
$ ros2 run turtlesim turtlesim_node
启动海龟遥控器
$ ros2 run turtlesim turtle_teleop_key
Reading from keyboard
---------------------------
Use arrow keys to move the turtle.
Use G|B|V|C|D|E|R|T keys to rotate to absolute orientations. 'F' to cancel a rotation.
'Q' to quit.