当前位置: 首页 > news >正文

无人机避障—— 激光雷达定高北醒TF03-UART(二)

无人机避障过程,光靠大疆飞控内部的气压计不准,很容易在高度较低的时候受到地面植被等障碍物影响,使得掉高严重,因此采用激光雷达定高模块进行定高。

硬件:

北醒TF03-UART、Xavier-NX

软件代码:

北醒官方python指导:Benewake(北醒) TFmini-S\TFmini Plus\TF-Luna\TF02-Pro\TF03 串口版本雷达在Linux(Ubuntu)-Python上的运用-CSDN博客

#创建日期:2020年10月10日
#版本:初版
#此程序对应北醒TF系列默认配置下串口版本有效
#此程序只提供参考和学习
# -*- coding: utf-8 -*-import serial.tools.list_ports
import time
import numpy as npser = serial.Serial()
ser.port = '/dev/ttyUSB1'    #设置端口
ser.baudrate = 115200 #设置雷达的波特率
def getTFminiData():while True:count = ser.in_waiting #获取接收到的数据长度if count > 8:recv = ser.read(9)#读取数据并将数据存入recv#print('get data from serial port:', recv)ser.reset_input_buffer()#清除输入缓冲区if recv[0] == 0x59 and recv[1] == 0x59:  # python3distance = np.int16(recv[2] + np.int16(recv[3] << 8))strength = recv[4] + recv[5] * 256temp = (np.int16(recv[6] + np.int16(recv[7] << 8)))/8-256 #计算芯片温度print('distance = %5d  strengh = %5d  temperature = %5d' % (distance, strength, temp))ser.reset_input_buffer()if recv[0] == 'Y' and recv[1] == 'Y':  # python2 //此处标示出文件读取成功lowD = int(recv[2].encode('hex'), 16)highD = int(recv[3].encode('hex'), 16)lowS = int(recv[4].encode('hex'), 16)highS = int(recv[5].encode('hex'), 16)lowT = int(recv[6].encode('hex'), 16)highT = int(recv[7].encode('hex'), 16)distance = np.int16(lowD + np.int16(highD << 8))strength = lowS + highS * 256temp = (np.int16(lowD + np.int16(highD << 8)))/8-256 #计算芯片温度print('distance = %5d  strengh = %5d  temperature = %5d' % (distance, strength, temp))else:time.sleep(0.005) #50ms
if __name__ == '__main__':try:if ser.is_open == False:try:ser.open()except:print('Open COM failed!')getTFminiData()except KeyboardInterrupt:  # Ctrl+C 停止输出数据if ser != None:ser.close()

最重要的就是设置端口号:

ls -l /dev/ttyUSB*

拔掉激光雷达串口: 

确定是USB1设置就好了。

运行代码:

sudo python3 test.py

测试成功! 

http://www.lryc.cn/news/449881.html

相关文章:

  • 在虚幻引擎中实现Camera Shake 相机抖动/震屏效果
  • SQL Server的文本和图像函数
  • PN8034非隔离12V300MA,SOP7/DIP7开关电源芯片
  • VMware下Ubuntu找不到共享文件夹
  • 银河麒麟桌面操作系统V10登录闪退问题解决
  • 【Git原理与使用】分支管理
  • Linux操作系统分析实验-多线程与内核模块编程,实验一
  • AI绘画Stable Diffusion人物背景替换实操教程,让创意无限延伸
  • linux环境oracle11.2.0.4打补丁(p31537677_112040_Linux-x86-64.zip)
  • 华为 HCIP-Datacom H12-821 题库 (29)
  • MySQL 为什么一定要有一个主键
  • Pycharm 本地搭建 stable-diffusion-webui
  • python/爬虫技术/lxml工具介绍/XML和HTML解析
  • Kafka技术详解[5]: 集群启动
  • 记一次教学版内网渗透流程
  • [Python学习日记-31] Python 中的函数
  • Kafak入门技术详解
  • X-Spreadsheet:Web端Excel电子表格工具库
  • 为什么很多APP取消网页版
  • Kubernetes高级功能
  • (作业)第三期书生·浦语大模型实战营(十一卷王场)--书生入门岛通关第1关Linux 基础知识
  • 【python爬取网页信息并存储】
  • TCP、UDP
  • 聊聊暖通空调系统的优化控制方法
  • 2024年合肥市职业院校技能大赛(中职组)赛 网络安任务书样题
  • 制造企业如何提升项目管理效率?惠科股份选择奥博思PowerProject项目管理系统
  • mTLS(Mutual TLS)即双向传输层安全,是一种安全通信协议,用于在客户端和服务器之间建立双向的身份验证和加密通道。
  • HUAWEI WATCH GT 系列安装第三方应用
  • Html jquery下拉select美化插件——selectFilter.js
  • 使用ESP8266扫描WiFi列表