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,一经查实,立即删除!

相关文章

Java中如何正确使用异常处理?

Java中如何正确使用异常处理? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在Java编程中,异常处理是确保程序稳定性和可靠性的重要部分…

【java】写一个发送邮箱的样例

【java】写一个发送邮箱的样例package com.ai157.aigc.controller.methods; import javax.mail.*; import javax.mail.internet.*; import java.util.Date; import java.util.Properties;public class SendEmail {/* public static void main(String[] args) {toMsg("3…

刷题——旋转数组的最小数字

旋转数组的最小数字_牛客题霸_牛客网 描述 有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,…

django DRF增删改查

本文在django所有的增删改查样例使用的DRF框架序列化操作,并非是简单的orm操作。 目录 ORM介绍数据库设计原则DRF增删改操作高级查询原生sql处理 ORM介绍 Django ORM(Object-Relational Mapping,对象关系映射)是 Django 框架的一…

安装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创建一个可滚动的网格布局,帮助开发者更高效地管理大量数据和动态内容。我们将通过示例代码详细…

python从入门到精通11:字符串是数组吗?

在Python中,字符串(str)和数组(通常指的是列表 list 或者在某些上下文中是NumPy数组 numpy.ndarray)是两种不同的数据结构,尽管它们在某些方面可能表现出相似性。 字符串(str)&#…

▶《强化学习的数学原理》(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…

一天了解23种设计模式

学习设计模式之前,我们要知道为什么需要设计模式?想想你在初中、高中时是怎么做数学题的?每遇到一个难题,你不需要重头开始思考解决方法,而是有一定的解题“套路”。设计模式就像是解题的“套路”,一个好的…

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

欢迎大家关注全网生信学习者系列: 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还处理了常见的网络问题,如…

python爬虫入门到精通路线

当谈及Python爬虫从入门到精通的路线时,我们可以将其分为几个关键阶段,每个阶段都有其特定的学习目标和内容。以下是一个清晰的路线规划: 1. 入门阶段 基础知识 学习Python的基础语法、数据类型、控制流等。了解基本的网络协议&#xff08…

电容的命名规则

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

Transformer中的类别嵌入

类别嵌入 self.class_embedding nn.Parameter(scale * torch.randn(width))这一行代码的作用是在 VisionTransformer 类中创建并初始化一个类别嵌入向量(class embedding vector),用于表示输入序列的类别信息。 详细解释 类别嵌入 在 Tr…