mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1786 字
5 分钟
机器人操作手册
2026-07-09

机器人操作手册#

准备工作#

1. 连接键盘和显示屏#

  • 拿出键盘和显示屏

IMG_7069

  • 将键盘的转接器插入机器人侧面的接口(需要注意的是mini外部只有一个接口,要是想要连接需要打开顶板进行连接)

IMG_7071

2. 连接 HDMI#

  • 取下假负载,插入 HDMI 线

IMG_7070

3. 获取 IP 地址#

  • 当显示屏显示画面时,打开终端,输入以下命令:
    ifconfig

78359257613

4. 远程连接(Nomachine)#

  1. 打开 Nomachine 软件
  2. 在 Host 输入框中填入上一步获取的 IP 地址78359262779
  3. 建议将连接名称命名为机器人名称(便于区分)
  4. 首次连接时,会提示输入账号和密码,按图中所填写即可78359280130

到此准备工作完成

上机测试和使用#

TIP

本节所需要的bash脚本目录均存放在

你可以在 ~/robot- 内找到所有的command

机器人的所有操作逻辑都是,先建图,后标定点位,最后让机器人自主规划路径。算法部分已经给出,需要做的便是修改机器人的业务逻辑和执行这个逻辑。

W2A#

竞赛场地及说明#

W2A 竞赛场地

比赛例程使用说明#

比赛例程已经封装在一个单独的 ROS 功能包里,下面所有程序改动都在该功能包里修改:

W2A 功能包位置

IMPORTANT

开始建图前,要将机器人的位置在初始区摆正,不要倾斜,这个非常重要。

每步做完之后都需要关闭终端,然后重新打开新的终端。例如在建图完成后,需要关闭所有终端,不然记录坐标时会出现程序占用的情况,切记。

此外,在运行命令后要查看是否报错;如果有报错,一般会出现红色提示。

1. Gmapping 建图#

运行 9-cartographer_mapping.sh 文件,使用键盘控制机器人运动,对比赛场地进行建图,围绕场地转一圈即可。

建图完成后保存地图:

roslaunch robot_slam save_map.launch

代码示意:

Gmapping 建图

IMPORTANT

记录坐标前,也要将机器人的位置在初始区摆正,并注意观察地图是否倾斜。若地图斜了,需要调整机器人的摆放位置。

2. 记录坐标#

先运行 14-demo_clean_desktop.sh 启动比赛。

启动后先恢复机械臂的初始位置,然后在键盘控制模式下,操控机器人运动到桌子附近,使机器人摄像头视野内能够看到垃圾物料块。

这里需要满足两个条件:

  • 机械臂对准垃圾物料块。
  • 摄像头能够识别到垃圾物料块。

这一过程需要反复调试,是核心部分。可以在对准后按 a 进行模拟抓取,用来判断是否对准。

确认对准后,打开一个终端,输入:

rostopic echo /tracked_pose

Ctrl + C 停止后,将机器人的位置坐标和四元数值记录下来,作为导航目标点。

记录 tracked_pose

打开 home/magic_ws/src/demo_clean_desktop/scripts,找到 slam_task.py 文件:

slam_task.py 位置

将四元数转换为欧拉角:

四元数转欧拉角说明

可以在电脑上打开这个网站进行转换:

https://quaternions.online/

四元数转换网站 1 四元数转换网站 2

代码示意:

记录坐标后的代码修改

IMPORTANT

启动比赛前要将机器人的位置在初始区摆正,并注意观察地图是否倾斜;若斜了,需要调整机器人的摆放位置。

3. 开始比赛#

先输入 14-demo_clean_desktop.sh 启动比赛,再输入下面的命令开始比赛:

rostopic pub /slam_task std_msgs/String "data: 'desk_point1'"

开始比赛

核心代码#

  1. magic_ws/magic_ws/src/demo_clean_desktop/scripts/slam_task.py

    在 40-60 行中,记录着导航点和 home 点的坐标。

slam_task.py 关键位置

  1. magic_ws/magic_ws/src/demo_clean_desktop/scripts/clean_desk.py

    在 287-312 行中,封装了几个实用脚本。

clean_desk.py 关键位置

对应快捷键如下:

  • a:模拟抓取
  • s:机械臂复位
  • h
  • f:回 home 点
  • r:前往第一个桌子抓取垃圾
  • d:前往第二个桌子抓取垃圾
  1. magic_ws/magic_ws/src/demo_clean_desktop/scripts/clean_desk_robot.py

修改代码主要改这个文件。

263 到 357 行这里是执行抓取的逻辑。可以借助 AI 多阅读一下这个文件,理解其中的流程以及调试方法。

clean_desk_robot.py 抓取逻辑

4. 膨胀半径#

所在位置:

magic_ws/src/robot_slam/params/params_diff/costmap_common_params.yaml

膨胀半径位置

膨胀半径可以这样理解:障碍物在代价地图里不只是“占一个点”,而是会向四周“扩一圈危险区”。这个“扩多大”就是 inflation_radius,单位是米。

效果上:

  • 半径变大:机器人会更早绕开障碍,走得更保守,更不容易贴墙。
  • 半径变小:路径会更贴近障碍物,容易钻窄路,但更可能蹭到边。

可能遇到的情况以及修改代码建议#

1. 机器人打滑#

这个问题是 W2A 的老毛病,目前还没找到什么方法避免。

2. 机器人抓取物料块撞墙#

抓取撞墙相关代码

主要问题在这串代码。这里形成了硬编码,不太灵活。

forword 是前进,但是雷达识别到了之后本来会马上停止;加上后面这两行代码后,它会继续一直向前走,走 2.4 秒后停止,然后再调用 stop 函数停止。这就是容易撞墙的原因。

这会导致一种情况:点建近了,一定会撞;点建远了,又不一定能夹到。

调整办法是根据点位的远近来调整 sleep 的长短,近了就调小,远了就调大。

3. 机器人一直在规划路径#

即卡在某个地方不动,或者行走很卡顿。

可以按下面顺序排查:

  1. 先稍微调小膨胀半径;若无效果,再进行下一步。
  2. 在 Rviz 中观察,是否始终有一个障碍物在干扰路径规划与导航,而实际机器人附近并没有这个障碍。

关于激光雷达,需要特别注意的一点是:激光雷达容易受到机体支撑柱的干扰,产生拖尾效应,因此需要屏蔽指定角度的激光雷达数据,这部分需要在驱动中进行修改。

在系统中,找到 bluesea/launch 文件夹。文件夹内有各个不同构型的激光雷达启动 launch 文件。智行 W2A 使用的是 lidar_e200_w2a.launch

需要注意,MASK 下方有这些参数:

<rosparam param="mask1">[0.52,0.98]</rosparam>
<rosparam param="mask2">[-0.98,-0.52]</rosparam>
<rosparam param="mask3">[2.09,2.62]</rosparam>
<rosparam param="mask4">[-2.62,-2.09]</rosparam>

这几个数值就是激光雷达屏蔽的角度,单位为弧度。激光雷达旋转角度为 360 度,即 -pipimask 内代表的是该角度范围内的激光雷达数据,输出为 inf,也就是无效。

资源#

关于比赛代码和调试方法等,可以自行去厂商的百度网盘下载:

智行 W2A

演示视频#

W3S#

此机器人已无比赛可打。有兴趣的可以开机玩一玩,连接方式相同。

Mini#

部分信息可能已经过时

随机文章 随机推荐
暂无数据

目录