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名称和密码


version: 2
ethernets:eth0:dhcp4: trueoptional: true
wifis:wlan0:dhcp4: true   #注意冒号后面需要带有空格optional: trueaccess-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了

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

$ start4.elf: is not compatible
$ This board requires newer software

需要在github上面下载最新的启动文件来替换旧的启动文件
地址:https://github.com/raspberrypi/rpi-firmware
把下图 .dat和 .elf 共16个文件复制替换掉TF卡上面的文件即可。
.dat文件
.elf文件
然后重启树莓派

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

sudo apt-get upgrade

安装ubuntu桌面

sudo apt-get install ubuntu-desktop

关机重启就完成了

sudo reboot

下一步进行安装ROS

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

wget http://fishros.com/install -O fishros && . fishros

按照提示,建议先更换国内镜像源。
然后进行测试
打开终端输入

roscore

在这里插入图片描述
有这个提示就表示安装成功了
测试一个经典案例,键盘控制小乌龟移动
打开一个终端启动小乌龟节点

rosrun turtlesim turtlesim_node

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

rosrun turtlesim turtle_teleop_key

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装vue时候发现npm淘宝镜像不能使用,报出:npm.taobao.org和registry.npm.taobao.or

2024.3.12 安装vue时候发现npm淘宝镜像不能使用,需要重新更换源,简单来说就是更换镜像 使用 npm config get registry 查看当前的镜像; npm config get registry 使用npm config set registry http://mirrors.cloud.tencent.com/npm/ &…

食品预包装:舌尖安全的第一道防线

在当今快节奏的生活中,食品预包装不仅是保护食品的屏障,更是传递品质与美味的使者。 预包装首先展现出的是其保鲜的魔力。它宛如一层坚固的护盾,有效地阻隔外界因素对食品的侵蚀,让食品的新鲜度和口感得以长久保存。无论是酥脆的点…

对接Shopify电商平台的流程

对接Shopify平台的流程通常包括以下关键步骤,在整个对接过程中,需要密切关注Shopify的API使用限制、认证机制、数据隐私政策等,确保应用的安全性和合规性。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合…

广东信息工程职业学院2024年成人高等继续教育招生简章

一、学校简介 广东信息工程职业学院位于广东省肇庆市,是一所具有一定办学规模,办学定位和培养目标明确,办学特色和追求鲜明,可持续发展的全日制普通高等学校,学院坚持以人为本,以德育人,以良好…

使用Jetpack Compose创建自定义可滚动网格

使用Jetpack Compose创建自定义可滚动网格 Jetpack Compose是Android开发中的现代UI工具包,极大地简化了界面构建过程。本文将介绍如何使用Jetpack Compose创建一个可滚动的网格布局,帮助开发者更高效地管理大量数据和动态内容。我们将通过示例代码详细…

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch5 蒙特卡洛方法【model-based ——> model-free】

PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、 过 电子书 是否遗漏 【下载:本章 PDF GitHub 页面链接 】 【第二轮 才整理的,忘光了。。。又看了一遍视频】 3、 过 MOOC 习题 看 PDF 迷迷糊糊, 恍恍惚惚。…

【Python/Pytorch 】-- SVM算法

文章目录 文章目录 00 写在前面01 SVM算法简介02 SVM算法的基本原理线性SVM非线性SVM 03 基于Python 版本的SVM算法04 优化目标表达式理解:05 约束条件表达式理解 00 写在前面 SVM算法可以结合鲸鱼算法、飞蛾扑火算法、粒子群算法、灰狼算法、蝙蝠算法等等各种优化…

OpenAPI

大家好我是苏麟 , 今天带来一个前端生成接口的工具 . 官网 : GitHub - ferdikoomen/openapi-typescript-codegen: NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification 安装命令 npm install openapi-typescript-codegen --sa…

数据分析:微生物组差异丰度方法汇总

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 介绍 微生物数据具有一下的特点,这使得在做差异分析的时候需要考虑到更多的问题&…

在LangChain中,LLM(大型语言模型)和LLM Chain的区别是什么?

简单来说,LLM是一个大型语言模型,而LLM Chain是由多个LLM或其他组件组成的链式结构,用于在LangChain中构建复杂的自然语言处理流程。 Direct LLM Interface: 直接大型语言模型(LLM)接口: llm Open…

Okhttp响应Json数据

简介 OkHttp是一个高效、现代的HTTP客户端库,专为Android和Java应用程序设计,用于发送网络请求和处理响应。它支持HTTP/2和SPDY协议,允许连接复用,减少延迟,提高网络效率。OkHttp还处理了常见的网络问题,如…

电容的命名规则

给如下参数给采购,就可以获取 还有一些参数需要重视 容值随着环境温度而保持的程度 常规应用时是可以不用看材质,但是如果使用在新能源汽车和极端环境下的电子产品,就需要关注材质,曾有供应商把可用级电容供应车企,导致…

昇思25天学习打卡营第4天|数据变换Transforms

学习内容复盘 1.1 数据变换 什么是数据变换、为何要数据变换 通常情况下,直接加载的原始数据并不能直接送入神经网络进行训练,此时我们需要对其进行数据预处理。MindSpore提供不同种类的数据变换(Transforms),配合数…

学习VXLAN -- 报文结构、原理和配置

目录 VXLAN背景什么是VXLANVXLAN的优势VXLAN报文结构一些特定名词BDVBDIFVAPVSIVSI-InterfaceAC VXLAN的实现原理图VXLAN MAC地址表项MAC地址动态学习 VXLAN隧道VXLAN隧道工作模式L2 GatewayIP Gateway VXLAN隧道的建立与关联VXLAN隧道建立的方式VXLAN对到与VXLAN关联的方式 配…

低成本STC32G8K64驱动控制BLDC开源入门学习方案

低成本STC32G8K64驱动控制BLDC开源入门学习方案 ✨采用STC32G8K64单片机,参考梁工的STC32G12K128-LQFP48驱动方案制作,梁工BLDC相关的资料:https://www.stcaimcu.com/forum.php?modviewthread&tid7472&extrapage%3D1,在此…

python tarfile解压失败怎么解决

问题原因 在使用tarfile模块解压一份Linux服务器上的打包文件时,出现了错误提示:IOError:[Errno 22] invalid mode (wb) or filename. 经过检查,发现是因为打包文件中有文件名存在“:”符号,而window下的…

python rename报错怎么解决

刚接触python,写了一段简单的代码,功能就是重命名一个文件,代码如下: list_1os.listdir(".") for files in list_1:fopen(files)if f.name"01.txt":os.rename(01.txt,001.txt)elif f.name"05.txt":…

【Python机器学习】k均值聚类——k均值的失败案例

k均值可能不总能找到“正确”的簇个数,每个簇仅由其中心定义,这意味着每个簇都是凸形。因此,k均值只能找到相对简单的形状。k均值还假设所有簇在某种程度上具有相同的“直径”,它总是将簇之间的边界刚好画在簇中心的之间位置。有时…

找不到msvcr120.dll怎么办,msvcr120.dll丢失的多种解决方法

msvcr120.dll是微软Visual C 2013的可再发行组件包中的一个文件,它是许多程序运行所必需的。这个文件包含了Visual C库,这些库为使用C编写的软件提供支持。如果你的电脑中缺少msvcr120.dll文件,那么依赖这个文件运行的应用程序可能无法启动或…

WPF文本绑定显示格式StringFormat设置-数值类型处理

绑定显示格式设置 在Textblock等文本控件中,我们经常要绑定一些数据类型,但是我们希望显示的时候能够按照我们想要的格式去显示,比如增加文本前缀,后面加单位,显示百分号等等,这种就需要对绑定格式进行处理…