ros2 setpy.py详解
setup.py 内容分析一般setup.py基本内容如下: 12345678910111213141516171819202122232425262728293031323334from setuptools import find_packages, setupimport osfrom glob import globpackage_name = 'qmini_nav2'setup( name=package_name, version='0.0.0', packages=find_packages(exclude=['test']), data_files=[ ('share/ament_index/resource_index/packages', ['resource/' + package_name]), ('share/' + package_name, ['pa...
ros2可执行节点
一、ros2可执行节点1.1 Node定义节点(Node) 是 ROS2 中最基本的执行单元,可以理解为一个独立运行的程序。每个节点负责特定的功能,比如: 读取传感器数据 控制电机 处理图像 发布导航目标点(就像您的 qmini_nav2_waypoint.launch.py 文件那样) 1.2 Node代码结构可执行节点就是可以直接运行的 Python 或 C++ 程序,必须满足: 123456789101112131415161718192021# Python 节点的基本结构import rclpyfrom rclpy.node import Nodeclass MyNode(Node): def __init__(self): super().__init__('my_node_name') # 节点的功能代码 def func(): passdef main(args=None): rclpy.init(args=args) # 初始化 ROS2 node...
SLAM:激光雷达
科普文,参考自:https://mp.weixin.qq.com/s/aDQpB8Qz9wC1EgniXuCSkg 激光雷达 Lidar 如何应用于 SLAM一、Lidar SLAM(是什么)利用激光雷达使机器人在未知环境中构建地图的同时,实时确定自身在该地图中位置的技术。 激光雷达的传感器可以实现发送激光脉冲,同时测量脉冲碰到物体后反射回来所需的时间,通过分析返回的激光信息,Lidar SLAM系统可以生成代表环境的高精度三维点云,并利用这些信息估算机器人在地图中的位置和朝向。 大部分 SLAM 包含两个主要模块: 模块 1:测距模块。即进行环境感知的传感器,包括声呐、激光雷达扫描仪、IMU、摄像头及其他图像传感器。 模块 2:数据提取模块。从测距设备收集的传感数据中提取信息,并据此识别未知环境中的地标特征。一个正常运行的SLAM系统需要机器人(或载体)、测距设备、数据提取软件以及其他硬件、软件或处理技术之间持续协同工作。 二、Lidar SLAM 工作原理2.1 SLAM基本原理SLAM的核心思想是让机器人或自主系统在探索未知环境的同时,构建该环境的地图,并确定自身在所生...
gy-26
123456789101112131415161718192021import smbus2import timeI2C_ADDR = 0x70bus = smbus2.SMBus(1) # Jetson 的 I2C1def read_heading(): # 发送测量命令(可选,有些模块自动更新) bus.write_byte_data(I2C_ADDR, 0x00, 0x31) time.sleep(0.1) # 读取高8位和低8位 high = bus.read_byte_data(I2C_ADDR, 0x01) low = bus.read_byte_data(I2C_ADDR, 0x02) angle_raw = (high << 8) | low # 合成16位 angle_deg = angle_raw / 10.0 # 转为度 return angle_degwhile True: print(f"Heading: {read_heading():.1f}...
qmini训练排查(1)
✅ 任务完成总结我已经详细分析了关节强度、活动角度定义及其对 Roll 晃动的影响,所有分析结果已保存在 /home/ubuntu/project/robot_train/exp_analysis/ 目录中。 🎯 核心答案问题 1: 关节参数定义位置1️⃣ PD 控制参数(最重要)位置: config/BIRL_stable.py 第 54-56 行 12345class pd_gains(SetDict2Class): decimation = 15 # 适当增加 hip_roll 的刚度以抵抗横滚,增加阻尼以减少震荡 stiffness = {'hip_yaw': 55., 'hip_roll': 120., 'hip_pitch': 75., 'knee': 45., 'ankle': 30.} damping = {'hip_yaw': 0.3, 'hip_roll': 3.0...
Nav2记录
一、Planner Server 规划服务器 1.1 数据流输入: 当前位置(来自定位系统) 目标位置(来自 BT Navigator) 全局代价地图(来自 Global Costmap) 处理: 基于 Dijkstra/A* 搜索,应用 tolerance 和 allow_unknown 规则输出: 全局路径(点序列) 传递给 Controller Server 工作流程 二、Controller Server 控制服务器我将详细分析 qmini_nav2 包中 controller_server 的各项参数及其功能。让我基于配置文件为您详细解读。 Controller Server 参数详细分析🎛️ 一、核心服务器参数1. 基础配置1234controller_server: ros__parameters: use_sim_time: False controller_frequency: 20.0 use_sim_time: False 功能: 使用真实世界时间而非仿真时间 用途: 实际机器人部署时设为 False,Gazebo 仿...
找到同一网段下的设备 ip 地址
方式一同一个 wifi 下,jetson 的 ip 地址总是变化。我们可以使用“子网全扫描 + 路由器后台确认“方式确认jetson 的 ip: 1sudo nmap -sn 10.31.225.0/24 同时根据 Jetson mac 地址确认 Ip。 方式二arp-scan 是内网 ARP 扫描的专用工具,可直接扫描网段并筛选目标 MAC,比 Nmap 更精准: 1234567# 1. 安装 arp-scan(macOS 用 brew,Linux 用 apt/yum)brew install arp-scan # macOS# sudo apt install arp-scan # Ubuntu/Debian# sudo yum install arp-scan # CentOS/RHEL# 2. 扫描 10.31.225.0/24 网段,并筛选目标 MACsudo arp-scan 10.31.225.0/24 | grep -i 48:8F:4B:61:35:BE
排查麦克风设备被占用
lsusb 可以看到设备 1234(dev) jetson@ubuntu:~/project/jetson_code/audio$ lsusb...Bus 001 Device 017: ID 2207:0001 Fuzhou Rockchip Electronics Company XFM-DP-V0.0.18... 执行 arecord -l 显示设备被占用、不可用 12345(dev) jetson@ubuntu:~/project/jetson_code/audio$ arecord -l**** List of CAPTURE Hardware Devices ****card 1: XFMDPV0018 [XFM-DP-V0.0.18], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0 查看设备状态文件 123456# 语法:/proc/asound/card{N}/pcm{M}c/sub0/status# N = ...
ROS2
一、ROS2 是什么?ROS2(Robot Operating System 2) 不是操作系统,而是一个机器人开发框架,帮助你: 管理多个程序(节点)之间的通信 重用别人写好的功能(如雷达、IMU、SLAM) 可视化数据(用 RViz2) 控制机器人行为 🛠️ 二、ROS2 基本使用流程(从零开始)1️⃣ 创建工作空间(Workspace)ROS2 项目都放在一个“工作空间”里,通常叫 xxx_ws(ws = workspace)。 123# 创建工作空间(例如叫 my_robot_ws)mkdir -p ~/my_robot_ws/srccd ~/my_robot_ws src/:放源代码(功能包) 编译后会生成 build/、install/、log/ 2️⃣ 放入功能包(Package)比如你下载了 rplidar_ros 雷达驱动: 12cp -r rplidar_ros ~/my_robot_ws/src/✅ 一个功能包是一个独立模块,包含代码、配置、依赖等。 3️⃣ 编译工作空间 123cd ~/my...
quick ubuntu nvidia env
Ubuntu 20.04 环境配置实践NVIDIA Driver通过 Ubuntu 官方的显卡驱动管理工具,自动检测当前系统硬件(显卡型号),并列出推荐安装的 NVIDIA 驱动版本(包括闭源驱动和开源驱动)。 12sudo apt install ubuntu-drivers-common # 先安装驱动管理工具(若未安装)ubuntu-drivers list # 展示可用的驱动 为了使用 OpenGL 等功能,建议 Ubuntu 20.04 可以直接安装 nvidia-driver-535(非服务器版本) 安装步骤 卸载残余驱动 123sudo apt update && sudo apt upgrade -ysudo apt remove --purge nvidia-* # 卸载旧驱动(如有)sudo reboot # 重启后再安装新驱动 安装 12345sudo apt install nvidia-driver-535 nvidia-utils-535sudo reboot # 重启nvidia-smi # 查看驱动 CUDA To...