![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
底盘移动机器人~项目实战
☜@_@达奚黑雁
怕什么真理无穷,进一寸有一寸的欢喜!
展开
-
P11 发布单目camera图像
硬件连线使能摄像头树莓派使能摄像头将树莓派连接HDMI显示器,并运行指令 "sudo raspi-config"。打开摄像头接口,先【enable】,再重启。获取驱动包编译驱动包原创 2021-03-22 08:51:03 · 82 阅读 · 0 评论 -
P8 ROS节点编程发布订阅TF
查找wiki demo样例:wiki主页的Core Libraries。直接在launch中启用坐标系发布节点,在command tool栏通过编程实现坐标系发布节点,在参考api栏原创 2021-03-20 19:14:21 · 171 阅读 · 0 评论 -
P7 TF空间描述与变换
为什么要坐标变换?什么是TFtf能根据时间缓冲,维护多个参考系之间的坐标变换,可以在任何时间,将坐标数据进行转化,完成坐标变换。TF包内的指令工具TF功能包API激光雷达坐标TF变换坐标变换的形式一般有两种:欧拉角、四元数代码解释:type:tf功能包中的广播节点args:前三个元素分别对应 (x,y,z)上的误差,后三个是(x,y,z)方向的夹角。弧度表示。 父级坐标系,自己的坐标系,广播时间间隔(ms)。...原创 2021-03-20 18:34:06 · 117 阅读 · 0 评论 -
P10 ROS节点编程——机器人底盘base节点
ROS机器人底盘base节点base节点的作用:为move_base准备好里程计消息 为move_base转发cmd_vel消息 广播tfbase节点需要整合什么样的消息:整合 线速度 和 角速度 消息 发布 tf ,通过计算发布odom move_base slam_gmapping...原创 2021-03-20 18:10:29 · 312 阅读 · 0 评论 -
P9 ROS节点编程serial节点
ROS节点编程serial连接小脑usb接口名称和权限问题不同的usb设备接入计算机,usb的编号会改变。就如同usb转串口接入win的时候,com号也会变一样。rplidar下有个script目录。里面有个固定usb编号的一个软连接usb权限的问题:sudo chmod 666 ttyUSB0不同的usb设备的硬件编码和产品编码是不一样的,可以用指令 “lsusb -vvv” 查找 “idVendor”和“idProduct”创建rplidar.rules文件,输入以下命令。然后把原创 2021-03-20 15:58:06 · 169 阅读 · 0 评论 -
P5 roboware创建ROS工程编译激光雷达
获得激光雷达SDK包slamtek公司的rplidar A1激光雷达的RPLIDAR SDK包和ros包下载。RPLIDAR SDK包内部含有win驱动程序和测试demoros包用于cp到ros工程中进行编译Roboware studio创建工程创建工程把ros开发包放入空工程中的src目录下编译ros包修改主目录 .bashrc文件把“source ~/catkin_ws/devel/setup.bash”加入.bashrc文件中roslaunch启动激光雷达查看r原创 2021-03-20 15:02:20 · 107 阅读 · 0 评论 -
P3 激光雷达SLAM建图导航的ROS机器人项目介绍
项目描述显示急需使用的项目运输机器人 叉车机器人 服务机器人移动机器人项目的主要核心点主要是激光雷达的导航、视觉避障。本课题实现一个基于激光雷达导航的轮式ros机器人:cmd_vel话题消息可控 相机话题发布 激光雷达SLAM建图 slam_gmapping move_base路径避障 amcl导航软件需求:...原创 2021-03-20 14:28:17 · 350 阅读 · 0 评论 -
10 模拟SPI驱动PS2无线手柄
ROS机器人工程PS2手柄驱动移植什么是驱动移植?不同平台,端口的初始化、配置、数据的读/写 都不一样。改成平台所需格式、用PS2手柄控制你的机器人用PS2手柄调节最大速度用PS2手柄复合键调节PID...原创 2021-03-20 14:08:51 · 343 阅读 · 0 评论 -
09 差速2轮运动学算法整合
ROS机器人工程电机驱动算法整合编码器 PWM PID rpm差速2轮运行学线速度 m/s 角速速 rad/s 转弯控制原创 2021-03-08 09:54:40 · 1246 阅读 · 0 评论 -
08 TIM输出PWM_PID控制算法
TIM输出PWM控制电机PS:所有的芯片端口,最多耐压5V打开PWM波,设定一个波形作为PWM波的输出。300设为100,转速从111将为30rpmPID算法为什么有PID算法?在电机体质不可能相同 相同的pwm加在多个电机,怎么保持相同转速 外力作用,负载变化问题 闭环控制电机转速 测速->误差计算->pwm调整缺点:没有明确的优化准则,基本用经验进行调试。比例(P)控制:力度值积分(I)控制:响应速度微分(D)控制:达到目标值的时候,抑制惯性过调例...原创 2021-03-06 16:00:06 · 672 阅读 · 0 评论 -
07 TIM编码器和AB相电机测速
AB相编码器编码器分为光学和磁极。编码器的性能指标单位:分辨率(转一圈输出多少个信号值)精度390线的编码器:A相390个方波,B相390个方波。相位相差90°,实现4倍频,所以实现390*4=1560个tick的输出如下图所示:编码器方向判断以A相为参考点,A相跳高的时候,B相为高电平,视为正转(或者翻转)以A相为参考点,A相跳高的时候,B相为低电平,视为反转(或者正转)同理,以B相为参考点也是一样编码器转速判断以390线为栗:转速公式:rpm = tick/390*4/原创 2021-03-06 15:14:31 · 1023 阅读 · 2 评论 -
06 串口DMA_终端_超级终端_数据协议
Ros移动机器人工程整个工程代码架构 TTL串口DMA发送debug信息 超级终端显示 serial数据协议 TTL串口DMA发送数据 TTL串口IRO接收协议TTL串口DMA发送debug信息为什么要通过串口打印信息到超级终端?MCU(STM32)没有显示屏MCU 外设 Tx Rx Rx Tx GND GND serial数据协议为什么要有数据协议 同步码起什么作用 定长接收,不定长接收为保证数据的准确性,需要采取协议的限定。同步.原创 2021-03-06 12:16:48 · 303 阅读 · 0 评论 -
05 ROS移动机器人MDK5工程创建
Ros移动机器人工程创建端口规划配置 STM32CubeMX生成MDK工程电机驱动芯片6612(可接两组电机) 和 电动机(带编码器)AIN1和AIN2:控制正反转A01和A02:输出引脚,直接输出电机线的正负一组电机需要消耗MCU(STM32)芯片的5个引脚。如果是四驱的话,就要消耗20个引脚。端口划分:40KHZ的输入。采取64分频,那么数 625 = 40K/64 个频段就会复位。...原创 2021-03-06 10:51:53 · 159 阅读 · 0 评论 -
04 STM32开发环境
开发环境的搭建STM32CubeMX开发工具-下载 -安装 -配置(另外需要安装与芯片相关的软件包pack) 该工具用于图形化配置芯片管脚,配置完后自动打开MDK5 MDK5开发环境-下载 -安装 -配置 安装J-Link驱动、USB2TTL驱动闪烁开发板上的LED灯生成一个MDK5工程编写代码配置J-Link仿真器,刷入程序到芯片中c/c++混合编程...原创 2021-03-03 19:13:45 · 116 阅读 · 2 评论 -
03底盘移动机器人项目立项
项目要求:ps2手柄控制 OLED显示屏 (用于显示pid、vel、rad、rpm等信息) ROS teleop_twist_keyboard发出cmd_vel话题消息可控 相机视觉话题发布 激光雷达、SLAM建图slam_gmapping Move_base路径规划避障 AMCL(adaptive Monte Carlo Localization)导航...原创 2021-03-03 17:58:25 · 131 阅读 · 1 评论