- 博客(46)
- 资源 (16)
- 收藏
- 关注
原创 Ardupilot中添加参数并在地面站显示
第二步 修改Parameters.h文件第三步 修改Parameters.cpp文件第四步 修改config.h文件
2022-06-25 09:17:31 576 2
原创 Ardupilot笔记:自定义LOG输出
在调试的过程中,如果想知道自己定义的一个变量的数据是如何变化的该怎么办呢?1、log.cpp中自定义结构体struct PACKED log_Data_SXC { LOG_PACKET_HEADER; uint64_t time_us; float PN; float PE;};2、log.cpp中编写自定义结构体赋值函数void Rover::Log_Write_Data_SXC(){ Vector2f posNE1; AP::ah
2021-09-20 17:20:08 463 1
原创 Ardupilot笔记:Rover auto模式下的执行流程
先从mode_auto.cpp的update()开始分析。进入函数update()后会执行函数navigate_to_waypoint()。mode_auto.cppvoid ModeAuto::update(){ // update navigation controller navigate_to_waypoint();}mode.cppvoid Mode::navigate_to_waypoint(){ // update navigation control
2021-03-13 16:06:33 1189 3
原创 APM L1航迹控制算法实现
主要为了得到转向加速度a,a=2VVsinη/L1APM中对L1进行了优化,L1=L1_PL1_DV/π,2用K=4ζζ代替。// update L1 control for waypoint navigation 使用了大量的向量运算void AP_L1_Control::update_waypoint(const struct Location &prev_WP, const struct Location &next_WP, float dist_min){ //gcs().
2021-03-12 16:22:01 1274
原创 Auto模式下的log输出
mode_auto.cpp#include "mode.h"#include "Rover.h"#define AUTO_GUIDED_SEND_TARGET_MS 1000bool ModeAuto::_enter(){ gcs().send_text(MAV_SEVERITY_NOTICE, "Run:mode_auto.cpp-->ModeAuto::_enter()"); // fail to enter auto if no mission commands
2021-03-02 16:01:08 444
原创 ROS实现串口通信
虚拟串口的搭建参考Linux下添加虚拟串口,接收和发送数据com.py文件代码如下:#! /usr/bin/env python#coding=utf-8import ptyimport osimport selectdef mkpty(): # master1, slave = pty.openpty() slaveName1 = os.ttyname(slave) master2, slave = pty.openpty() slaveNam
2020-10-18 21:23:51 2234
原创 ROS之tf空间坐标广播与监听
坐标广播#!/usr/bin/env python# -*- coding: utf-8 -*-import roslibroslib.load_manifest('test')import rospyimport tfimport turtlesim.msgdef turtle_pose(msg, turtlename):#回调函数 print msg.x, msg.y br = tf.TransformBroadcaster() # 将位置信息打包广播到wor
2020-10-16 09:42:58 614 3
原创 ROS服务数据自定义
服务数据的定义与话题数据大部分相同,唯一要注意的一处是在CMakeLists.txt文件中,服务数据的定义应为:add_service_files(FILES man.srv)服务端#!/usr/bin/env python# -*- coding: utf-8 -*-import time, threadimport rospyfrom geometry_msgs.msg import Twistfrom test.srv import man,manResponse,manReques
2020-10-14 15:58:23 234
原创 ROS服务端与客户端
服务端#!/usr/bin/env python# -*- coding: utf-8 -*-import time, threadimport rospyfrom geometry_msgs.msg import Twistfrom std_srvs.srv import Trigger, TriggerResponsepubcommand = Falsetpub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)
2020-10-14 15:01:43 362
原创 ROS话题发布与订阅
话题发布#!/usr/bin/env pythonimport rospyfrom geometry_msgs.msg import Twistdef velocity_publisher(): # ROS节点初始化 #anonymous=True,表示后面定义相同的node名字时候,按照序号进行排列 rospy.init_node('velocity_publisher',anonymous=True) # 创建一个Publisher,发布名为/turtle1/cmd
2020-10-13 18:22:16 476
原创 ROS编写自己的msg(Python实现)
#!/usr/bin/env pythonimport rospyfrom test.msg import Person#Person.msg文件在test/msg文件夹下#需在工程根文件夹下面运行,否则会报错,同时要设置可运行def people_publisher(): rospy.init_node('People',anonymous=True) people_pub=rospy.Publisher('/mymsg',Person,queue_size=10) r
2020-10-13 18:15:08 1158
原创 ROS命令行工具的使用
以小海龟为例启动ROS Masterroscore启动小海龟仿真器 (运行一个节点需重新打开一个终端)rosrun turtlesim turtlesim_node#rosrun+功能包名+节点名启动海龟键盘控制节点rosrun turtlesim turtle_teleop_key基于qt的可视化工具命令–rqt_graphrqt_graph/teleop_tutle:键盘控制节点/turtlesim:小海龟仿真器节点/turtle/cmd_vel:一个话题显示ros系统相
2020-10-13 16:01:56 610
原创 ROS基本操作命令
创建工作空间工作空间是一个存放工程开发相关文件的文件夹。包括代码空间src、编译空间build、开发空间devel、安装空间install。代码空间src: 放置工程代码。mkdir catkin_ws#创建catkin_ws文件夹cd catkin_ws#进入catkin_ws文件夹mkdir src#创建src文件夹cd src#进入src文件夹catkin_init_wokespace#初始化src文件夹为工作空间 catkin_ws/src下新增一个CMakeLists.txt文件
2020-10-11 11:21:39 521
原创 广义特征向量计算方法
代数重数与几何重数(对于单个特征值而言)代数重数:相同特征值的个数。几何重数:特征子空间的维数为几何重数,因为空间是几何里的概念,rank(λI−A)=n−αrank(λI-A)=n-αrank(λI−A)=n−α中的ααα值,几何重数 ≤ 代数重数。在几何重数 = 代数重数时,A可以变换为对角阵,但两者不相同时,A只可以变换为约当阵,这里就需要使用广义特征向量。广义特征向量计算rank(λI−A)=n−αrank(λI-A)=n-αrank(λI−A)=n−α,代数重数为kkk,则对于λλλ这个
2020-10-06 14:49:12 25025 4
原创 直流电机建模及仿真
电路方程电枢回路的电压平衡方程式:U=E+I∗Ra U=E+I*Ra U=E+I∗RaUUU----------电动机的电枢电压(V)EEE----------电枢绕组的感应电势(V)III-----------电枢电流(A)RaRaRa--------电枢回路总电阻(Ω)直流电机的电枢电势方程式:E=CeϕnE=C_{e}\phi nE=CeϕnCeC_{e}Ce-------电势常数:Ce=pN60aC_{e}=\cfrac{pN}{60a}Ce=60apNpp
2020-09-22 20:34:52 6461
原创 三相交流电机中的坐标变换
由于异步电动机三相原始动态模型相当复杂,分解和求解这组非线性方程十分困难,在实际应用中必须予以简化,简化的基本思路就是将复杂的问题分解成一个一个简单易处理的问题,将复杂的三相坐标系转换成易理解的两相坐标系。其关键点就是将需要控制的三个量变换成两个量,控制这两个量的效果和控制原来的三个量的效果相同。即ABC坐标转换到α-β静止坐标或d-q同步旋转坐标。ABC坐标下ABC为三相坐标系下,三相电压的大小是随时间变化的正弦波形,相位依次相差120°,如下图所示:Clark变换α-β静止坐标系下,αβ的大小
2020-09-20 16:48:09 5203 1
原创 电机相关物理公式及知识点
转矩公式 :T=F∗rT=F*rT=F∗r转矩=扭力*作用半径电机功率:P=F∗VP=F*VP=F∗V功率=力*速度转动惯量: J=∫mr2dmJ=∫ mr ^2 dmJ=∫mr2dm转动惯量是表征刚体转动惯性大小、衡量刚体抵抗旋转运动的惯性的物理量。转矩和转动惯量关系:T=J∗wT=J*wT=J∗w转矩=转动惯量*角加速度...
2020-09-19 20:16:17 5905
原创 Java实现深度神经网络:ReLU层
使用Java实现/** * ReLU层 * * @author xiaocheng * */public class ReLU { public ReLU() { } public double[] out(double[] x) { double[] out = new double[x.length]; for (int i = 0; i < x.length; i++) { out[i] = ReLUF(x[i]); } return out;
2020-09-18 20:48:18 351
原创 Java实现深度神经网络:PReLU层
使用Java实现/** * PReLU层 * * @author xiaocheng * */public class PReLU { public PReLU() { } public double[] out(double[] x) { double[] out = new double[x.length]; for (int i = 0; i < x.length; i++) { out[i] = PReLUF(x[i]); } return ou
2020-09-18 20:42:39 208
原创 Pytorch笔记:卷积层的相关知识点
实验代码import torchimport torch.nn as nnimport torch.nn.functional as F#h/w = (h/w - kennel_size + 2padding) / stride + 1 卷积计算x = torch.randn(2, 3, 7, 6) # batch, channel , height , widthm = nn.Conv2d(3, 1, (3, 2), (2,1)) # in_channel, out_channel ,ke.
2020-09-18 18:55:01 271
原创 Java实现深度神经网络:BatchNorm2d层
使用Java实现/** * 归一化 对一张图的归一化 * * @author SXC 2020年9月11日 下午2:00:15 */public class BatchNorm2d { double weight = 0.5653, bias = 0; public BatchNorm2d(int num_features) { } public double mean(double[] x) { double meanvalue = 0; for (int i = 0;
2020-09-11 14:36:28 155
原创 Java实现深度神经网络:Sigmoid层
Java实现深度神经网络:Sigmoid层使用Java实现Sigmoid.java/** * Sigmoid层 * * @author SXC 2020年9月11日 下午12:56:31 */public class Sigmoid { public Sigmoid() { } public double[] out(double[] x) { double[] out = new double[x.length]; for (int i = 0; i < x.le
2020-09-11 13:24:21 860
原创 Java实现深度神经网络:Linear层
Java实现深度神经网络:Linear层使用Java实现Linear .java/** * Linear 层 * @author SXC 2020年9月11日 上午10:39:35 */public class Linear {// out_features个神经元 double[][] weight;// 每行为一个神经元的weight double[] bias; int in_features, out_features; public Linear(int in_featur
2020-09-11 12:49:20 464
原创 Python:操作Excel表格
Python:操作Excel表格读操作:import xlrdf = xlrd.open_workbook('F:\\pythontest\\test.xlsx')#打开excel表sheet1 = f.sheets()[0]#读取excel文件中的第0个sheet,也就是sheet1sheet1.row_values(0)#对每一行的值进行操作sheet1.row(0)#第1行中每个单元格的类型+值#xlrd中cell(x,y)的类型分类 空:0,字符串:1,数字:2,日期:3,布尔:4,e
2020-09-10 20:12:14 110
原创 Pytorch笔记:风格迁移
Pytorch笔记:风格迁移训练模型:风格迁移网络+VGG16网络生成网络:风格迁移网络代码如下(根据陈云《深度学习框架:Pytorch入门与实践》的代码改动)main.pyimport torch as timport cv2 as cvimport torchvision as tvimport torchnet as tntfrom torch.utils import datafrom transformer_net import TransformerNetimport ut
2020-09-07 21:57:26 505
原创 Pytorch笔记:使用DCGAN生成人脸
Pytorch笔记:使用DCGAN生成人脸代码如下:train.pyimport argparseimport torchimport torchvisionimport torchvision.utils as vutilsimport torch.nn as nnfrom random import randintfrom model import NetD, NetGparser = argparse.ArgumentParser()parser.add_argument('-
2020-09-05 22:42:35 1264 2
原创 opencv实现人脸检测(Java实现)
opencv实现人脸检测(Java实现)/** * 人脸识别功能(抄袭DEMO) * @author SXC * 2020年7月2日 下午11:23:26 */import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.core.MatOfRect;import org.opencv.core.Point;import org.opencv.core.Rect;import org.opencv.c
2020-09-04 22:50:02 778
原创 Pytorch笔记:自编码
import torchimport cv2 as cvimport torch.nn as nndef gettensor(s): scr = cv.imread(s) #print(scr.shape) c = torch.from_numpy(scr)/1.00 c=c.reshape(100*143*3) return c#print(gettensor().shape)def getimg(x,i): x=x.reshape(143,1
2020-08-31 23:08:01 224
原创 Pytorch笔记:RNN 循环神经网络 (回归)
Pytorch笔记:RNN 循环神经网络 (回归)import torchfrom torch import nnimport numpy as npimport matplotlib.pyplot as plt# torch.manual_seed(1) # reproducible# Hyper ParametersTIME_STEP = 10 # rnn time stepINPUT_SIZE = 1 # rnn input sizeLR = 0.02
2020-08-29 11:06:18 896 1
原创 Pytorch笔记:通过训练好的文件建立神经网络
Pytorch笔记:通过训练好的文件建立神经网络import torchimport numpy as npimport torch.nn.functional as Fx=torch.Tensor([[1,1],[1,0],[0,1],[0,0]])#训练数据y=torch.Tensor([[1],[0],[0],[1]])#标签#print(y)#搭建cnn的快速方法net=torch.nn.Sequential( torch.nn.Linear(2,10), torch
2020-08-27 20:41:30 139
原创 Pytorch笔记:通过快速搭建法建立深度神经网络cnn
Pytorch笔记:通过快速搭建法建立深度神经网络cnnimport torchimport numpy as npimport torch.nn.functional as Fx=torch.Tensor([[1,1],[1,0],[0,1],[0,0]])#训练数据y=torch.Tensor([[1],[0],[0],[1]])#标签#print(y)#搭建cnn的快速方法net=torch.nn.Sequential( torch.nn.Linear(2,10), t
2020-08-27 20:19:43 366
原创 Pytorch笔记:建立深度神经网络cnn
Pytorch笔记建立深度神经网络cnnimport torchimport numpy as npimport torch.nn.functional as Fx=torch.Tensor([[1,1],[1,0],[0,1],[0,0]])#训练数据y=torch.Tensor([[1],[0],[0],[1]])#标签#print(y)class network(torch.nn.Module): def __init__(self,in_num,hidden_num,out_
2020-08-27 19:59:44 441
原创 神经网络,多输入多输出
神经网络,多输入多输出单个神经元类/** * 单个神经元 * * @author SXC 2020年8月13日 下午9:48:19 */public class Neurons { ThreeNeurons tN; double input[]; double inputandoutput[]; double weight[];// 包含一个偏置的权重,数量比输入大一个 private double nowoutput; private double ez;// e误差对z中间输
2020-08-19 20:42:24 11340 2
原创 多层神经网络代码实现
多层神经网络单个神经元类/** * 单个神经元 * * @author SXC 2020年8月13日 下午9:48:19 */public class Neurons { ThreeNeurons tN; double input[]; double inputandoutput[]; double weight[];// 包含一个偏置的权重,数量比输入大一个 private double nowoutput; private double ez;// e误差对z中间输出的导数
2020-08-19 15:09:51 643
原创 Java通过jxl.jar写入Excel数据
Java通过jxl.jar写入Excel数据,代码如下:import java.io.File;import java.io.IOException;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;public class ReadExcel { public static void main(String[] args) { try { readE
2020-07-26 15:38:12 435
原创 Java通过jxl.jar读取Excel数据
java读取Excel数据,代码如下:import java.io.File;import java.io.IOException;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;public class ReadExcel { public static void main(String[] args) { try { readExce
2020-07-26 15:24:13 323
jxl-2.6.12.zip
2020-07-26
jfreechart-1.0.1.zip java画线
2020-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人