ROS机器人应用(6)—— 激光雷达建图和导航

一、激光雷达建图

  1. 小车开机,连接WIFI,密码:dongguan。
  2. 启动激光建图(服务端)
ssh -Y wheeltec@192.168.0.100
roslaunch turn_on_wheeltec_robot mapping.launch 

在这里插入图片描述

  1. 查看建图效果(客户端)
rviz

可以使用键盘控制、APP遥控、PS2遥控、航模遥控进行控制小车运动。
在这里插入图片描述

在这里插入图片描述

  1. 建图完成,保存地图 (服务端)
    保存方法1:
# 一键保存
roslaunch turn_on_wheeltec_robot map_saver.launch 

在这里插入图片描述

保存方法2:

# 打开地图路径
cd /home/wheeltec/wheeltec_robot/src/turn_on_wheeltec_robot/map
# 保存地图
rosrun map_server map_saver -f 地图名
  1. 文件挂载,查看地图
# 文件挂载
sudo mount -t nfs 192.168.0.100:/home/wheeltec/wheeltec_robot /mnt

在这里插入图片描述

注:地图文件可以使用PhotoShop进行编辑

建图
mapping.launch
小车初始化节点:turn_on_wheeltec_robot.launch
雷达节点:rplidar.launch
gmapping建图节点:algorithm_gmapping.launch

二、建图算法切换及其优缺点

  • 连接小车wifi

  • 文件挂载后,建图算法的切换

sudo mount -t nfs 192.168.0.100:/home/wheeltec/wheeltec_robot /mnt

mapping.launch 修改mapping_model 的default值
在这里插入图片描述

  • 并进行SSH登录, 并启动建图算法。
ssh -Y wheeltec@192.168.0.100
  • gmapping
    目前比较常用的建图算法。构建大地图时所需内存和计算量都会增加,因此
    不适合构建大场景地图。因为没有回环检测,所以在回环闭合时可能会造成地图错位。
    在这里插入图片描述
  • hector
    不需要里程计,人抱着小车走也可以建图。效果不如gmapping,适合因条
    件限制没有里程计的机器人。
    在这里插入图片描述

建图时转向速度尽量缓慢,建议0.1rad/s 以下。

  • cartographer
    直接订阅odom,不需要robot_pose_ekf。其tf 发布频率200HZ 大于
    robot_pose_ekf 的20HZ,robot_pose_ekf 发布的tf 会被覆盖。
    在这里插入图片描述
  • karto
    与gmapping 差不多,更适合用于创建大地图,同时其地图刷新比较慢。
    在这里插入图片描述

三、自主导航

1.小车开机,连接WIFI,密码:dongguan

2.SSH远程登录:ssh wheeltec@192.168.0.100,密码:dongguan

3.把小车放置在地图起点/rviz手动设置起点

4.运行导航(服务端):
roslaunch turn_on_wheeltec_robot navigation.launch

5.运行rviz(客户端):
rviz

6.使用rviz的2DNavGoal功能

小车不运动同时没有路径规划显示:检查.bashrc文件ip地址()


额外补充和launch文件讲解

1.地图文件

2.手动发布目标点
rostopic pub /move_base_simple/goal
四元数
x = ax * sin(theta/2)
y = ay * sin(theta/2)
z = 1* sin(180°/2) =1
w = cos(180°/2) =0

3.navigation.launch


整体导航工作原理与参数配置讲解
navigation_stack

四、多点导航

1.小车开机,连接WIFI,密码:dongguan

2.SSH远程登录:ssh wheeltec@192.168.0.100,密码:dongguan

3.把小车放置在地图起点或者rviz手动设置起点

4.运行导航(服务端):
roslaunch turn_on_wheeltec_robot navigation.launch

5.运行rviz(客户端):
rviz

6.rviz添加path_ponit(MarkerArray数据格式)话题订阅,进行可视化

7.使用rviz的Publish Point功能

基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明,个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业,代码资料完整,下载可用。 基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷达+小车+IMU 的 SLAM、定位、路径规划基于C++实现源码+说明基于ROS实现的激光雷
### 使用ROS进行机器人小车SLAM #### 启动激光雷达 为了使机器人能够感知周围环境并构,首先需要启动激光雷达设备。这通常通过特定的驱动程序完成,在终端中输入命令来加载相应的节点[^1]。 ```bash roslaunch hokuyo_node hokuyo_test.launch ``` 此命令会激活 Hokuyo 激光扫描仪,并发布 `/scan` 主题上的距离测量数据流给其他订阅者使用。 #### 集成雷达传感器到模型 对于模拟环境中使用的虚拟小车而言,则需编辑其描述文件(通常是 `.xacro` 文件),加入雷达组件定义以及相应参数设置部分;之后调整 `launch` 文件确保这些改动生效[^2]。 ```xml <!-- 添加Laser Sensor --> <joint name="laser_joint" type="fixed"> <origin xyz="0.1 0 0.2" rpy="0 0 0"/> <parent link="base_link"/> <child link="hokuyo_link"/> </joint> <link name="hokuyo_link"> <!-- 描述Hokuyo Laser几何形状其他属性 --> </link> <!-- 修改Launch File以包含新添加的内容 --> <include file="$(find my_robot)/launch/sensors.launch"/> ``` #### 执行激光 SLAM 流程 一旦硬件连接正常工作或仿真平台已准备好,就可以着手于执行实际的地过程: - 开启 SLAM 功能:利用预设好的 launch 文件一键开启整个流程。 ```bash roslaunch gmapping slam_gmapping_pr2.launch ``` 上述指令将会初始化 GMapping 节点以及其他必要的支持模块,如 TF 变换树维护器等。 - 小车自主探索未知区域的同时不断更新内部表示的地结构,直到覆盖所有可访问空间为止。 - 导航与避障功能允许车辆安全地穿梭其间而不发生碰撞事故。 #### 地保存及后续处理 当认为已经获得满意的拓扑关系表达形式后,可以将其持久化存储下来供日后重访之用: ```bash rosrun map_server map_saver -f ~/my_map ``` 该操作会在指定路径下生成两个文件——一个是二进制格式的地(`*.pgm`) ,另一个则是对应的 YAML 格式的元信息文档(`*.yaml`) [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zyw2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值