- 博客(28)
- 收藏
- 关注
原创 ubuntu18.04两台电脑ntp时间同步
1.主机安装ntp服务器sudo apt-get install ntp2.然后备份并配置ntp.conf,并重启sudo cp /etc/ntp.conf /etc/ntp_backup.confsudo gedit /etc/ntp.conf #修改内容sudo service ntp restart配置如下xiugaineir其中红色部分为修改的内容:配置NTP服务器池(第一个框)broadcast根据自己的ip填,末尾是255(第二个框)3.在UFW防火墙开启上NTP服务权
2022-04-24 16:43:16
2478
1
原创 ROS 发布、订阅话题自带node名前缀
ROS 发布、订阅话题自带node名前缀ROS node主程序ros::init(argc, argv, "laserMapping");ros::NodeHandle nh("~"); //加上这个~//注意topic名前没有/ros::Subscriber sub_imu = nh.subscribe<sensor_msgs::Imu>("imu", 200000, imu_cbk);ros::Publisher pubPath = nh.advertise<nav_ms
2022-03-11 09:56:53
522
原创 ubuntu18.04安装mavros并读取pixhawk飞控数据
Mavros源码安装最新mavros详细安装教程(亲测可行)启动mavros上述步骤完成后,启动px4.launchroslaunch mavros px4.launch此时rostopic list可以看到许多topic提高IMU频率首先启动roslaunch mavros px4.launch新开一个终端,输入rosrun mavros mavcmd long 511 105 10000 0 0 0 0 0/mavros/imu/data_raw 的频率被提高到了100Hz,
2021-10-27 16:13:25
1215
1
原创 ROS 添加自定义.msg文件生成的.h文件
学习SLAM过程中,经常需要表示机器人的位姿、速度、IMU的偏置、重力等状态量,这还四海用自定义的消息类型就很方便,如:在其他的可执行文件中可能需要用到这两种消息类型,则是通过包含对应的头文件实现的但在clion等IDE中可能会出现如下“找不到头文件”的情况原因是自定义消息对应的头文件被放在了 该project所在工作空间的devel/include下在CMakeLists.txt中包含该路径即可...
2021-09-06 14:58:13
2664
原创 ROS launch使用gdb调试工具
ROS node报如下错误[laserMapping-2] process has died [pid 15406, exit code -11, cmd /home/dji/workspace/fastlo_ws/devel/lib/fast_lio/fastlio_mapping __name:=laserMapping __log:=/home/dji/.ros/log/6a24a96a-0ed9-11ec-ada0-b07b2529e950/laserMapping-2.log].使用g
2021-09-06 14:30:44
4507
1
原创 安装ubuntu后的环境和工具配置
一些常用工具,如zsh, terminator, clion, ros等的安装请参考yunfan ubuntu安装后的琐事zsh中有一些好用的插件,比如默认安装的插件位于路径.oh-my-zsh/plugins/。 插件配置通过zsh配置文件~/.zshrc中的plugins即可:plugins=( zsh-syntax-highlighting zsh-autosuggestions git autojump extract)命名高亮:zsh-syn
2021-08-10 17:42:17
257
原创 Rviz可视化工具Marker示例:目标检测画矩形框
需求经目标检测算法识别出目标后,需要以目标为中心画一个矩形框,将目标框出,在Rviz中显示。所用的工具为ROS的marker消息类型。Marker显示允许各种基本形状的可编程添加到3D显示,通过发送visualization_msgs/Marker 来实现可视化。先看效果头文件包含ros::Publisher marker_pub = nh.advertise<visualization_msgs::Marker>("/visualization_marker", 10);填充数
2021-05-06 15:23:16
5426
原创 ubuntu18.04 安装CLion和Pycharm在安装界面卡死
之前老是在安装界面卡死(气到吐血),是因为fcitx输入法框架(下图两个小乐色)与jetbrians的东西不兼容 (比如CLion和pycharm)安装前先把fcitx退掉,再安装,十分顺畅下一次使用clion前,在命令行打开clion终于可以愉快地使用CLion了!!!...
2021-03-12 22:33:07
465
原创 手持雷达建立2D地图:Delta_III_ROS+Cartographer_ROS
文章目录Cartographer安装跑一个bag试试下载官网示例bag运行bag让雷达动起来雷达基本信息获取Cartographer安装sudo apt install ros-melodic-cartographersudo apt install ros-melodic-cartographer-rossudo apt install ros-melodic-cartographer-ros-msgs之后可以在 /opt/ros/melodic/share 找到这三个包,若找不到可以用ro
2020-12-23 16:58:47
1973
1
原创 ROS/C++创建自己的类库(头文件和源文件)
文章目录目标Step1 新建头文件point.hppStep2 创建源文件point.cppStep3 修改CMakeLists.txtStep 4 新建一个程序验证是否可以包含该头文件目标在wbt_ws下的c_program_100功能包新建自己的头文件 <point.hpp>,并在同一功能包的可执行cpp文件中引用该头文件Step1 新建头文件point.hpp在工作空间的src文件夹找到目标功能包 c_program_100,新建include/c_program_100 文件夹
2020-12-17 13:25:33
1996
2
原创 Linux获取程序运行时间(微秒级精度)
在 <sys/time.h> 中定义了 gettimeofday()函数,用于获得当前精确时间(1970年1月1日到现在的时间)//函数声明int gettimeofday (struct timeval * tv, struct timezone * tz);//参数1:保存获取时间结果的结构体struct timeval { time_t tv_sec; /* seconds */ suseconds_t tv_usec; /* microse
2020-12-16 23:10:55
1360
3
原创 C/C++学习笔记:类 (Class)和对象 (Object)
先给一个简单的模板,知识点后面补上。。。//创建一个Point类//创建数据成员,存储一个三维点的x,y,z坐标,数据类型为double//创建成员函数,实现点的创建和数据输出#include <iostream>#include <string>using namespace std;class point{ public: //成员函数都在公有区;成员函数默认是内联函数 point(double a, double b, double c)
2020-12-16 22:14:20
321
1
原创 C/C++学习笔记:预处理命令
预处理命令以#号开头的命令称为预处理命令;在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理、提前处理)。如#include <stdio.h> //引入头文件#define MAX 100 //宏定义例子#if, #elif, #else, #endif文件包含命令#include用法C语言开发者们编写了很多常用函数,并分门别类的放在了不同的文件,这些文件就称为头文件(header file)。每个头文件中都包含了若干个功能类似的函数,调用某个函数时,要引入
2020-12-16 17:48:50
548
原创 C/C++学习笔记:变量的作用域和变量的引用
文章目录作用域局部变量全局变量全局作用域运算符::综合示例变量的引用&C++ 引用 vs 指针区分取地址&和引用&&引用作为函数参数作用域所谓作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在所有代码文件中使用,有些变量只能在当前的文件中使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。变量的作用域由变量的定义位置决定,在不同位置定义的变量,它的作用域是不一样的。本节我们只讲解两种变量,一种是只能在函数内部使用
2020-12-16 17:45:00
966
1
原创 C/C++学习笔记:字符串
文章目录C语言字符串☆字符串的定义、赋值、输出拼接俩字符串复制字符串字符串比较C++字符串类字符串变量字符串数组getline(cin,str) 可以输入带空格的stringC语言字符串☆字符串的定义、赋值、输出由于C语言中没有字符串string类型,所以使用字符数组来存放字符串。char str1[] = "I am a student."; //可输入也可输出char *str2 = "I am a student."; //只能输出printf("%s\n%s\n",str1,str2)
2020-12-16 17:39:20
284
原创 C/C++学习笔记:函数
文章目录函数函数的形参和实参return用法函数声明及函数原型☆头文件存放函数和变量的声明C++函数重载和函数模板函数允许有默认参数内联函数 ( inline function )函数函数的形参和实参形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。
2020-12-16 17:18:16
240
原创 C/C++学习笔记:输入输出
文章目录C语言输出函数C语言输入函数scanf可输入带空格的字符串输入输出流输入带空格的string的函数:getline(cin,str)浮点数的输出转义字符☆输入输出流模板C语言输出函数在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是:puts():只能输出字符串,并且输出结束后会自动换行。puts("C语言中文网");putchar():只能输出单个字符。printf():可以输出各种类型的数据。C语言输入函数程序是人机交互的媒介,有输出必然也有输入,第三
2020-12-16 16:58:22
390
转载 ubuntu 18.04 系统时间错误解决方案
1、运行如下命令:sudo tzselect1.1 选择 亚洲Asia;1.2 继续选择 中国China;1.3 最后 选择北京Beijing。输入选项前对应的数字即可2、创建时区软链sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime转载于:https://my.oschina.net/ajdcxy/blog/2987990...
2020-12-14 20:14:02
613
原创 编译PX4固件
PX4编译疑难杂症bug1[gazebo-3] process has died [pid 19047, exit code 255]gazebo崩溃,解决方式 :killall gzserverbug2OpenCV库没有添加链接在CMakelists.txt末尾添加OpenCV库catkin_build_isolated单独编译各个包,如果遇到一个包有错,可以正常编译剩余的九个包。source ./devel_isolated/setup.zsh使用里面的包时,记得在新的终端进
2020-11-03 23:52:22
2087
原创 ROS基础例程学习:节点(node)与话题(topic)
ROS基础例程学习:节点(node)与话题(topic)结构#mermaid-svg-znXYicxgIkrDYQEc .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-znXYicxgIkrDYQEc .label text{fill:#333}#mermaid-svg-znXYicxgIkrDYQEc .n
2020-09-05 20:31:00
1527
原创 自动控制原理学习笔记(五)
第五章 线性系统频域分析法5.1 频率特性G(jω)G(j\omega)G(jω)基本概念频率响应:线性系统稳态正弦响应的幅值、相角随输入频率变化的规律。ω\omegaω 从0到 +∞+\infty+∞ 变化时, G(jω)G(j\omega)G(jω) 幅值和相位随 ω\omegaω 的变化。仅适用于线性定常系统。给系统一个脉冲信号δ(t)\delta(t)δ(t), 得到脉冲响应 k(t)k(t)k(t) ,对脉冲响应做傅里叶变换即得到频率特性G(jω)G(j\omega)G(jω
2020-08-02 18:10:46
5521
1
原创 自动控制原理学习笔记(四)
第四章 控制系统的稳定性及稳态误差文章目录第四章 控制系统的稳定性及稳态误差4.1 基于传递函数的稳定性分析4.1.1 连续系统稳定性及劳斯判据(书3.8~3.9)线性定常系统稳定的充要条件劳斯判据劳斯表特殊题型4.1.2 离散系统稳定性定义及劳斯判据(书6.7)s平面到z平面的映射关系线性离散系统稳定的充要条件Routh稳定判断w变换4.2 控制系统的稳态误差分析稳态误差分析误差与稳态误差误差(期望输出与实际输出之差)稳态误差终值定理求稳态误差型别(无差度)影响稳态误差的因素静态误差系数法求给定输入下的
2020-08-02 17:55:49
1119
原创 自动控制原理学习笔记(三)
第三章 时域分析文章目录第三章 时域分析3.1 典型输入信号==3.2 线性系统时域性能指标(稳定系统)==3.3 一阶系统①单位阶跃响应②单位脉冲响应③单位斜坡响应④单位匀加速度响应3.4线性定常系统重要特性3.5 二阶系统3.5.1 二阶系统单位阶跃响应①★欠阻尼★②无阻尼③临界阻尼④过阻尼⑤负阻尼二阶系统动态性能随极点位置分布的变化规律3.5.2 二阶系统单位脉冲响应无阻尼欠阻尼临界阻尼3.5.3 二阶系统单位斜坡响应3.6 高阶系统一些结论主导极点3.7基于脉冲传递函数的离散系统时域分析 (6.8
2020-08-02 17:48:03
1263
原创 自动控制原理学习笔记(二)
第二章 控制系统的简单数学模型时域:常微分方程复频域:传递函数方框图信号流图(Mason增益公式)状态空间模型离散系统:脉冲传递函数2.1 基本概念2.1.1 数学模型的定义描述各变量间关系的数学、图形或数字表达式同一物理系统 可以由 不同的模型描述不同物理系统 可以由 相同的模型描述2.1.2 建模方法机理分析——白箱测试法——黑箱实验法、经验法综合法——灰箱系统辨识与参数估计2.1.3 模型种类经典控制:微分、差分、瞬态响应函
2020-08-02 17:33:21
1490
原创 用Matlab对系统进行频率特性分析
问题1&2clcclear allclose all%Question1num=[1];den1=[1 1];den2=[1 -1];sys1=tf(num,den1);sys2=tf(num,den2);figure(1);hold onnyquist(sys1)nyquist(sys2)hold offgridlegend('一阶惯性Nyquist',...
2019-12-29 21:30:13
4726
原创 自动控制原理学习笔记(一)
第一章 绪论1.1 经典控制理论的不足简单对象:仅适用于单输入单输出、线性、时不变系统缺乏系统化方法:图形化方法,依赖于设计人员的经验达到的性能要求较低,不能处理多目标性能1.2 现代控制理论(状态空间)的特点1.描述对象:适用于多输入多输出、时变、非线性系统2.处理方法:应用现代数学方法,以计算机作为工具,系统化的分析和综合方法3.实现多目标控制1.3 开环与闭环控制对比...
2019-12-29 21:19:53
909
1
原创 安装双系统后,将windows设置为默认启动选项的方法
原先的电脑只有windows系统,后来加装了ubuntu系统。但由于大部分时间仍然需要使用windows,但是默认启动项为ubuntu,难免会带来一些不便。将windows设为默认第一启动项的方法很简单...
2019-09-11 00:35:07
7958
2
原创 【菜鸟学ros】工作空间及功能包的创建方法
在ros使用过程中,经常需要添加各种各样功能包,这就需要添加相应的环境变量。你会看到提示说需要 source 多个setup.sh 文件中的某一个但添加环境变量的语句source ~/***** 的生命周期很短,每次新打开一个终端,就需要重新添加,十分繁琐。于是可以将环境变量的语句添加进 .bashrc 中(Attention:该文件是在当前系统用户的home目录下),以后每次打开新的终端,...
2019-05-23 22:48:07
3552
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人