Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk

2023-05-16

文章目录

  • 硬件
  • 安装Ubuntu Server20.04
    • 下载rpiboot工具
    • 下载imager
    • 刷写系统
    • 配置USB
    • 配置WIFI
  • 开机安装桌面
  • 配置wifi
  • 配置串口
  • 安装ROS
  • 安装mavros
  • 安装MAVSDK-Python
  • Internet设置
  • 最后

参考:
https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-rpi-cm4-baseboard

硬件

自己要买个树莓派cm4
建议是买带wifi和emmc版本的
此外袋子里面还有四个螺丝用来固定树莓派
在这里插入图片描述
侧面有一个开关,用来切换rpi/emmc
拨到rpi,配合rpiboot可以用来刷系统
刷完了拨到emmc就正常启动系统

安装Ubuntu Server20.04

下载rpiboot工具

Linux下面

sudo apt install libusb-1.0-0-dev
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
sudo ./rpiboot

Windows下面
这里下载

下载imager

imager

根据系统选择

刷写系统

把开关拨到rpi
用usb接cm4 slave到电脑
根据Windows/Linux运行rpiboot
在这里插入图片描述

cm4一侧的ACT和PWR灯会亮
在这里插入图片描述
然后打开imager,general purpose,Ubuntu,选择这个系统
在这里插入图片描述
这个要下载一会,也可以在这里下载https://cdimage.ubuntu.com/releases/focal/release/
下图这个,是64位的
在这里插入图片描述
然后在imager里面选自定义或者custom
在这里插入图片描述
然后选择树莓派烧录
在这里插入图片描述
再点击右下角齿轮,配置ssh用户名和密码,作为Ubuntu登录的用户名密码
wifi配置无所谓,反正不好使

烧录,需要二十分钟差不多

配置USB

在Linux下面可以访问boot盘(可能要再跑一次rpiboot)
在这里插入图片描述

在usercfg.txt里面添加

dtoverlay=dwc2,dr_mode=host

不然usb不会启动,CM4 Host的两个Type-C口不能外接设备

配置WIFI

在这里插入图片描述
写入:

wifis:
  wlan0:
    dhcp4: true
    optional: true
    access-points:
      "你wifi的名字":
        password: "你wifi的密码"
        hidden: true

如果wifi可见,hidden就删了
可以参考这俩文章:
树莓派安装Ubuntu server无屏幕开机自动连接WIFI
树莓派4B安装Ubuntu Server20.04(18.04)连接wifi(对于ubuntu server 99%适用)
其中第二篇文章很有用,安装完图形化界面后还要设置wifi

开机安装桌面

断电,把开关拨到emmc,连接micro HDMI口到显示器,然后再用usb电源插入cm4 slave(电脑可能功率不足
此处要注意,先上电树莓派,启动后再上电fc的Type-C口给飞控和风扇供电,不然可能开机乱码
用电脑或者其他的开一个2.4G的wifi给cm4用
登录用户
安装桌面

sudo apt-get install ubuntu-desktop

然后重启,接个鼠标什么的到cm4 host

配置wifi

/etc/netplan/nano 50-cloud-init.yaml里面删干净,不然图形化界面看不到wifi列表

$ sudo netplan -debug try
$ sudo netplan -debug generate
$ sudo netplan -debug apply
$ reboot

如果用蓝牙

sudo apt-get install pi-bluetooth

配置串口

文档里面的raspi-config不好使!
所以要手动设置才行

ls -l /dev

可以看到串口列表,其中有两个是这样,目标是把他俩调换一下,serial0对应ttyAMA0
在这里插入图片描述

去/boot/firmware下面
找config.txt
修改:

enable_uart=1
dtoverlay=miniuart-bt.dtbo
cmdline=cmdline.txt

此处相当于用miniuart替换给了蓝牙
再找cmdline.txt
将console=ttyAMA0(或者serial0),115200的语句删除,改成这个样子

elevator=deadline net.ifnames=0 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 rootwait fixrtc quiet splash

此处相当于关掉了串口的console
然后重启,就变换了
在这里插入图片描述
查看串口配置

stty -F /dev/ttyAMA0 -a  #ttyAMA0为要查看的串口

配置串口

stty -F /dev/ttyAMA0 ispeed 921600 ospeed 921600 cs8

更改串口的权限,username可以在terminal输入whoami查看

sudo usermod -aG dialout username

可以安装一个cutecom,如果不用sudo就能打开这个串口,就证明配置好了

安装ROS

先在~/.bashrc里面配置代理,代理自寻,不然ros安装就是噩梦

export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

继续安装

# 添加ros软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
 
# 如果没有安装curl
sudo apt install curl
 
# 设置密钥
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
 
# 更新软件源
sudo apt update
 
# 安装ros
sudo apt install ros-noetic-desktop-full
 
# 设置环境变量 
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
 
# 运行该脚本,让环境变量生效
source ~/.bashrc
 
# 安装开发ROS必要的package
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
 
# 初始化
sudo rosdep init
rosdep update

运行roscore能得到下面这个就成功了
在这里插入图片描述

安装mavros

sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras  //安装MAVROS
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo bash ./install_geographiclib_datasets.sh   

参考文档配置pixhawk6x的telem2

- MAV_1_CONFIG: 102
- MAV_1_MODE: 2
- SER_TEL2_BAUD: 921600

运行mavros

roslaunch mavros px4.launch fcu_url:="/dev/ttyAMA0:921600"

得到
在这里插入图片描述

安装MAVSDK-Python

python3 -m pip install mavsdk
https://github.com/mavlink/MAVSDK-Python.git
cd MAVSDK-Python
sudo python3 setup.py install
sudo python3 setup.py build

然后进入example文件夹,修改一个文件,我用的是all_params.py

system_address="udp://:14540"

改为

system_address="serial:///dev/ttyAMA0:921600"

运行

python3 all_params.py

在这里插入图片描述

不知道为何我每次都得先install一下才可以

Internet设置

参考文档即可

最后

推荐一波obs studio配MS2130采集卡开发cm4,这个卡不到¥100就能1080p 60hz采集,良心的很
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk 的相关文章

  • pixhawk飞控调试_px4飞控调试方法

    2 BRD SAFETYENABLE 0 禁用安全开关 1 启用安全开关 3 3 2 这个界面是正常工作的界面 xff0c 此时通过串口的数据是 2 进制数据 xff0c 所以看到的是 乱码 从 Open com port 之后就是乱码 可
  • PX4/Pixhawk---高速成为开发人员(Windows)

    1 高速成为开发人员新手教程 xff08 翻译 xff09 官方 1 1 编译环境之版本号控制系统 xff08 1 xff09 安装 MSysGIT 安装完毕后 xff0c 配置GIT 安装注意 安装过程中除了以下一步外 xff0c 其它的
  • 使用者——初见Pixhawk

    是什么 Pixhawk简单介绍 直接使用二次开发 Pixhawk总体概述怎么用 Pixhawk初次使用 搭建调试环境初始化配置测试试飞调整参数提高性能 xff08 是什么 Pixhawk简单介绍 PixHawk是著名飞控厂商3DR推出的新一
  • Pixhawk飞行模式的讨论

    手动模式 offboard 地面站 操控的区别 使用遥控操纵的模式 Simple and Super Simple 选项 加了这个选项之后 xff0c 它的磁力计会记录飞机解锁时 xff0c 朝向就是无人机的前方 每个飞行模式的旁边都有一个
  • Pixhawk之姿态控制篇

    一 开篇 姿态控制篇终于来了 来了 来了 心情爽不爽 xff1f 愉悦不愉悦 xff1f 开心不开心 xff1f 喜欢的话就请我吃顿饭吧 xff0c 哈哈 其实这篇blog一周前就应该写的 xff0c 可惜被上一篇blog霸占了 但是也不算
  • pixhawk make文件分析

    由于笔者没学过Linux等系统 xff0c 对make文件所知甚少 xff0c 本节分析可能有大量错误 xff0c 只提供参考 xff0c 随着技术积累 xff0c 以后会回过头改正错误的地方 xff0c 也非常欢迎提出指导意见 其中分析大
  • 【Pixhawk】注册一个字符型驱动设备

    最近学习Pixhawk的SPI xff0c 本以为PX4是STM32单片机而已 xff0c 写个SPI驱动应该很简单 但是当我看到mpu9250的那些cpp文件 xff0c 我一下就蒙了 由于PX4用的NUTTX系统 xff0c 类似Lin
  • Pixhawk-信息流浅解析

    根深方能叶茂 在等待的日子里 xff0c 刻苦读书 xff0c 谦卑做人 xff0c 养得深根 xff0c 日后才能枝叶茂盛 Better 根爷 之前我们已经谈到系统框架 xff0c 之前谈到了定制自己功能的两部 xff1a 添加模块和修改
  • Pixhawk-串级pid介绍

    根深方能叶茂 在等待的日子里 xff0c 刻苦读书 xff0c 谦卑做人 xff0c 养得深根 xff0c 日后才能枝叶茂盛 Better 根爷 鉴于串级PID在pixhawk系统中的重要性 xff0c 无论是误差的补偿 xff0c 如姿态
  • Pixhawk指示灯和安全开关含义

    Pixhawk指示灯的含义 红灯和蓝灯闪 xff1a 初始化中 请稍等 黄灯双闪 xff1a 错误 系统拒绝解锁 蓝灯闪 xff1a 已加锁 xff0c GPS搜星中 自动导航 xff0c 悬停 xff0c 还有返回出发点模式需要GPS锁定
  • Ubuntu20.04/Ubuntu22.04 配置VScode+Opencv+cmake(C++)

    下面介绍Ubuntu20 04下安装opencv xff0c 当然Ubuntu22 04也适用 xff0c 然后将opencv链接到VsCode 先主体按照 gt 点我 xff1a 链接1 lt 的第一点进行安装 xff0c 但是特别注意
  • Ubuntu20.04 安装 mNetAssist

    安装环境 xff1a Ubuntu20 04安装包 xff1a mNetAssist release amd64 deb 安装与运行 span class token function sudo span span class token
  • 【linux】ubuntu20.04 运行软件 提示找不到过时的库 libQtCore.so.4、libQtGui.so.4、libpng12.so.0

    先上结果 1 nxView运行起来 环境 硬件 xff1a Jetson Xavier NX 套件 系统 xff1a Ubuntu 20 04 软件 xff1a nxView 43 libQtCore so 4 解决 0 现象 运行软件提示
  • RoboMaster视觉 深度相机(1):Ubuntu20.04上安装Intel D435深度相机SDK与ROS

    RoboMaster视觉 深度相机 xff08 1 xff09 xff1a Ubuntu20 04上安装Intel D435深度相机SDK与ROS 1 安装RealSense SDK 先去下载 librealsense 可以在GitHub下
  • Ubuntu20.04更换国内镜像源(阿里、网易163、清华、中科大)

    2022年12月11日更新 今天刚安装了 Ubuntu22 04 xff0c 安装时选好地区 xff0c 开机默认就是中国内地的镜像源服务器 xff0c 速度很快 xff0c 体验极佳 xff0c 已经基本告别更换镜像源的烦恼了 给官方点赞
  • 在ubuntu20.4下安装ROS-noetic

    换源方法 xff1a 打开software amp updates 在里面找到china 然后选择对应的源 1 添加ROS软件源 将以下命令复制到ubuntu的终端执行 sudo sh c 39 echo 34 deb http packa
  • pixhawk之NSH调试

    一 ardupilot固件 windows环境 前期准备 1 xff1a pix烧录程序 xff0c Arducopter或者library中的example都可以实现 2 xff1a 拔掉SD卡 xff08 脚本中提到的没有SD卡进入ns
  • 树莓派4B Ubuntu20.04 ROS2 DSO realsense d455

    在git上下载dso 并编译 opencv version 61 4 2 0 span class token builtin class name cd span lib dso dso span class token function
  • 树莓派4B ubuntu20.04 安装ROS noetic和opencv记录

    文章目录 准备换源安装ROS一些遇到的坑连接wifi添加秘钥时出错 E could not get lock var lib apt list catkin make时出现错误 Could not find the required com
  • Ubuntu20.04下编译安装ORBSLAM2_with_pointcloud_map总结

    与此物大战六个小时 xff0c 终于解决所有问题 xff0c 写此短文记录一下 一 在github上下载源码后 xff0c 解压缩 xff0c 如下 进行g2o with orbslam2的编译 1 报错信息 xff1a ORBSLAM2

随机推荐

  • 第七届蓝桥杯嵌入式(省赛)程序题

    第七届蓝桥杯 xff08 省赛 xff09 解读 43 程序 解读 xff1a 这里自己多读几遍设计任务以及要求再看下面 96 A 先搭总体框架 96 各初始化函数 96 LCD初始化 96 96 按键初始化 96 96 ADC初始化 96
  • STM32普通io口模拟pwm输出的三种方法

    STM32F103RB普通io口模拟pwm输出的第三种方法 xff08 周期占空比可调 xff09 第 xff08 一 xff09 种定时器中断产生pwm 96 第 xff08 一 xff09 种代码片 96 第 xff08 二 xff09
  • STM32 RS232通信实验

    stm32F103 RS232通信实验 什么是RS232 软件设计 完整工程下载 什么是RS232 先来看看UART传输所存在的问题 于是就有了RS232协议 这里注意使用的是负逻辑电平信号 在规定范围内的电平信号代表逻辑1或0 xff0c
  • MDK中变量无法添加到逻辑分析仪中原因

    MDK中变量无法添加到逻辑分析仪中原因 解决方法 去掉static 提示无法将变量添加到逻辑分析仪中 解决方法 去掉static 设置为bit 全速运行
  • 三,FreeRTOS之——动态创建多任务+优先级

    声明 xff1a 本专栏参考韦东山 xff0c 野火 xff0c 正点原子以及其他博主的FreeRTOS教程 xff0c 如若侵权请告知 xff0c 马上删帖致歉 xff0c 个人总结 xff0c 如有不对 xff0c 欢迎指正 动态创建多
  • ESP8266组网+STM32数据传输项目

    ESP8266 43 STM32数据传输项目 实验硬件 xff1a 项目关键词 xff1a 项目描述项目涉及知识 xff1a 1 ESP8266开发2 MQTT协议3 STM32 整体开发流程 xff1a 实验硬件 xff1a ESP826
  • 十一,FreeRTOS之——互斥信号量(优先级反转,优先级继承,递归锁)

    声明 xff1a 本专栏参考韦东山 xff0c 野火 xff0c 正点原子以及其他博主的FreeRTOS教程 xff0c 如若侵权请告知 xff0c 马上删帖致歉 xff0c 个人总结 xff0c 如有不对 xff0c 欢迎指正 互斥量理论
  • (一)裸机开发框架构建之---开发框架思想

    裸机开发框架构建 声明 xff1a 本专栏通过查阅资料以及自己对开发框架的理解所编写 xff0c 如有错误 xff0c 还请指正 为什么要使用框架 xff1f xff1f xff1f 我的框架分层思想体现 声明 xff1a 本专栏通过查阅资
  • PX4添加外置IMU传感器MPU-9250

    使用PX4 v1 13 2代码 xff0c 淘宝购买的MPU 9250传感器 MPU 9250 芯片架构图 实物图 手册 寄存器 https invensense tdk com wp content uploads 2015 02 RM
  • (二)裸机开发框架构建之---点灯大师

    裸机开发框架构建 3 设备管理层抽象出结构体初始化结构体第一种初始化方法 xff08 c89标准 xff09 第二种初始化方法 xff08 C99标准 xff09 2 硬件接口层1 硬件层硬件LED层初始化函数硬件层LED控制函数 4 应用
  • 1.freertos应用系列之cubemx创建freertos

    freertos应用全系列 xff08 写完关联更新 xff09 01 freertos应用系列之cubemx创建freertos 11 freertos应用系列之cubemx创建freertos 02 freertos应用系列之cubem
  • docker中镜像源推荐

    1 xff0c 个人建议使用 网易镜像源 镜像源有以下5种 1 网易 http hub mirror c 163 com 2 Docker中国区官方镜像 https registry docker cn com 3 ustc https d
  • VScode创建C++项目

    VScode创建C 43 43 项目 假设系统已经安装了MinGW64 插件 常用插件 创建Project 配置json文件 需要修改的地方都在下方注释说明 根据MinGW64安装位置进行修改 c cpp properties json s
  • C++的一个问题点,数组作为参数传递到函数之后,不能直接求出长度

    YU 原数组 xff0c 传递参数之后 结果是作为参数传进去之后是作为指针 xff0c 是不能求出长度的 xff0c 所以需要把长度提前求出作为参数传入该函数 反思 xff1a 最近C 43 43 Python xff0c java轮流用
  • 基于from flask import Flask,render_template 上传网页遇到的问题

    我们要上传多个页面形成一个网站 xff0c 首先我们需要在index xff08 一般这个都是首页面 xff09 查看其源码 找到类似 这段代码里面包括了前面的网站 xff0c 所以这时候我们只需要把它变成带使用的状态 xff0c 操作就是
  • 跨交换机的VLAN设置

    实现目标 xff1a 进行多台主机多个vlan接口进行互相通信 需要知识 xff1a 1 不同的vlan接口的是不能进行通信的 2 在要跨越多个交换机进行通信的时候要对进行交互的交换机进行共享vlan端口的设置 3 在设置网络号的时候应该注
  • Wireshark抓取cookie:用户名...,TCP报文等信息实战

    这里我们要先安装Wireshark xff0c 这里要注意的是一些低级版本刚刚下下来的时候是找不到网络接口的 xff0c 所以这时候要更新 xff0c 然后再下应该WinPro xff08 应该是这个 xff09 xff0c 之后就有网络接
  • 计算机网络知识点总结提纲(谢希仁)

    1 IOS OSI对王道书上的缩减总结 清晰pdf xff1a 链接 xff1a https pan baidu com s 1f6DqMsHky4kP8i9WQLvCew pwd 61 the3 提取码 xff1a the3 来自百度网盘
  • C++getline和 cin的探讨

    从结果可以看出 xff0c cin是会把空格部分舍弃的 如果是输入一个 然后空格在输入其他的 xff0c 因为cin默认把空格去调 xff0c 则后面的字符我的理解就是溢出 xff1f 所以报错了 getline功能就比较强大了 xff0c
  • Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk

    文章目录 硬件安装Ubuntu Server20 04下载rpiboot工具下载imager刷写系统配置USB配置WIFI 开机安装桌面配置wifi配置串口安装ROS安装mavros安装MAVSDK PythonInternet设置最后 参