ros+arduino+树莓派+slam建图+路径规划

闲聊 · 2023-06-16

硬件:

树莓派3b,arduino开发板,霍尔ab电机,电机驱动模块,激光雷达

软件:

ros操作系统,ros_arduino_bridge软件包(包括ros端运行和下位机运行代码),雷达驱动,gmapping包,navigation包,map_server包

步骤:

1.下载ros_arduino_bridge包,配置开发环境(用来烧录程序到下位机)

具体安装步骤见下文

ros_arduino_bridge开发环境搭建

2.修改ros——arduino——bridge参数并编译进arduino(使得arduino可以正确的驱动电机,以及确定哪些引脚连接电机驱动板的哪里)

具体步骤见下文

arduino修改以适应自定义电机

note:这里面有几个小问题

  • 2—1.需要将arduino的IDE的串口监视器设置成如下格式

请输入图片描述

  • 2-2.上文提到的添加xxxx内容,这里的添加位置是
    请输入图片描述
  • 2-3.记好你设置的引脚,那个是pwm,那个是控制器
    请输入图片描述
  • 2-4.还有一点,上文设置的的时候我以为最后 #define L298P_MOTOR_DRIVER是把 #define L298_MOTOR_DRIVER前面的注释取消,谁知道他两个不一样

3.树莓派ros系统安装

首先下载一个ubuntu的系统(注意:系统不能是20.4,因为不支持ros-arduino-bridge)
链接如下:
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/releases/bionic/release/ubuntu-18.04.6-server-arm64.iso
推荐使用下面的软件烧录

请输入图片描述

安装完成后安装桌面

sudo apt install xubuntu-desktop

接着安装ros系统,请看我的另一篇文章

链接

安装完成后配置一下主从机模式(比如:主机运行ros,从机运行rviz)

4.雷达驱动和电机驱动(编译,测试)

雷达驱动的安装可以看我的文章

链接

电机驱动看下面的文章

链接

note:在从机(你的电脑)里打开rviz,看一下包不报错,一般报错有以下几种

  • 4-1.no encode count 2 ----这个是你arduino烧录的程序没有配置好
  • 4-2.pkg configue not found "xxx_xxx" ---这个是你没有安装对应的软件包,输入以下命令
    sudo apt install ros-<你的ros版本>-xxx-xxx
  • 4-3.not found xxx.h --这个是由于你没有msg生成的xxx.h文件运行以下命令
catkin_make --pkg xxx(这个xxx是你msg的软件包)
之后
catkin_make

5.tf坐标变换(这一步是因为雷达数据和电机数据相互独立,要将他们结合起来)

见下文
链接

6.设置gmapping功能包(绘制地图)

见下文
链接

7.move_base路径规划(规划小车路径)

见下文
链接

Theme Jasmine by Kent Liao