以 ROS 1(如 Noetic 版本)为例
1.ROS 的安装
可以使用鱼香ros的一键安装
每次打开终端时,需先加载 ROS 环境变量:
source /opt/ros/noetic/setup.bash # Noetic版本,其他版本替换为对应名称(如melodic)
或者添加到~/.bashrc(参考阿杰ros)
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
2. 创建并编译工作空间
# 创建工作空间目录
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
# 编译工作空间(首次编译会生成devel和build文件夹)
catkin_make
在src目录下放源代码
3. 启动 ROS 核心服务(roscore)
ROS 节点需要通过核心服务(roscore)进行通信,必须先启动:
roscore
保持该终端运行,不要关闭。
4. 运行 ROS 节点
使用 rosrun 运行单个节点
语法:rosrun <包名> <节点名>
例子:rosrun turtlesim turtlesim_node
使用 roslaunch 批量启动节点
语法:roslaunch <包名>
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
5. 验证运行状态
打开新终端,使用以下命令检查节点、话题等是否正常:
查看活跃节点:rosnode list查看话题列表:rostopic list查看节点关系图:rqt_graph
查询节点基本信息(发布 / 订阅的话题),例如:
rosnode info /mqtt_navigation_receiver_78408_1754357880079
查看节点发布的消息/查看节点订阅的消息,例如:
rostopic echo /navigation/command
watch -n 0.1 "rostopic echo /navigation_status -n 1"
查看话题的发布频率(节点每秒发送多少次消息):
rostopic hz /navigation/command
6. 停止 ROS 运行
关闭节点:在运行节点的终端按 Ctrl+C。停止 roscore:在启动 roscore 的终端按 Ctrl+C。
7.机械臂控制
调用节点:
rostopic echo /arm_drive
watch -n 0.1 "rostopic echo /arm_status -n 1"
夹取/释放:rostopic pub /arm_drive imrobot_msg/ArmDrive "{x: -92.346, y: -50.122, z: -53.531, rx: 17.066, ry: 89.044, rz: 0}"
搬运:rostopic pub /arm_drive imrobot_msg/ArmDrive "{x: -88.396, y: 39.867, z: -100.611, rx: -7.378, ry: 89.048, rz: 0}"
8.MQTT调试
mosquitto_pub -h 127.0.0.1 -p 1883 -t "robot/navigation/gooffice" -m '{"x": 1.0, "y": 2.0, "yaw": 0.0, "command": 2}'
9.关于mosquitto服务器
systemctl status mosquitto #检查服务器状态