跳转至

ROS 2控制与感知:让机器人动得了、看得见

机器人ROS 2底盘驱动开发

键盘控制

# 启动机器人底盘节点originbot_base 
$ ros2 launch originbot_bringup originbot.launch.py 
# 启动键盘控制节点 
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard 

机器人状态的动态监控

6.2.4 机器人状态的动态监控

订阅originbot_status话题

$ ros2 topic echo /originbot_status 

控制蜂鸣器

## 打开蜂鸣器 
$ ros2 service call /originbot_buzzer originbot_msgs/srv/OriginbotBuzzer "'on': true"    
## 关闭蜂鸣器 
$ ros2 service call /originbot_buzzer originbot_msgs/srv/OriginbotBuzzer "'on': false"  

LED与POD参数调节

## 打开LED 
$ ros2 service call /originbot_led originbot_msgs/srv/OriginbotLed "'on': true"    
## 关闭LED  
$ ros2 service call /originbot_led originbot_msgs/srv/OriginbotLed "'on': false"    
## 设置左轮的PID控制参数 
$ ros2 service call /originbot_left_pid originbot_msgs/srv/OriginbotPID "{'p': 10, 'i': 0, 
'd': 0.1}" 
## 设置右轮的PID控制参数 
$ ros2 service call /originbot_right_pid originbot_msgs/srv/OriginbotPID "{'p': 10, 'i': 0, 
'd': 0.1}" 

机器人运动编程与可视化

ROS 2速度控制消息定义

6.3.1 ROS 2速度控制消息定义

$ ros2 interface show geometry_msgs/msg/Twist 
$ ros2 topic pub --rate 1 /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.2, y: 0.0, z: 0.0}, 
angular: {x: 0.0, y: 0.0, z: 0.8}}"

运动编程与可视化

6.3.2 运动编程与可视化

$ ros2 run originbot_demo draw_circle

相机驱动与图像数据

相机驱动与可视化

6.4.2 相机驱动与可视化

$ sudo apt install ros-jazzy-usb-cam

安装完成后,就可以使用以下命令驱动笔记本电脑上的相机。

$ ros2 run usb_cam usb_cam_node_exe

运行成功后可以使用ROS 2 Qt工具箱中的rqt_image_view查看图像数据。

$ ros2 run rqt_image_view rqt_image_view

在某些情况下,可能需要订阅多个图像数据,那么也可以使用usb-cam功能包提供的另一种启动方式。

$ ros2 launch usb_cam camera.launch.py  

ROS 2图像消息定义

6.4.3 ROS 2图像消息定义

$ ros2 topic info -v /image_raw 
$ ros2 interface show sensor_msgs/msg/Image 

三维相机驱动与可视化

6.4.4 三维相机驱动与可视化

SDK安装完成后 就可以继续安装RealSense的ROS 2驱动包了。

$ sudo apt install ros-jazzy-realsense2-* 
安装成功后,使用以下命令启动RealSense相机驱动节点。
$ ros2 launch realsense2_camera rs_launch.py 

ROS 2点云消息定义

6.4.5 ROS 2点云消息定义

$ ros2 interface show sensor_msgs/msg/PointCloud2

激光雷达驱动与可视化

ROS 2雷达消息定义

6.5.2 ROS 2雷达消息定义

$ ros2 interface show sensor msgs/msg/LaserScan

激光雷达驱动与数据可视化

6.5.3 激光雷达驱动与数据可视化

$ ros2 launch originbot_bringup originbot.launch.py use_lidar:=true 
$ ros2 topic echo /scan 

IMU驱动与数据可视化

ROS 2 IMU消息定义

6.6.1 ROS 2 IMU消息定义

$ ros2 interface show sensor_msgs/msg/Imu
$ ros2 launch originbot_bringup originbot.launch.py use_imu:=true 

在同一网络中的计算机端,通过以下命令安装RViz的IMU插件。

$ sudo apt install ros-jazzy-rviz-imu-plugin

图片1