- 博客(29)
- 收藏
- 关注
原创 【ROS】LAUNCH使用
LAUNCH使用启动节点<node pkg="package_name" type="executable_name" name="node_name"/>pkg:节点所在的功能包名字type:节点的可执行文件名字name:节点运行时的名字(取代掉type)output,respawn,required,ns,args设置保存ROS系统运行的参数<param name="参数名" value="参数值"/>加载参数文件中的多个参数&l
2022-04-13 14:44:31
279
1
原创 【JavaScript】第一阶段学习(语法)
JavaScript 语句是发给浏览器的命令。这些命令的作用是告诉浏览器要做的事情。<script>标签在HTML中插入JS,使用<script>标签告诉JS在何处开始和结束<script>...</script><!--中间的便是JS代码 -->在 <head> , <body> 和外部文件的JS函数脚本可位于 HTML 的 <body> 或 <head> 部分
2022-04-13 14:30:44
754
原创 【XML】语法学习
格式<?xml version="1.0" encoding="UTF-8"?><root> <element>...</element> <!--必须要有结束标签--> <Element category="34" name='11'> <!--标签对大小写敏感,属性为34,11--> <sub_element lang="12">...</sub_e
2022-04-11 11:48:21
136
原创 【ROS】TF坐标
TF坐标变换:广播TF变换 监听TF变换通过TF将雷达坐标系变换成本体坐标系安装TFrosversion -d 查询ros版本sudo apt-get install ros-<版本号>-turtle-tf启动launch文件roslaunch turtle_tf turtle_tf_demo.launch问题:/usr/bin/env python没有那个文件或目录有可能是python2、python3...
2022-03-30 23:05:07
696
原创 【ROS】参数的使用
参数命令行使用初始化进入src文件夹下catkin_create_pkg <功能包名> roscpp rospy std_srvs列出当前多有参数,如背景RGB,ros版本号,run_ID...rosparam list显示某个参数值rosparam get <参数名>设置某个参数值rosparam set <参数名> <参数值>发送空的请求,刷新rosservice call /clear "{}"保存参数到文件ros
2022-03-24 10:50:49
196
原创 【ROS】服务数据的定义与使用
定义srv文件在功能包下创建srv文件夹,再touch Person.srvstring nameuint8 ageuint8 sexuint8 unknown =0uint8 male =1uint8 female =2---string resultpackage.xml添加功能包依赖<build_depend>message_generation</build_depend> <exec_depend>messag...
2022-03-20 19:47:25
304
原创 【ROS】客户端服务端的编程学习
客户端Client 创建功能包cd ~/catkin_ws/srccatkin_create_pkg learning_service roscpp rospy std_msgs geometry_msgs turtlesim步骤以及代码初始化ROS节点 创建一个Client实例 发布服务请求数据 等待Server处理数据之后的回应结果/********************************************************************...
2022-03-18 18:38:13
264
原创 【ROS】话题消息的使用
自定义话题信息定义msg文件string name uint8 sexuint8 ageuint8 unkonwn=0uint8 male=1uint8 female=2在package.xml中添加功能包依赖<build_depend>message_generation</build_depend><exec_depend>message_runtime<exec_depend>在CMakeLists.txt添加编
2022-03-17 14:20:09
297
原创 【ROS】发布者订阅者的编译
创建功能包先进入src路径$ catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim步骤:在功能包里面的src里面创建cpp文件初始化ROS节点创建节点句柄:管理ROS相关的API资源创建发布者写消息数据按照设置的频率发布数据配置CMakeList编译规则设置需要编译的代码和生成的可执行代码add_executable 设置链接库 target_li...
2022-03-16 22:08:41
140
原创 【ROS】创建工作空间
工作空间是一个存放工程开发相关文件的文件夹。src:代码空间(Source Space)build:编译空间(Build Space)devel:开发空间(Development Space)install:安装空间(Install Space)
2022-03-15 16:37:15
1310
原创 【STM32】DMA
介绍 DMA,全称为: Direct Memory Access,即直接存储器访问。 DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路, 能使 CPU 的效率大为提高。DMA1 有 7 个通道。 DMA2 有 5个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁起来协调各个 DMA 请求的优先权。特性STM32 的 D...
2022-03-13 21:46:26
1074
原创 C++学习2(与C的差别)
1.inline内联函数对于不包含循环的简单函数,使用inline关键字声明。编译器将内联函数调用用其代码展开,称为“内联展开”,避免函数调用开销,提高程序执行效率。inline double f(double a,double b){ return sqrt(a*a+b*b);}int main(){ double k=1,q=2; f(k,m);//此处不将调用函数,而是直接把sqrt()替换到主函数里面//即f(k,m)=sqrt(k*k+q*q)}
2022-03-13 20:14:33
1375
原创 【STM32】TIM定时器
介绍:定时器由可编程预分频器驱动的16位自动装载计数器构成。定时器最基本功能:定时定时发送 USART 数据 定时采集 AD 数据等定时器与 GPIO 结合测量输入信号脉冲宽度 产生输出波形 等TIM定时器功能通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括:•16位向上、向下、向上/向下自动装载计数器 •16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值 •4个独立通道: ─ 输入捕获 ─ 输出比较 ─
2022-03-11 15:41:17
8315
原创 【STM32】EXIT外部中断
•中断控制器支持 19 个外部中断/事件请求,线 0~15 对应外部 IO 口的输入中断(每个中断线对应相同数字的 GPIOx),线 16 连接到 PVD 输出,线 17 连接到 RTC 闹钟事件,线 18连接到 USB 唤醒事件。•因为中断线每次只能连接到 1 个 IO 口,所以需要配置中断线连接到哪一个 GPIO 上原理图:LED灯设置:引脚电平设置 高/低GPIO模式 推挽输出/开漏输出电阻 上拉/下拉/无引脚速度 低/中/高速用户标签...
2022-03-11 15:27:37
822
原创 【STM32】NVIC,USART
NVIC(嵌套向量中断控制器)•中断使能•抢占优先级:判断哪个中断优先运行。例如正在运行A中断的中断程序,B中断触发了,而B中断优先级高于A,则打断A的中断服务程序,执行B。•响应优先级:判断抢占优先级相同的中断哪个会优先响应中断USART串口通信Universal Synchronous/Asynchronous Receiver/Transmitter通用同步/异步串行 接收/发送器•异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全..
2022-03-11 14:53:15
790
原创 C++学习1(与C的差别)
1.C++头文件不必是.c结尾,C语言中的标准库头文件入math.h,stdio.h在C++被命名为cmath,cstdio。#include<cmath>#include<cstdio>2.名字空间namespace为防止名字冲突,引入名字空间。通过::运算符限定某个名字属于哪个名字空间#include <cstdio>namespace first{ int a; void f(){} int g(){}}n
2022-03-11 14:07:27
1276
原创 ROS命令行工具学习
启动ROS Master$ rescore启动小海龟仿真器$ rosrun turtlesim turtlesim_node启动海龟控制节点$ rosrun turtlesim turtle_teleop_key强制退出: CRTL+C自动补全: TAB图(Graph)概念概览节点(Nodes):一个节点是ROS下面一个可执行程序,使用ROS与其他节点进行通信。 消息(Messages):将数据订阅或者发布到主题时使用数据类型结构。 主题(Topi..
2022-03-11 13:16:10
141
原创 C语言学习(可变数组和链表)
#include<stdio.h>#include<stdlib.h>typedef struct{ int *array; int size;}Array; //定义一个Array类型Array array_create(int init_size){ //定义一个Array类型的变量并初始化 Array a; a.size=init_size; a.array=(int*)malloc(sizeof(int)*a.size);//分配内存空间 .
2021-12-05 00:03:47
428
原创 格式化输入输出和按位运算
格式化输入输出:printf:%[ flags ][ width ][ .prec ][hlL ] typeFlag 含义 - 左对齐 + 再前面放+或者- (space) 正数留空 0 0填充 例子:printf("%+9d",123);//9->占据字符空间,+即添加+号 +123printf("%-9d",123);//左对齐123printf("%+-9d",123);//添加+号...
2021-11-26 01:19:32
4042
原创 C语言练习
问题:变量kezhixishu应为double类型 函数kezhi返回kezhixishu是double类型,所以函数kezhi也要double
2021-11-21 15:42:23
3777
1
原创 C语言(typedef和联合)
指向结构的指针struct date{ int month; int day; int year;}myday;struct date *p=&myday;(*p).month=12;p->month=12;//->表示指针所指的结构变量中的成员 #include<stdio.h>struct point *getStruct(struct point *p)//需要输入指针 { scanf("%d",&p->x); sc
2021-11-14 22:30:15
276
原创 c语言学习:枚举和结构体
常量符号化:用符号而不是具体的数字来表示程序中的数字 const int a=12; const使a固定为12的值枚举:枚举是一种用户定义的数据类型,它用关键字enum以如下语法来声明: enum 枚举类型名字{名字0,.....,名字n}; 枚举类型名字通常并不真的使用,要用的是在大括号里的名字,因为它们就是常量符号,它们的类型固定为int,值依次从0到n,如名字0的值即为0,名字1的值即为1,名字n的值即为n。 当需要一些可以排列起来的常量值时,定义枚举的意...
2021-11-07 01:03:31
2039
原创 C语言(字符串和printf)
字符串:strcatchar *strcat(char *restrict s1,const char *restrict s2); restrict表示src和dst不重叠(c99) 把s2拷贝到s1的后面(从后往前),接成一个长的字符串,并返回s1 s1必须要有足够的空间 strcpy和strcat都可能出现安全问题:有可能目的地没有足够的空间,尽量不使用 安全版本: char *strncpy(char *restrict dst,const char *restrict src
2021-10-30 19:43:10
1059
原创 C语言学习(动态内存分配和字符串)
动态内存分配:malloc函数:要加头文件#inclde<stdlib.h> 格式:void*malloc(size_t size); 向malloc申请的空间的大小是以字节为单位的 返回的结果是void,需要类型转型转换 如a=(int*)malloc(变量or数字*数字);#include<stdio.h>#include<stdlib.h>int main(){ int b=7; int *a; int i;//可以将...
2021-10-23 11:02:06
4644
1
原创 C语言学习(指针)+PID系统
指针指针变量就是保存地址的变量int i;int*p=&i;int* p,q;int *p,q;p里面的值就是i的地址,就称为p指向了i" * "加变量为指针变量的值是内存的地址普通变量的值是实际的值 指针变量的值是具有实际值的变量的地址作为参数的指针:void f(int *p);在被调用的时候,得到某个变量的地址 int i=0; f(&i);在函数里面可以通过这个指针访问外面的这个i#include<stdio.h>..
2021-10-14 23:32:48
307
原创 C语言的第三阶段学习(函数和数组)
调用函数:函数名(参数值)()起到了表示函数调用的重要作用即使没有常数也需要()#include<stdio.h>void cheer(){ printf("cheer\n");}int main(){ cheer;//无法运行cheer函数 cheer();//可运行cheer函数}如果有常数,则需要给出正确的数量和顺序,这些值会按照正确的顺序用来初始化函数中的常数void sum(int begin,int end)/
2021-10-09 21:04:43
461
原创 C语言的初级学习
printf用%f输出浮点数时,需注意输出值需是浮点数(带小数点)整数的分解:对一个整数做%10的操作,就得到它的个位数;对一个整数做/10的操作,就去掉了它的个位数;对一个整数做/10再%10,便可得到它的十位数;依次类推#include<stdio.h>int main(){ int x; scanf("%d",&x); int b; int c=0; while(x>0){ b=x%10;//得到此时x的个位数
2021-10-02 20:05:48
350
原创 C语言的初步学习
计算机的语言有三大类,分别为机器语言,汇编语言以及高级语言。而学习的C语言则为高级语言,作为高级语言,C语言更加贴近我们日常生活的思维方式,使人们能用更易理解的方式编程。
2021-09-24 18:58:16
207
原创 PIC单片机的入门认识(以PIC12为学习目标)
1.学习PIC12针脚定义针脚1及针脚8可接电源+5V和地线。针脚2.3可外接晶振。针脚4为复位脚,当单片机正常运行时接高电平,若有一个低电平输入,单片机便复位。针脚5则为单片机的I/O脚,可控制它为输入或输出,输入0,输入1,输出0,输出1.(0即为低电平,1即为高电平)针脚6.7也可设置输入输出,可以控制继电器,LED灯,A/D转换器,连接喇叭输出音乐等。2.单片机的寄存器寄存器又称RAM,单片机的大部分工作在写入或读出寄存器。寄存器是一个能存储8位二进制的数据的单元,而每.
2021-09-18 12:13:42
3234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人