无人清洁车

ROS基础知识

roslaunch命令

命令格式

1
roslaunch  功能包名称  launch文件 [参数设置(arg:=value)]

  这里roslaunch命令会在对应的功能包中找到名称匹配的launch文件,并执行这个launch文件。如果设置了参数的话,会将参数传入到launch文件中赋给对应的参数。

功能及作用

  roslaunch可以运行多个节点。并且roslaunch命令在运行节点时,还可以附加一些ROS命令选项,比如修改参数或节点的名称,设置节点的命名空间,设置ROS_ROOTROS_PACKAGE_PATH,以及环境变量修改等选项的ROS命令。

rosrun命令

命令格式

1
rosrun 功能包名称 节点名称

功能及作用

  rosrun是执行指定的功能包中的一个节点的命令。

rostopic

命令格式

1
rostopic pub 话题名称 消息类型 参数

功能及作用

  rostopic向正在广播的话题发布数据消息。

使用步骤

1.打开电源,启动Ubuntu系统,连接工控机局域网/外接路由器。

  工控机局域网为:Wideora-5f92
注:挪动清洁车时,一定要打开电源,小距离移动除外。

2.手推/键盘操作移动清洁车,移动区域覆盖目标区域。

ROS命令:

1
roslaunch anbot_bringup anbot_bringup.launch

启动键盘ROS命令:

1
rosrun teleop_twist_keyboard teleop_twist_keyboard.py

  实际建图时,可以通过Rviz观察当前建图信息,并调整清洁车位置。
data
  彩色表示当前激光雷达扫描区域,黑色表示墙等障碍物,灰白色表示空白作业区域。外圈白色线条状表示因地面等其他因素激光照射出去的范围。

3.保存地图,人工修图。

ROS命令:

1
rostopic pub /robot_map_save std_msgs/String "data:  ''"

  注:实际操作时,按Tab键自动补全。
  图片位于

1
SweepRobotManger/robot/install/share/robot_config/map/sweepmap.jpg

  注:mapsweepmap是导航实际用的地图,mymap是导航时可视化界面rviz中的地图。

  未修之前地图:
data
  修图工具:Pinta,功能界面类似于画图,普通画图编辑器。
data
  修图目标:1.确保场景为封闭环境。2.确保边界清晰。3.确保作业区域无杂质。
  操作方法:使用画笔工具添加或加粗边界,使用橡皮擦工具清除杂质。
  修改之后地图:
data

4.启动导航,手动定位。

ROS命令:

1
roslaunch anbot_bringup anbot_navigation.launch

  注:启动前按住急停按钮,确保清洁车不能移动,定位后在按下急停按钮,使其作业。
  启动该命令后,自动进入Rviz界面,手动调整机器人位姿,使其在正确的地图位置中。
  定位校准前:
data
  具体操作:点击2D Pose Estimate,拖动鼠标,确定方向,使激光雷达扫描区域(彩色区域)和实际地图中墙壁重合。
  定位校准后:
data
  注:绿色线条区域为导航算法自动生成。红色为机器人位置。

5.自动导航,启动刷盘等,开始作业。

ROS命令:

1
rostopic pub /agent anbot_msgs/Agent "{太多了 不一一写了,tab补全即可}"

  通过键盘将brushUpDownsqueegeUpDown数值改为1即可。
  注:启动该命令前,确保清洁车处于急停不可移动状态。

附录

调整激光雷达参数

  目前清洁车搭载的激光雷达型号为sick激光雷达,具体型号有561,571等。其中561款的射程为10米,571款的射程为25米。两款型号不一致,IP端口、参数配置也不一样。

硬件配置

  需要更改其IP地址,目前清洁车局域网内,激光雷达的IP地址为192.168.8.100。具体方法参考博客:地址

软件配置

  在/share/sick_tim/launch文件夹中找到571的配置文件,将range_max参数更改为相应的射程。
  在/share/robot_config/slam_config找到gmapping_param.yaml配置文件,将maxRange参数更改为相应的射程。

谢谢老板!
-------------本文结束感谢您的阅读给个五星好评吧~~-------------