前置条件
机器人爬楼过程中,不可中断,不可将机器人切换为站立
机器人爬楼过程中,滑倒趴下,此时,需要人工将机器人搬至平整地面再控制机器人站立
采集楼梯点
RQT 【CHANGE_MAP,确定点位与所在实际楼层保持一致】
RQT 【CHANGE_MAP,确定点位与所在实际楼层保持一致】
准备工作:
RQT 采点
点击“Record Pose”按钮,记录当前机器人位置信息
鼠标按住CHANGE_MAP,将其拖入上图标注9位置处
命令采点-上楼
进入容器
sudo docker exec -it navigation bash
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'upstairs'
point_name: 'p1'
change_map: false
door: false"
ROBOT_NAME需要换成现场机器人的名字(在.env中查看)
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'upstairs'
point_name: 'p2'
change_map: false
door: false"
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'upstairs'
point_name: 'p3'
change_map: false
door: false"
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'upstairs'
point_name: 'p4'
change_map: false
door: false"
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'upstairs'
point_name: 'p5'
change_map: false
door: false"
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'upstairs'
point_name: 'p6'
change_map: true
door: false"
切换地图信息,注意:上楼梯时floor name(如果从1层到2层则填L2)
ros2 service call /ROBOT_NAME/stairs_map_info daystar_navigation_msgs/srv/StairsPointsMapInfo "floor_name: 'L2'
map_name: '0809-B1'"
RQT采点
打开RVIZ2 点击 3D Pose Estimate
按住鼠标左键,同时按住鼠标右键,向上拖动鼠标(绿色箭头叠加为机器人高度)
点击“Record Pose”按钮,记录当前机器人位置信息
鼠标按住CHANGE_MAP,将其拖入上图标注9位置处
命令采点-下楼
进入容器
sudo docker exec -it navigation bash
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'downstairs'
point_name: 'p7'
change_map: false
door: false"
ROBOT_NAME需要换成现场机器人的名字(在.env中查看)
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'downstairs'
point_name: 'p8'
change_map: false
door: false"
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'downstairs'
point_name: 'p9'
change_map: false
door: false"
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'downstairs'
point_name: 'p10'
change_map: false
door: false"
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'downstairs'
point_name: 'p11'
change_map: false
door: false"
ros2 service call /ROBOT_NAME/take_stairs_points daystar_navigation_msgs/srv/GenerateStairsPoints "upstairs: 'downstairs'
point_name: 'p12'
change_map: true
door: false"
切换地图信息,注意:下楼梯时floor name(如果从12层到1层则填L1)
ros2 service call /ROBOT_NAME/stairs_map_info daystar_navigation_msgs/srv/StairsPointsMapInfo "floor_name: 'L1'
map_name: '0809-B1'"
验证
下楼验证
确认机器人“机器人上楼采点示意”图所示33号点附近
ros2 service call /ROBOT_NAME/climb_stairs daystar_navigation_msgs/srv/Stairs "upstairs: 'downstairs'"
上楼验证
确认机器人“机器人上楼采点示意”图所示22号点附近
ros2 service call /ROBOT_NAME/climb_stairs daystar_navigation_msgs/srv/Stairs "upstairs: 'upstairs'"
注意事项
机器人爬楼异常
如上图,机器人自动爬楼过程中出现,左偏,右偏,撞墙等问题
拨动遥感,使其回到楼梯中间,并遥控机器人到平整地区
在L2重启了机器人
如果在L2重启了机器人
打开RVIZ2 点击 3D Pose Estimate
按住鼠标左键,同时按住鼠标右键,向上拖动鼠标(绿色箭头叠加为机器人高度)