1.树莓派4b+ubuntu18.04(ros版本melodic)+arduino mega自制两轮差速小车,实现建图导航功能

第一篇先介绍材料准备、环境配置和ros的安装

1.材料准备

1.树莓派4b,8g版本

2.arduino mega

3.MG310编码电机*2

4.雷达ydlidar X3

5.Tb6612电机驱动板

6.12v电池

7.ubuntu18.04+ros melodic版本

2.环境配置

树莓派安装ubuntu18.04版本

ubuntu18.04版本的镜像可以到官网下载,需要注意的是虚拟机使用的镜像后缀是.iso,树莓派使用的镜像是.img

下载链接: https://pan.baidu.com/s/1uEpgTqhBcbfkRSCyFHRXkQ?pwd=6666提取码:6666

然后使用树莓派镜像烧录器

下载地址:https://www.raspberrypi.com/software/

这里注意检查烧录的镜像后缀是不是.img

然后配置一下自己的网络,点击烧录

烧录完成后,做进一步配置。

添加启动文件,修改网络密码

烧写完系统后,打开boot文件夹,network-config,这个是烧好ubuntu系统之后自带的网络配置文件,只需要将阴影部分(图中15-21行)的注释去掉,并填入你自己的wifi信息,保存即可。

修改network-config文件

这里有两点需要注意:

1.在填写wifi名的时候,如果你的wifi名中没有空格,在填写时不要加双引号

只有当你的wifi名中有空格,才需要加双引号

2.注意一下每行之间的缩进,需要缩进时是两个空格,不要用Tab代替

保存后把内存卡插到树莓派板子上,即可在热点或者路由器后台中看到多了一个设备

复制一下代码,修改成自己的wifi名称和密码

xml 复制代码
version: 2
ethernets:
  eth0:
    dhcp4: true
    optional: true
wifis:
 wlan0:
   dhcp4: true   #注意冒号后面需要带有空格
   optional: true
   access-points:
     Forpi:#修改成自己的wifi名称
       password: "5201314520"#修改成自己的wifi密码
#      myotherlan:
#        password: "correct battery horse staple"
#      workssid:
#        auth:
#          key-management: eap
#          method: peap
#          identity: "me@example.com"
#          password: "passw0rd"
#          ca-certificate: /etc/my_ca.pem

设置好之后重启树莓派就可以连接wifi了

如果在启动树莓派时遇到下面的报错提示,表示缺少启动文件

xml 复制代码
$ start4.elf: is not compatible
$ This board requires newer software

需要在github上面下载最新的启动文件来替换旧的启动文件

地址:https://github.com/raspberrypi/rpi-firmware

把下图 .dat和 .elf 共16个文件复制替换掉TF卡上面的文件即可。

然后重启树莓派

安装ubuntu桌面

使用ROS的rviz, gazebo等仿真工具,需要桌面图形环境。

bash 复制代码
sudo apt-get upgrade

安装ubuntu桌面

bash 复制代码
sudo apt-get install ubuntu-desktop

关机重启就完成了

bash 复制代码
sudo reboot

下一步进行安装ROS

我们使用鱼香ros的一键安装ros

bash 复制代码
wget http://fishros.com/install -O fishros && . fishros

按照提示,建议先更换国内镜像源。

然后进行测试

打开终端输入

bash 复制代码
roscore

有这个提示就表示安装成功了

测试一个经典案例,键盘控制小乌龟移动

打开一个终端启动小乌龟节点

bash 复制代码
rosrun turtlesim turtlesim_node

再打开一个终端,启动键盘控制节点

bash 复制代码
rosrun turtlesim turtle_teleop_key

能看到小乌龟就表示运行成功了

相关推荐
悠哉悠哉愿意9 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11019 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元9 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133979 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315209 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang9 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟9 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126919 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315209 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘9 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动