- 博客(50)
- 资源 (3)
- 收藏
- 关注
原创 gmapping 实现过程和数据走向
初始化地图坐标map:map是不会变化的,是gmapping 程序启动的位置姿态就是地图的原地。获取当前激光雷达时间下的odom->lase的tf来得到里程计的位姿。后面通过getPose来读取gmap_pose的位姿。通过tf变换来计算里程计的位姿。
2024-09-05 21:59:00 297
原创 小车tf如何配置
原因:小车导航跑不好小车位置漂移很严重,修改导航参数无法解决,最后检查发现是tf变化的问题。小车tf变化就好像告诉小车的手和脚在那里。首先确定确定小车主坐标系:即base_footprint(0,0,0,0,0,0)—原点坐标—使用右手坐标系。手就是小车x正方向即小车的正反向,然后基于这个坐标系确定自己的传感器的位置:这个是我的urdf的设置:主要修改了imu和激光雷达和base_link的位置,其他轮子的无关紧要的没有用到。检查urdf语法问题:生成可视化pdf这里后面发现一个问题就是导航时候发现激
2024-08-19 09:08:54 1013 1
原创 gmapping算法核心部分
初始化位姿:如果是第一次处理扫描,初始化上一次粒子位姿和里程计位姿。更新粒子位姿:使用运动模型更新所有粒子的位姿。输出信息:将里程计信息和粒子更新信息写入输出文件。累积距离:累积机器人的平移和旋转距离。检查跳跃:如果机器人跳跃则发出警告。处理扫描:只有在机器人行驶了一定距离后才处理扫描,进行扫描匹配、更新树权重、重采样等操作。返回处理标志:返回是否处理了当前扫描的标志。
2024-08-19 01:02:16 690
原创 C++常用的设计模式和内存管理
使用new分配的内存必须使用delete释放。使用new[]分配的数组必须使用delete[]释放。使用智能指针可以自动管理内存。使用 RAII 和容器也可以帮助管理内存。确保遵循这些规则,可以帮助你编写健壮且无内存泄漏的C++代码。
2024-08-10 10:29:12 739
原创 pyqt5图片分辨率导致的界面过大的问题
图片分辨率:500*500;显示屏分辨率:600;导致界面显示不全;在其他高分辨率显示屏中没有这个问题。
2024-07-09 11:36:01 163
原创 对于阿克曼底盘的teb local planner 的参数如何进行优化
的参数优化需要考虑到阿克曼转向机构的限制,例如最小转弯半径和前轮转向角度限制。以下是一些针对阿克曼底盘机器人的。对于阿克曼(Ackermann)底盘的机器人,
2024-04-19 11:43:02 783 1
原创 ros2 底盘控制程序实践
在这个例子中,它仅仅是输出日志信息,指示节点仍然在运行。这个脚本创建了一个简单的ROS节点,该节点每0.5秒输出一条日志信息。在键盘中断(Ctrl+C)之后,关闭ROS节点并等待线程结束。表示这是一个守护线程,当主线程退出时,守护线程也会退出。主函数进行ROS 2的初始化,实例化自定义节点。创建一个新线程,该线程的目标是执行ROS节点的。创建一个ROS节点的定时器,频率为2Hz。),然后在结束时销毁节点并关闭ROS。这里初始化了ROS 2,创建了一个名为。来初始化节点,指定节点的名称为。
2024-01-18 09:31:26 560
原创 Cartographer中的2D扫描匹配算法
位置:cartographer_ws/src/cartographer/cartographer/mapping/internal/2d/scan_matching/ceres_scan_matcher_2d.cc。位置:cartographer_ws/src/cartographer/cartographer/common/internal/ceres_solver_options.cc。基于高斯-牛顿迭代法的2D-ICP—高翔老师的代码。
2024-01-03 00:51:27 814
原创 Python下非阻塞式读取键盘输入
在Python编程中,有时需要实时地读取键盘输入,但是正常的输入方式会阻塞程序执行,导致不能及时响应。这时可以使用一些技巧实现非阻塞式获取键盘输入。本文将介绍在Python中如何通过tty和termios模块实现非阻塞读取键盘输入。
2023-09-12 17:22:18 1989
原创 ros线程订阅API
这样就实现了一个按需创建,自动关闭的Subscriber,可以根据需要启用和关闭,减少不必要的资源占用。在使用上就是导入这个类,创建实例,然后调用get_data()获取数据即可,比较简单方便。调用get_data()时才会创建Subscriber,并开始接收数据。可以重用,再次调用get_data()会重新创建Subscriber。需要注意超时时间设置合理,不要太短,保证有足够时间来接收到数据。timer_callback() 定时器回调,判断是否需要关闭。提供get_data()接口获取最新消息数据。
2023-09-12 17:09:08 260
原创 深度强化实车部署教程
这里讲一下如何部署有两种方式部署:第一种实车远程控制:即通过roscore中的IP设置实现远程控制;具体可以参考turtlebot3的PC连接turtlebot3并控制的教程;我使用的是这种方法;第二种直接在小车是运行模型:没有测试过,如果你的模型小,应该是可以部署到小车上直接跑的,我感觉我的那个模型是很小的可以在树莓派和nano上跑。环境部署:安装pytorch就可以:参考官网安装,根据自身硬件需求来安装。文件:以PPO为例主程序:actual_tranining.py。
2023-08-03 09:50:50 1053
原创 things board开发
Tingsboard官网(中文):http://www.ithingsboard.com/docs/user-guide/install/windows/Tingsboard学习:https://blog.csdn.net/weixin_39888010/category_12183390.html。Tingsboard官网(英文):https://thingsboard.io/docs/user-guide/install/windows/开发工具:IDEA、vscode。
2023-06-02 13:39:30 149
原创 基于深度强化学习算法的仿真到实践教程
基于深度强化学习算法的仿真到实践教程ubuntu18.04 + pytorch+ ros-melodic+gazebo9环境配置:ubuntu18.04安装跳过 ,虚拟机和双系统都可以虚拟机:在虚拟机中安装Ubuntu 18.04 - 简书 (jianshu.com)双系统:(13条消息) Windows 10 安装ubuntu 18.04 双系统(超详细教程)_Ycitus的博客-CSDN博客_win10安装ubuntu双系统ROS-melodic 安装:wget http://fishr
2022-11-07 13:55:05 5638 27
转载 ModuleNotFoundError: No module named ‘playsound‘
ModuleNotFoundError: No module named 'playsound'
2022-09-14 18:07:45 1409
原创 SD卡镜像拷贝裁剪
SD卡镜像拷贝裁剪使用软件Win32[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tqcls3LR-1651029633512)(C:\Users\26503\AppData\Roaming\Typora\typora-user-images\image-20220427110836623.png)]首先创建一个text.img的空文件,将需要备份的系统的SD卡插入电脑[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8EDohqUC-16
2022-04-27 11:21:15 347
原创 程序封装1111
安装cython pip install cython创建一个setup.py文件#!/usr/bin/env python3# -*- coding: utf-8 -*-from distutils.core import setupfrom Cython.Build import cythonizeimport os# 在列表中输入需要加密的py文件key_funs = ['Biohazard_Wastes.py']setup( name="Biohazard_Wastes
2022-03-22 23:05:20 349
原创 TD3代码详解
TD3代码详解#参考TD3原理食用:https://zhuanlan.zhihu.com/p/55307499import randomimport gymimport numpy as npimport torchimport torch.nn as nnimport torch.optim as optimimport torch.nn.functional as Ffrom torch.distributions import Normalimport matplotlib.p
2022-01-12 16:01:42 2669
原创 opencv虚拟键盘
opencv可打字母的虚拟键盘需要安装的依赖pip install opencv-pythonpip install cvzone==1.4.1pip install numpyimport cv2from cvzone.HandTrackingModule import HandDetectorfrom time import sleepimport numpy as npimport cvzonefrom pynput.keyboard import Controllercap
2021-12-28 13:24:49 2080
原创 创建一个两轮ROS机器人
创建你的第一个两轮ROS机器人(模拟)sudo gedit myrobot.urdf<?xml version='1.0'?><robot name="dd_robot"> <!-- Base Link --> <link name="base_link"> … </link> <!-- Right Wheel --> <link name="right_wheel"> <visu
2021-12-15 11:18:22 1981
原创 里程计信息
导航消息之nav_msgs/Odometryrosmsg show nav_msgs/Odometrystd_msgs/Header header uint32 seq time stamp string frame_idstring child_frame_idgeometry_msgs/PoseWithCovariance pose geometry_msgs/Pose pose geometry_msgs/Point position float64 x
2021-12-15 10:01:03 322
原创 pytorch-GPU检测代码
pytorch模型搭建DQN使用GPU测试GPUimport torchflag = torch.cuda.is_available()print(flag)ngpu= 1# Decide which device we want to run ondevice = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")print(device)print(torch.cuda.get
2021-12-15 10:00:28 4297
原创 DQN,DDPG,SAC,PPO算法在turtlebot3上的仿真实验
DQN,DDPG,SAC,PPO算法在turtlebot3上的仿真实验
2021-12-05 14:04:08 3986 15
原创 DDPG训练数据处理
DDPG训练数据import matplotlib.pylab as pltdef loadData(filePath): fr= open(filePath,'r+') lines = fr.readlines() length =len(lines) reword_curred_ep=[] qvalue=[] loss_c=[] loss_a=[] for line in lines: items = line.str
2021-11-24 14:38:39 712 1
原创 DQN代码-ROS-turtlebot3
DQN代码解析代码来自turtlebot3_qdn/environment_stage_4.py发布话题:cmd_vel订阅话题:odom服务话题:gazebo/reset_simulation,gazebo/unpause_physicsgazebo/pause_physics\def:getGoalDistace(计算获得目标距离):return goal_distancegetOdometry(读取里程信息计算航向角):self.position=odom.pose.pose.p
2021-11-13 15:02:31 1930 1
原创 2021-11-09
import matplotlib.pylab as pltimport matplotlibdef loadData(filePath): fr= open(filePath,'r+') lines = fr.readlines() length =len(lines) reword_curred_ep=[] qvalue=[] loss_c=[] loss_a=[] for line in lines: items =
2021-11-09 08:18:20 136
原创 2021-11-06
串口通讯软件安装:sudo apt-get install cutecom读一下pyserial 的代码#! /usr/bin/env python## (C) 2001-2015 Chris Liechti <cliechti@gmx.net>## SPDX-License-Identifier: BSD-3-Clause"""\Multi-port serial<->TCP/IP forwarder.多端口串口<->TCP/IP转发器- RF
2021-11-06 15:38:19 500
原创 2021-11-06
使用虚拟环境训练turtlebot3小车实现避障碍实现导航关键词:DDPG,turtlebot3,gazebo,强化学习,避障导航, pytorch。环境已经搭建好了开始1.roslaunch turtlebot3_gazebo turtlebot3_stage_4.launch2.用vscore运行DDPG程序开始训练数据记录rostopic echo /resultrosbag record /result数据内容 if flag: total_result = rewards_
2021-11-06 11:09:51 676 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人