
常用算法
文章平均质量分 63
autoarts
Roslabor
展开
-
ROS 使用C++ jsoncpp库 读写保存json.json 文件
我使用的环境之 ubuntu14.04 + ros-indigo1.安装jsoncpp库 终端运行$ sudo apt-get install libjsoncpp-dev libjsoncpp01.1 好用jsoncpp 读取example.json文件内用example.json{ "filename" : "example.json", "string" : "Hello World!"...原创 2018-06-29 11:18:00 · 6611 阅读 · 0 评论 -
g2o使用编程步骤流程
1.整个代码以后围绕着optimizer对象编程。首先实例化一个g2o::SparseOptimizer类的 optimizer优化器,g2o::SparseOptimizer optimizer;SparseOptimizer是一个虚类,继承了OptimizableGraph -> HyperGraph;SparseOptimizer主要成员: protected: bool* ...原创 2018-07-02 11:38:19 · 3200 阅读 · 1 评论 -
LINUX 多线程C语音编程
1.使用多线程需要包含头文件#include <pthread.h>2.创建线程执行的函数void *func(void *arg)// *arg传参{}3.创建线程#include <pthread.h>int pthread_create(pthread_t * tidp, const pthread_attr_t *attr, void *(*start_rt...原创 2018-07-06 11:48:00 · 265 阅读 · 0 评论 -
Linux 建立一个空的CmakeList.txt 模板工程
前言经常需要在linux建立工程,为了免去每次都重复同样的工作,这里提供一个通用简单的空项目,直接小改动就可以在未来的项目中使用基本 Null_project下的目录结构include 存放头文件的目录include 存放源文件的目录 Null_project目录下的CMakeList.txtCMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #设定版本PROJECT( ...原创 2018-07-13 11:45:23 · 888 阅读 · 0 评论 -
Python OpenCV fast 特征点检测
参考 FAST(features from accelerated segment test)特征提取算法fast特征点是在像素级别上操作的,假设有一个候选点P,判断该定P是不是fast特征点的关键是,查看P点的四周的16个附近的点的灰度值是不是大于指定的阈值threshold =100,如果个数足够大(16个点中差值大于某个阈值的个数大于某个阈值,通常认为阈值为周长的四分之三),则认为该候选点位...原创 2018-07-13 16:13:04 · 5163 阅读 · 1 评论 -
Win10 VMware Ubuntu14.04安装Mosquitto MQTT服务器搭建
1.介绍 MQTT 是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,因此易于实现。这些特点使得它对很多场景来说都是很好的选择,包括受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT),这些场景要求很小的代码封装或者网络带宽非常昂贵。本协议运行在 TCP/IP,或其它提供了有序、可靠、双向连接的网络连接上。它有以下特点: A:使用发布/...原创 2018-07-07 16:21:17 · 2947 阅读 · 0 评论 -
插补速度控制平滑处理控制小总结
插补概念在CNC数控车床中需要控制刀具沿着任意的曲线或者给定系列点走刀,而刀具很难沿着曲线行走,通常的做法是没把曲线量化分割为直线线段圆弧线段两种,这就涉及到直线插补,圆弧插补。所谓“插补”就是指在一条已知的起点O和终点A的曲线上进行数据点的密集化,插补的任务就是跟句给进速度要求,在起点O和终点A之间,计算曲线上的具体坐标值。 clc;clear;pStart = ...原创 2018-08-05 19:56:08 · 3388 阅读 · 1 评论 -
Dijkstra 迪杰斯特拉 寻找全局路径实现 纯代码
原理参考 https://www.cnblogs.com/chxer/p/4542068.html代码实现#include <stdio.h>#include <string.h>#include <math.h>#define ROWSIZE 10#define COLSIZE 10#define PATHSIZE ROWSIZE+CO...原创 2018-08-20 13:28:32 · 386 阅读 · 0 评论 -
A*算法 寻路径 实现,纯代码
参考 设计到的启发公式f = g + hg: 起始节点start到当前搜索节点current的代价(步数)cost ,是比较确定的一个数值h: 当前搜索节点curret到 终点节点goal的代价(步数)cost ,这是一个大概的估计 不是真的要这么对代价(步数),h计算可以根据 曼哈顿 距离就算 h = abs(currret[x] - goal[x]) + abs(...原创 2018-08-20 14:53:25 · 823 阅读 · 0 评论 -
数据结构 图论中求单源最短路径实现 纯代码
如下有向图 求出单源起点A到所有其他节点的最短路径完整代码:#include <stdio.h>#include <memory.h>//图论的迪杰斯特拉算法#define FINITY 200#define M 20//单源点顶点到其他所有顶点的最短路径typedef int edgetype;typedef int vertextype;...原创 2018-08-21 10:43:05 · 446 阅读 · 0 评论 -
百度无人驾驶Apollo 平台搭建
0.虚拟机Vmware Machine1.安装ubuntu 14.042.在Ubuntu14.04中安装ros3.下载 https://github.com/ApolloAuto/apollo-kernel/releases linux-4.4.32-apollo-1.5.0.tar.gztar zxvf linux-4.4.32-apollo-1.5.0.tar.gz # 解压cd ins...原创 2018-05-30 13:26:53 · 5362 阅读 · 1 评论 -
Ubuntu下用Python 文件分享服务器HTTP FTP,浏览器为客户端
python 简单HTTP文件分享服务器 1.确保 ubuntu 已经安装了python2.开启终端 执行如下命令python -m SimpleHTTPServer 8000 #端口号可以修改以上这句命令 会启动一个HTTP服务器,如果当前文件夹下有index.html文件,会默认显示该文件,否者会议文件目录的显示显示当前目录下的所有文件3.浏览器访问HTTP服务器,网址输入http://lo...原创 2018-05-16 16:07:44 · 2002 阅读 · 0 评论 -
Matlab 控制ROS下的机器人做S型加减速度控制
<1> Matlab 与 ROS 通信 Ubuntu下IP地址为 192.168.0.104 win10 Matlab IP地址 为 192.168.0.103确保 Ubuntu 与 win10 相互能ping通<2>在ubuntu 下 修改.bashrc文件cd ~gedit .bashrc在文件尾添加export ROS_HOSTNAME=192....原创 2018-05-09 17:16:49 · 2519 阅读 · 1 评论 -
例子滤波重要性重采样 (车轮法)
当粒子群各个粒子计算完权重之后,需要对权重归一化 matlab 模拟随机产生权重w_raw 归一化w_normN = 5;w_raw = 10*rand(1,N);w_norm = w_raw/sum(w_raw)pie(w_norm)执行显示w_norm = 0.4083 0.1484 0.3344 0.0341 0.0747各粒子权重比例对权重累...原创 2018-05-09 21:28:04 · 2529 阅读 · 1 评论 -
Matlab PID控制 C语言代码片段
clc;clearN = 100;x = linspace(-3*pi,3*pi,N);% 目标值% target_val = 20*ones(1,N);target_val = 5*sin(x);% 当前值current_val =2;% PID 临时变量integral = 0;last_err = 0;% PID 增益参数Kp = 0.2;Ki = 0.1;Kd...原创 2018-05-10 15:30:04 · 3129 阅读 · 1 评论 -
ROS编程小demo - ROS节点创建定时器,周期执行任务例子
1.ROS节点创建定时器 // ros 头文件// =========== Function declarations =============void CB_mainCycle(const ros::TimerEvent& e);void CB_publishCycle(const ros::TimerEvent& e);// =============== Mai...原创 2018-05-17 10:27:05 · 2784 阅读 · 0 评论 -
一种使 Dijkstra A* 规划出来的路径更平滑的方法
我们知道一般用Dijkstra A* 等路径规划算法规划出来的路径都不是很平滑的 机器人沿着这些不平滑路径驾驶,效果差强人意,为了时机器人能自然的沿着给定路径行驶,必须对路径点做平滑处理如上图 S表示路线规划的起点, E表示路线规划的重点 ,蓝色的线为路线规划 Dijkstra A*规划出来的路路线,但在实际行驶中,车辆不可能遇到大拐弯原地停下后转个90度的大弯,不仅可操作性...原创 2018-04-27 21:10:14 · 10408 阅读 · 5 评论 -
C++ std::vector 容器
<1>有文件 #include <vector><2>创建vector对象std::vector<int> vec; //模板类型可以是 int double short string struct class map list set vector等<3>数据插入vectorvec.push_back(a);vec.push_ba...原创 2018-05-07 18:43:08 · 386 阅读 · 0 评论 -
C++ 产生均匀分布 高斯分布 函数
class Sample {public: static int uniform(int from, int to); static double uniform(); static double gaussian(double sigma);};static double uniform_rand(double lowerBndr, double upperBndr){ ...原创 2018-08-21 15:36:53 · 2114 阅读 · 0 评论