树莓派安装Ubuntu MATE及ROS系统

目录

  • 解锁
  • SSH
  • 换源
  • 安装VNC服务
  • 安装ROS
  • 初始化rosdep和环境
  • 测试

平台:树莓派4B
系统版本: ubuntu-mate-20.04.1-desktop-armhf+raspi.img


        在Raspberry Pi Download Options下载系统镜像
在这里插入图片描述
        在树莓派资源下载 | 树莓派实验室下载工具
        使用SDFormatter格式化内存卡
在这里插入图片描述
        使用Win32DiskImager烧录镜像
在这里插入图片描述
        插上TF卡,开机后配置好语言、键盘、wifi和时区。

解锁

来源:ubantu报错: 正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程3228(aptd)—— Notacoder

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

SSH

来源:树莓派3B Ubuntu 18.04 mate下设置 SSH 以及 远程拷贝文件【SCP】—— coco_1998_2

        安装openssh-server

sudo apt-get install openssh-server

        查看openssh-server是否启动

ps -e | grep ssh

在这里插入图片描述
        进程ssh-agent是客户端,sshd为服务器端,如果结果中有sshd的进程说明openssh-server已经启动,如果没有则需运行命令启动。

        启动、停止和重启openssh-server的命令如下:

/etc/init.d/ssh start
/etc/init.d/ssh stop
/etc/init.d/ssh restart  

        此后即可SSH远程登陆。

换源

sudo nano /etc/apt/sources.list

        将 http://ports.ubuntu.com/ 全部替换为中科大的源 http://mirrors.ustc.edu.cn/ubuntu-ports/
        执行

sudo apt update 
sudo apt upgrade 

        更新

安装VNC服务

        安装x11vnc

sudo apt-get install x11vnc

        设置x11vnc密码

x11vnc -storepasswd
#然后按提示输入密码

在这里插入图片描述

        编写启动脚本

nano startVNC
# !/bin/bash
x11vnc -rfbauth ~/.vnc/passwd -display :0 -forever -bg -repeat -nowf -o ~/.vnc/x11vnc.log -shared &
sudo chmod +x ./startVNC

        启动脚本

./startVNC

在这里插入图片描述
        此后即可通过VNC远程登陆
在这里插入图片描述

安装ROS

sudo mkdir -p /etc/apt/sources.list.d/ && sudo touch /etc/apt/sources.list.d/ros-latest.list
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
sudo apt update -y
sudo apt install aptitude

        输入sudo aptitude install ros-按住tab补全搜寻有无类似ros-版本代号-desktop-full的安装包,我这里找到了ros-noetic-desktop版本的:
在这里插入图片描述

        使用如下命令后可能会有不少冲突,尽可能选择安装最全的方案。

sudo aptitude install ros-noetic-desktop
sudo aptitude install python3-roslaunch
sudo aptitude install rosbash

在这里插入图片描述

初始化rosdep和环境

        这里使用鱼香ROS大佬的脚本解决rosdep问题,其官网为鱼香ROS

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

        选择3
在这里插入图片描述
在这里插入图片描述

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

        选择4
在这里插入图片描述

测试

        分别在四个终端中使用如下命令

roscore
rosrun turtlesim turtle_teleop_key

        以下这个命令需在图形界面的终端中使用

rosrun turtlesim turtlesim_node
rqt_graph

        如图所示,已成功运行小乌龟例程
在这里插入图片描述

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

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

相关文章

mysql 清空表的两种方法

一、Delete DELETE FROM table; 二、Truncate TRUNCATE table; 第一种方法其实就是去掉where条件,没有了条件,也就是删除掉表里面的所有记录了; 第二种方法像是重置表,把表中内容全部清除,回到刚建好表的状态&#xff…

jQuery学习笔记(四)

jQuery对表单、表格的操作及更多应用 表单应用 一个表单组成部分: 表单标签、表单域及表单按钮 单行文本框应用获取和失去焦点事件 $(function(){ $(":input").focus(function(){ //获取焦点触发事件 $(this).addClass("focus"); //增加样…

Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法

https://www.cnblogs.com/DragonFire/p/9259999.html 是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符串,用于传递到前端 STUDENT {name: Old, age:…

【Jetson Nano学习笔记】1. 系统镜像和ROS的安装

目录安装系统换源安装VNC服务安装ROS初始化rosdep和环境测试平台:Jetson Nano 系统版本:4.6.1 安装系统 在Jetson Download Center下载镜像: 在树莓派资源下载 | 树莓派实验室下载工具 使用SDFormatter格式化内存卡 使用balenaEtcher烧录镜…

我的Android进阶之旅------Android利用Sensor(传感器)实现水平仪功能的小例

这里介绍的水平仪,指的是比较传统的气泡水平仪,在一个透明圆盘内充满液体,液体中留有一个气泡,当一端翘起时,该气泡就会浮向翘起的一端。 利用方向传感器返回的第一个参数,实现了一个指南针小应用。我的And…

【linux命令总结】——后续用到的内容持续补充和更新

比如说:某个文件是go文件,名字叫做 Hello.go 1、通过后台运行某个程序,将结果输出到某个文件, 如果是直接运行go程序:go run Hello.go 后台运行:nohup go run Hello.go & ,然后就会将结果输…

【Jetson Nano学习笔记】2. ORB-SLAM3及ZED 2i驱动安装

目录ZED 2i驱动安装安装驱动自测ROS测试zed2i.launchrostopic listrosnode listdisplay_zed2i.launchzed_rtabmap.launchORB-SLAM3安装OpenCV 3安装Glew安装Pangolin安装boost安装Eigen 3安装OpenGL安装openssl安装ORB-SLAM3建立swap准备编译编译关闭swap平台:Jetso…

给超链接(a标签)加onclick事件

<a onclick"alert(1)">超链接1</a><br> <a href"#" onclick"alert(2)">超链接2</a> <br> <a href"javascript:alert(3)">超链接3</a>

proj1088

滑雪Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 69608 Accepted: 25669Description Michael喜欢滑雪百这并不奇怪&#xff0c; 因为滑雪的确很刺激。可是为了获得速度&#xff0c;滑的区域必须向下倾斜&#xff0c;而且当你滑到坡底&#xff0c;你不得不再次走…

【Jetson Nano学习笔记】3. ORB-SLAM3运行双目Demo(ZED 2i)

目录修改zed-ros-wrapper的参数双目测试平台&#xff1a;Jetson Nano 系统版本&#xff1a;4.6.1 参考资料&#xff1a; zed-ros-wrapper —— ROS Wiki ZED 相机 && ORB-SLAM2安装环境配置与ROS下的调试 —— 李小铭 又一遍……ORB_SLAM2ZED相机(SDK2.2.1)CUDA9.0ROS…

PyCharm设置自动换行

在使用PyCharm码代码的时候&#xff0c;有些单行的代码比较长&#xff0c;经常需要手动拉动滚动条。 辣么怎么设置自动换行呢&#xff1f;&#xff1f; 敲黑板 在这里给大家介绍两种方式&#xff1a; 1、如果你需要频繁在【自动换行/非自动换行】模式中切换 那就需要设置一个顺…

邮件服务

http://linuxsogood.org/1121.html/comment-page-1 转载于:https://www.cnblogs.com/saolv/p/7440536.html

MySQL数据库和ACID模型

2019独角兽企业重金招聘Python工程师标准>>> ACID模型是一组强调高可靠性的数据库系统设计原则。InnoDB存储引擎坚持ACID原则&#xff0c;确保即使在软件崩溃甚至是硬件故障的情况下&#xff0c;数据也不会损坏。当你需要依赖兼容ACID原则的业务时&#xff0c;你不必…

MFC中SQLite数据库的使用

1打开数据库 BOOL playDlg::openData() { WCHAR a[100]; CString path; path m_exePathL"sentence_making\\FROG.db"; memcpy(a,path,sizeof(a)); int nRet sqlite3_open16((const char *)a,&pSQLite); // 链接到数据库&#xff0c;如果成功&#xff0c;数据…

【Jetson Nano学习笔记】4. python 3编译bridge

目录使用python3编译boostconsole_bridgepython3bridge平台&#xff1a;Jetson Nano 系统版本&#xff1a;4.6.1 参考资料&#xff1a; How to setup ROS with Python 3 Unable to use cv_bridge with ROS Kinetic and Python3 CMake Error &#xff1a;Could not find a pac…

Python作用域

Python是静态作用域&#xff0c;也就是说在Python中&#xff0c;变量的作用域源于它在代码中的位置。与C语言有一些类似&#xff0c;与C语言比起来还有一些需要注意的地方。 现在的Python支持4种作用域&#xff0c;"LEGB" L(local)&#xff1a;局部作用域&#xff1b…

解决flask端口被占用的问题

2019.04.11 实测&#xff1a; 只要停止程序&#xff0c;再运行&#xff0c;就可以了 问题提示&#xff1a;socket.error:[Errno 48] Address already in use 在编辑flask代码时&#xff0c;如果没有关闭flask的程序&#xff0c;默认的5000端口一直被占用。 再次运行的时候&am…

使用模板来解决接口继承问题

一.定义2个有继承关系的接口 struct IA {virtual void Test1()0; };struct IB:public IA {virtual void Test2()0; };二.定义2个类来实现 class A:public IA {virtual void Test1() {} };class B:public IB { public:virtual void Test2() {} };类B将无法使用,必须重新实现IA的…

python time模块详解

2019独角兽企业重金招聘Python工程师标准>>> python time模块详解 分类&#xff1a; python2009-03-28 23:35 89831人阅读 评论(9) 收藏 举报 pythonstructstringdstimportdate python 的内嵌time模板翻译及说明 一、简介 time模块提供各种操作时间的函数 说明&am…

单例写法 转

如何正确地写出单例模式 1.懒汉式&#xff0c;线程不安全 这段代码简单明了&#xff0c;而且使用了懒加载模式&#xff0c;但是却存在致命的问题。当有多个线程并行调用 getInstance() 的时候&#xff0c;就会创建多个实例。也就是说在多线程下不能正常工作 public class Singl…