- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 ROS仿真机器人实现Rviz轨迹显示
3、启动导航的launch文件中添加启动该cpp文件。1、导航包中创建.cpp文件,并将以下代码复制进去。2、CMakeLists当中添加可执行文件及链接库。
2023-05-15 14:25:54
3329
4
原创 嵌入式学习(3)ADC、DMA、通信方式
USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力。寄存器,是连接软件跟硬件的桥梁,软件可对寄存器读写,而每个寄存器下面都连着一根导线,读写寄存器来改变状态,从而控制硬件。数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行。
2022-12-08 21:15:17
2626
原创 嵌入式学习笔记(2)中断、定时器、PWM、输入输出
中断系统中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回中断执行流程外部中断EXTI(Extern Interrupt)外部中断EXTI可以监测指定GP
2022-12-04 20:28:54
1130
原创 嵌入式学习笔记(1)基本知识、C语言常用关键字、OLED
输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。0.96寸OLED模块:小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块。OLED显示屏:性能优异的新型显示屏,具有功耗低、响应速度快、宽视角、轻薄柔韧等特点。STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器。
2022-11-24 19:50:01
2871
原创 A星算法优化(四)贝塞尔曲线平滑处理
本文接上一篇:A星算法优化(三)搜索邻域B站视频讲解:如果有帮助,请三连支持,创作不易,禁止白嫖谢谢~将从以下5个点进行改进:1、启发函数——曼哈顿距离等2、权重系数——动态加权等3、搜索邻域——基于8邻域搜索改进4、搜索策略——双向搜索、JPS策略等5、路径平滑处理——贝塞尔曲线、B样条曲线等贝塞尔曲线三步走:1、先了解贝塞尔曲线原理2、用代码实现3、将代码应用在A星算法上1、原理详细参考:https://www.aiuai.cn/aifarm1570.html2、三阶贝塞尔
2022-04-02 22:19:15
11267
15
原创 A星算法优化(三)搜索邻域
将从以下5个点进行改进:1、启发函数——曼哈顿距离等2、权重系数——动态加权等3、搜索邻域——基于8邻域搜索改进4、搜索策略——双向搜索、JPS策略等5、路径平滑处理——贝塞尔曲线、B样条曲线等搜索邻域改进0、改进效果1、基础8邻域搜索2、改进为5邻域搜索3、32邻域、48邻域...
2022-03-26 18:25:17
6358
6
原创 A星算法优化(二)权重系数
将从以下5个点进行改进:1、启发函数——曼哈顿距离等2、权重系数——动态加权等3、搜索邻域——基于8邻域搜索改进4、搜索策略——双向搜索、JPS策略等5、路径平滑处理——贝塞尔曲线、B样条曲线等权重系数改进...
2022-03-25 19:42:23
10047
2
原创 A星算法优化(一)启发函数
笔者将从以下5个点进行改进:1、启发函数——曼哈顿距离等2、权重系数——动态加权等3、搜索邻域——基于8邻域搜索改进4、搜索策略——双向搜索、JPS策略等5、路径平滑处理——贝塞尔曲线、B样条曲线等一、启发函数(理论)A星算法评价函数为
2022-03-17 16:54:45
22833
7
原创 Action动作通信应用(2):自建跑道,导航小车跑圈
一、需求: 使用Tianbot_mini_gazebo环境,更换为自己搭建的跑道地图,使用move_base框架,Action通信,导航小车跑圈二、实现效果:三、实现过程:1、先参考:Action通信简介及案例1:发送单导航目标点2、替换仿真地图地图代码:room_square.world添加到worlds文件目录下修改launch文件:3、加载仿真环境roslaunch tianbot_mini_gazebo simulation.launch4、启动SLAMroslaunch
2022-03-09 11:19:34
1845
4
原创 Action通信简介及案例1:发送单导航目标点
一、Action通信二、实现过程仿真环境我们使用开源turtlebot3项目,重点放在单目标点导航实现上1、打开终端,设定机器人模型export TURTLEBOT3_MODEL=burger ## TURTLEBOT3_MODEL有burger, waffle或waffle_pi三种2、加载仿真环境roslaunch turtlebot3_gazebo turtlebot3_world.launch3、启动导航roslaunch turtlebot3_navigation turtle
2022-03-08 20:57:15
4011
16
原创 使用自定义RRT*全局规划器建图导航
使用tianbot_mini开源模型,gmapping建图算法,RRT*全局规划器,其中规划器采用插件的形式开源地址:https://github.com/tianbot/tianbot_mini
2022-03-01 14:53:13
7532
28
原创 PID算法在ROS仿真环境中的理论及应用(ROS_F1TENTH)
一、需求:在F1TENTH 仿真环境simulator中,使用PID算法实现无人车沿墙走wall_following源码链接:https://github.com/Grizi-ju/ros_program/blob/main/wall_following_pid.cpp(另外两个是python版本的)B站讲解:https://www.bilibili.com/video/BV14F411v7Jw?spm_id_from=333.999.0.0C++ROS阿克曼车二、实现效果:三、实现过程
2022-02-15 21:44:11
7476
7
原创 ROS服务通信应用(2):服务与话题结合,触发小车运动
需求: 在F1TENTH仿真环境中,写一个C++程序,请求一个服务,触发小车运动实现效果:代码部分:/** * 服务通信:该例程在F1TENTH仿真环境下,执行/car_command服务,服务数据类型std_srvs/Trigger */ #include <ros/ros.h>#include <std_srvs/Trigger.h>#include <ackermann_msgs/AckermannDriveStamped.h>ros::Pub
2022-01-28 15:41:48
4628
原创 ROS服务通信应用(1):创建服务客户端,生成多只乌龟
需求: 在turtlesim仿真环境中,写一个C++程序,创建客户端,请求/spawn服务,生成多只乌龟实现效果:服务通信常用命令行工具:rosservice list 服务列表rosservice type /spawn 消息类型rossrv info turtlesim/Spawn 消息格式rosservice call /clear 清除功能(可以清理小乌龟走过的线路)rosservice call /kill “name: ‘turtle1’” 杀死小乌龟ross
2022-01-28 15:33:29
3664
原创 python简单实现控制小车并TTS语音播报(20行代码)windows
一、装win32comwin32com调用的windows的SAPI,所以只适用于windows平台python3 -m pip install win32com或python3 -m pip install pypiwin32二、装mini小车的库或者控制电机,这个怎么设计随意,就是在你原来程序上调用win32com的库用无线连接小车,python控制小车,调用tianbot_mini的库装mini库 python3 -m pip install tianbot_mini-lib#
2021-09-29 17:54:40
1228
原创 从零开始仿真ROS小车(二)在gazebo中显示小车模型
一、实现过程1、 从零开始仿真小车(一)urdf模型+rviz可视化2、从零开始仿真小车(二)在gazebo中显示小车模型优化xacro文件,并为模型添加碰撞参数、惯性矩阵、颜色,在rviz、gazebo中显示3、从零开始仿真小车(三)运动控制、激光雷达仿真、深度相机仿真4、从零开始仿真小车(四)建图与导航二、实现效果及包含文件蓝色的相机和黑色的激光雷达没有,我这是已经加好的,我会在之后的文章中写三、优化xacro模型在手写urdf模型+rviz可视化基础上,我以方形全向轮车为基
2021-09-01 16:35:30
15691
14
原创 Git的基本使用(for linux)
一、添加新建文件1、创建目录mkdir git_test2、新建文件并添加到本地仓库touch test.cppgit add test.cpp 将文件添加到缓存区git commit -m “add new—这里写描述信息” 提交到本地仓库二、改写提交发现注释写错了,要修改git commit --amend 进入编辑器界面编辑完后ctrl+o保存,回车,ctrl+x离开三、查看历史提交日志git log四、回滚代码仓库git reset --hard–hard
2021-08-23 13:36:37
361
原创 从零开始仿真ROS小车(一)urdf模型+rviz可视化
Unified Robot Description Format,统一机器人描述格式,简称为URDF代码已上传个人git账号Grizi_ju一、创建功能包cd catkin_ws #进入工作空间catkin_create_pkg jubot_demo urdf xcaro #创建功能包、添加依赖cd jubot_demo/mkdir urdfmkdir launchmkdir meshes #存放渲染机器人模型的文件mkdir config #存放rviz配置的文件打开VS Code
2021-08-10 14:51:09
17893
37
原创 OpenCV(一)ROS下的OpenCV实现人脸检测
一、实现目标及效果利用笔记本电脑上的摄像头,通过ROS和OpenCV,利用Haar Cascade进行人脸检测参考文档:https://docs.opencv.org/4.5.2/db/d28/tutorial_cascade_classifier.html(不宜露脸)二、实现过程1、安装usb_camsudo apt-get install ros-kinetic-usb-cam2、创建功能包,把xml文件下载到包里xml是分类器文件,在OpenCV官网上可以下载到,我个人git账号上
2021-08-06 19:37:45
2120
原创 ROS编程(三)多个乌龟跟随阵型
多个机器人协作时,需要互相知道对方的姿态,利用turtlesim也可以进行多个乌龟的协作。一、实现效果某只乌龟的姿态信息:x轴y轴、yaw角、线速度、角速度二、文件部分记得将cpp文件权限设置为可执行程序,并添加CMake编译规则,catkin_make,souce等一系列操作三、代码部分1、在功能包里创建新节点turtle_new.cpp 原理是向spawn这个服务提出请求,生出多个新乌龟#include <ros/ros.h>#include <tu
2021-08-06 18:06:57
4262
原创 ROS编程(二)控制小乌龟绘制矩形
一、实现效果实际turtlesim本身有draw_square这个节点,直接命令打开就行,我这里自己写一个二、实现过程1.在工作空间下创建一个新的功能包my_turtlecatkin_create_pkg my_turtle roscpp rospy std_msgs2.进入功能包创建并编辑新的cpp文件draw_rectangle.cpptouch draw_rectangle.cpp(我用VS编辑的,代码附在下面)3.设置为可执行文件,并CMake中配置编译规则add_execut
2021-08-05 00:33:34
9068
4
原创 Arduino篇(二)火焰、烟雾、CO等多个传感器组合实验设计
最近用Arduino做了一个简单的多个传感器组合的实验,比较简单,设想的应用场景是火灾检测。如下图所示:一、实验材料MQ-2烟雾传感器、5路火焰传感器、CO一氧化碳传感器,无源蜂鸣器、LED灯、arduino mega开发板、面包板以及杜邦线若干。二、功能说明设想在一个火灾场景中,当检测到火焰时,火焰触感器检测并触发蜂鸣器报警和LED警示灯亮,当一氧化碳浓度超标或检测到烟雾,蜂鸣器响。我用LED代替了电推杆,设想是电推杆触动灭火装置。三、程序设计/* 多传感器 MQ-2烟雾、CO一氧化碳、
2021-07-24 16:10:53
12877
12
原创 ROS编程(一)写一个最简单的发布者订阅者
想把自己学过的东西慢慢整理成文章,一是巩固自己,二是分享知识。教程参考的是wiki.ros.org目录:1.创建功能包2.写发布者代码,配置编译规则3.写订阅者代码,配置编译规则4.编译功能包5.运行节点1.在catkin_ws中创建功能包在catkin_ws目录下打开终端catkin_create_pkg beginner_tutorials rospy roscpp std_msgscd ~/catkin_wscatkin_makesource devel/s.
2021-07-19 21:12:18
1230
2
原创 ROS真车篇(一)激光雷达SLAM建图+自主导航+RGB深度相机
这篇当做实验的笔记之前用turtlebot3完成了SLAM建图及自主导航,这次是真车实践篇。一、SLAM建图登录的主机是小车端的工控机,已经植入ROS系统,从机是自己的电脑设备。启动launch文件要在主机远程控制端,也就是打开的第一个终端,启动rviz界面要在自己的客户端,也就是第二个终端。1、 SSH登录小车端ssh wheeltec@192.168.(小车IP地址)输入密码:********2、打开第二个终端,PC端,这个终端不要登录SSHip a 查看自己电脑的IP地址nano
2021-07-18 16:23:18
9081
2
原创 ROS探索篇(三)基于turtlebot3实现SLAM建图及自主导航仿真
0、turtlebot3简介TurtleBot3是一个小型,低成本,完全可编程,基于ROS的移动机器人。它旨在用于教育,研究,产品原型和爱好应用的目的。TurtleBot3的目标是大幅降低平台的尺寸和价格,而不会牺牲性能,功能和质量。由于提供了不同可选,如底盘,计算机和传感器,TurtleBot3可以通过各种方式进行定制。1、安装turtlebot3sudo apt-get install ros-melodic-turtlebot3-* //安装gmapping建图算法依赖apt-get ins
2021-07-12 16:11:45
8172
14
原创 mount: /media: 未知的文件系统类型“exfat”.
Linux插入U盘挂载时出现以下问题exfat用于某些USB memory 和相机SD卡解决方法:我用的是18.04版本,安装exfat-fuse和exfat-utilssudo apt-get install exfat-fuse exfat-utilsmount是挂载命令,在linux系统中所有新硬盘或者光盘,或者ISO文件并不能直接被系统检测并挂载(现在部分系统使用桌面化,有自动挂载这个功能)mount指令一般用法如下: mount -t 文件类型 /dev/… dir/de
2021-07-10 10:37:06
3195
原创 Arduino篇(一)esp8266实现温控和语音控制风扇
一、温湿度控制风扇1、功能说明通过改变外界温湿度,由于条件限制,采用口哈气的方法。传感器接收数据,当测量的湿度(h)大于40.00%,温度大于30度时,电机正转,转速200,此时绿灯亮;当测量湿度低于这个数值时,电机反转,转速125,此时红灯亮。2、实验结果图3、程序#define BLINKER_WIFI//#define BLINKER_WITHOUT_SSL //blinker默认使用加密方式进行远程通信,但通信加密会消耗大量的RAM,如果您对通信安全性无要求,
2021-07-01 12:04:46
7310
2
原创 ROS探索篇(二)——建立ROS与Arduino之间的通信
一、安装环境1.安装Arduinosudo apt-get install arduino2.启动arduino并进行相关设置arduino3.安装软件包rosserial arduinosudo apt-get install ros-melodic-rosserial-arduinosudo apt-get install ros-melodic-rosserial4.把ros_lib文件复制到arduino libraries里我们要把ros的库放到arduino的库里,在你的
2021-06-07 17:01:08
2854
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人