安装mamba包管理
bash
conda install mamba -c conda-forge
创建虚拟环境
bash
conda create -n ros2_py310 python=3.10
conda activate ros2_py310
conda config --env --add channels conda-forge
conda config --env --add channels robostack-staging
conda config --env --remove channels defaults
安装ros2
bash
conda install ros-humble-desktop-full
conda install compilers cmake pkg-config make ninja colcon-common-extensions catkin_tools rosdep
测试安装结果
在命令行中运行可视化环境, 注意需要在ros2_py310激活时运行.
bash
rviz2
测试ros2节点通讯
分别打开两个终端来测试ros2的通讯.一个运行发布节点,一个运行订阅节点.
发布
bash
conda activate ros2_py310
ros2 run demo_nodes_cpp talker
运行后,终端不断打印
bash
[INFO] [1766329302.361840189] [talker]: Publishing: 'Hello World: 1'
[INFO] [1766329303.361709175] [talker]: Publishing: 'Hello World: 2'
订阅
bash
conda activate ros2_py310
ros2 run demo_nodes_cpp listener
运行后,终端会收到发布的信息.
如果想测试py节点,可以使用demo_nodes_py
可以使用ros2 node list, ros2 topic list, ros2 service list查看运行情况. 当这些命令发生问题时,可能是ros2的daemon没有启动. 可以尝试重启,如果重启后仍没解决,可以重启mac.
bash
ros2 daemon status
ros2 deamon stop
ros2 daemon start
在我的例子中,第一次安装ros2后, rviz2和talker都可以正常运行,但是listner 和topic,node检查运行后没有反应.
用ros2 node list等都没有反应,重启后发现daemon没有运行.手动运行后 ros2 node list, ros2 topic list都不卡死.
运行talker和listner后, node依然为空,topic也没有发生变化
如果在问题,可以尝试调整log等级查看问题.
ros2 run demo_nodes_cpp listener --ros-args --log-level debug