多机控制

在使用多机控制前需要配置ros2多机通信功能。

下面以两台AGV Pro为例。在正式运行前,先确保两台机器和笔记本电脑能够互相通信。既同一局域网内。

注意事项 1.电脑需要装Ubuntu 22.04、ros2 2.如果使用虚拟机,则需要设置虚拟机的网络配置,电脑虚拟机设置-网络适配器-网络连接-桥接模式:直接连接物理网络

电脑    192.168.123.68
AGV Pro1  192.168.123.3
AGV Pro2  192.168.123.42

三台设备设置~/.bashrc 文件,添加下面两个参数,设置

export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
export ROS_DOMAIN_ID=1

三台设备即可在ros2下进行多机通信。关于ros2 dds通信中间件的更多信息,可以查看此处

启动多机控制

1.修改~/agv_pro_ros2/src/Lslidar_ROS2_driver/lslidar_driver/params/lidar_uart_ros2/lsn10p.yaml文件,增加agv_pro1:

1

注意缩进格式

agv_pro1:
  lslidar_driver_node:
    ros__parameters:
      frame_id: laser_link                                    #激光坐标
      group_ip: 224.1.1.2
      add_multicast: false
      device_ip: 192.168.1.200                                   #雷达源IP
      device_ip_difop: 192.168.1.102                          #雷达目的ip
      msop_port: 2368                                         #雷达目的端口号
      difop_port: 2369                                        #雷达源端口号
      lidar_name: N10_P                                       #雷达选择:M10 M10_P M10_PLUS M10_GPS N10 L10 N10_P
      angle_disable_min: 0.0                                  #角度裁剪开始值
      angle_disable_max: 0.0                                  #角度裁剪结束值
      min_range: 0.2                                          #雷达接收距离最小值
      max_range: 200.0                                        #雷达接收距离最大值
      use_gps_ts: false                                       #雷达是否使用GPS授时
      scan_topic: /scan                                       #设置激光数据topic名称
      interface_selection: serial                             #接口选择:net 为网口,serial 为串口。
      serial_port_: /dev/agvpro_lidar                         #串口连接时的串口号
      high_reflection: false                                  #M10_P雷达需填写该值,若不确定,请联系技术支持。
      compensation: false                            #M10系列是否使用角度补偿功能
      pubScan: true                                           #是否发布scan话题
      pubPointCloud2: false                                   #是否发布pointcloud2话题
      pointcloud_topic: /lslidar_point_cloud                  #设置激光数据topic名称
  #    pcap: /home/ls/1.pcap                                  #雷达是否使用pcap包读取功能
  #    in_file_name: /home/ls/1.txt                           #雷达是否使用txt文件读取功能

例如

第一台AGV Pro,就改成agv_pro1:
第二台AGV Pro,就改成agv_pro2:

2.然后执行下面指令,编译激光雷达功能包,编译后记得source工作空间

cd agv_pro_ros2/
colcon build --packages-select lslidar_driver
source ~/agv_pro_ros2/install/local_setup.bash

2

3.启动里程计和激光雷达节点

在启动时agv_pro_bringup.launch.py,增加namespace:=参数,区分AGV Pro

第一台AGV Pro,启动指令:ros2 launch agv_pro_bringup agv_pro_bringup.launch.py namespace:=agv_pro1
第二台AGV Pro,启动指令:ros2 launch agv_pro_bringup agv_pro_bringup.launch.py namespace:=agv_pro2

3

4.电脑启动键盘控制节点

电脑需要下载键盘功能包

sudo apt-get install ros-humble-teleop-twist-keyboard

启动键盘控制节点

ros2 run teleop_twist_keyboard teleop_twist_keyboard

4

确保鼠标点击选中该终端,这样键盘控制才能控制AGV Pro。

注意事项: 1.为了避免造成机器损坏,运动前确保AGV Pro不会撞到其他物体 2.在运动过程中,AGV Pro ros2的键盘控制需要按下键盘'k'才能让AGV Pro停止运动。

---------------------------
Moving around:
   u    i    o
   j    k    l
   m    ,    .

For Holonomic mode (strafing), hold down the shift key:
---------------------------
   U    I    O
   J    K    L
   M    <    >

t : up (+z)
b : down (-z)

anything else : stop

q/z : increase/decrease max speeds by 10%
w/x : increase/decrease only linear speed by 10%
e/c : increase/decrease only angular speed by 10%

CTRL-C to quit

currently:    speed 0.25    turn 0.5
按键 按键描述
i 向前移动
, 向后移动
j 原地逆时针旋转
l 原地顺时针旋转
u 左转弯前进
o 右转弯前进
k 停止移动
m 左转弯后退
. 右转弯后退
I 向前移动
< 向后移动
J 向左平移
L 向右平移
U 向左45°斜向前行
O 向右45°斜向前行
M 向左45°斜向后退
> 向右45°斜向后退
q 提高线速度和角速度
z 降低线速度和角速度
w 提高线速度
x 降低线速度
e 增加角速度
c 降低角速度

同时可以终端输入rqt_graph查看节点信息,在同一局域网内,agv_pro1和agv_pro2同时接收笔记本发布/cmd_vel话题,实现多机控制功能。

5


← 上一页 | 下一页 →

results matching ""

    No results matching ""