ROS基础知识
roslaunch命令
命令格式
1 | roslaunch 功能包名称 launch文件 [参数设置(arg:=value)] |
这里roslaunch
命令会在对应的功能包中找到名称匹配的launch
文件,并执行这个launch
文件。如果设置了参数的话,会将参数传入到launch
文件中赋给对应的参数。
功能及作用
roslaunch
可以运行多个节点。并且roslaunch
命令在运行节点时,还可以附加一些ROS
命令选项,比如修改参数或节点的名称,设置节点的命名空间,设置ROS_ROOT
及ROS_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
观察当前建图信息,并调整清洁车位置。
彩色表示当前激光雷达扫描区域,黑色表示墙等障碍物,灰白色表示空白作业区域。外圈白色线条状表示因地面等其他因素激光照射出去的范围。
3.保存地图,人工修图。
ROS命令:1
rostopic pub /robot_map_save std_msgs/String "data: ''"
注:实际操作时,按Tab
键自动补全。
图片位于1
SweepRobotManger/robot/install/share/robot_config/map/sweepmap.jpg
注:map
中sweepmap
是导航实际用的地图,mymap
是导航时可视化界面rviz
中的地图。
未修之前地图:
修图工具:Pinta
,功能界面类似于画图
,普通画图编辑器。
修图目标:1.确保场景为封闭环境。2.确保边界清晰。3.确保作业区域无杂质。
操作方法:使用画笔工具添加或加粗边界,使用橡皮擦工具清除杂质。
修改之后地图:
4.启动导航,手动定位。
ROS命令:1
roslaunch anbot_bringup anbot_navigation.launch
注:启动前按住急停按钮,确保清洁车不能移动,定位后在按下急停按钮,使其作业。
启动该命令后,自动进入Rviz
界面,手动调整机器人位姿,使其在正确的地图位置中。
定位校准前:
具体操作:点击2D Pose Estimate
,拖动鼠标,确定方向,使激光雷达扫描区域(彩色区域)和实际地图中墙壁重合。
定位校准后:
注:绿色线条区域为导航算法自动生成。红色为机器人位置。
5.自动导航,启动刷盘等,开始作业。
ROS命令:1
rostopic pub /agent anbot_msgs/Agent "{太多了 不一一写了,tab补全即可}"
通过键盘将brushUpDown
和squeegeUpDown
数值改为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
参数更改为相应的射程。