之前在这篇文章里介绍过动态库和静态库的理论部分,这篇文章主要介绍下实际的操作步骤: 静态链接库生成 gcc -c main.cpp -o main.o ar -rc libmain.a main.o sudo cp libmain.a /usr/local/lib 调用即可 解释一下上面的命令:前两步生成了libmain.asudo cp libmain.a /usr/local/
整篇文章基本参考了https://blog.csdn.net/jianghuan0122/article/details/123528907,文章记录了如何在现有条件下实现该参考示例(参考示例存在报错,并且参考示例没有介绍环境安装,正确源码附于文末) 自身环境:ubuntu18.04+gcc7.5.0+boost1.7,3 环境配置 gcc或者g++一般都有,这里主要介绍一下boos
C语言写文件 /* C语言写文件 "r":只能从文件中读数据,该文件必须先存在,否则打开失败 "w":只能向文件写数据,若指定的文件不存在则创建它,如果存在则先删除它再重建一个新文件 "a":向文件增加新数据(不删除原有数据),若文件不存在则打开失败,打开时位置指针移到文件末尾 "r+":可读/写数据,该文件必须先存在,否则打开失败
想跑一个用MQTT传输JSON的实例,上网找了一下开源代码,找到一个比较合适的:https://blog.csdn.net/ktigerhero3/article/details/107178252,程序源码直接用这个就可以,然后过程中需要进行一下环境的配置,本篇文章主要记录下整个过程。 我的环境是ubuntu18.04 先整体看一下我的目录树: 下面介绍一下为了把整个代码跑起来所做的
自身环境:ubuntu18.04+gcc7.5.0+boost1.7,3 环境配置 gcc或者g++一般都有,这里主要介绍一下boost的配置方法 执行如下代码: wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.bz2 --no-check-certificat
遇到一个需求:给了一个excel表,里面有很多网址图片,要把图片下载到本地。手动操作的话就是在浏览器里输入网址,再图片另存为保存。这篇文章介绍一下使用python代码批量实现 第一步操作就是实现从网上下图片,这个用到了urlretrieve,使用模板如下: from urllib.request import urlretrieve urlretrieve(web_path, save_p
在ROS中发布导航命令有三种方式(但其实本质上都是话题发送) 一、使用Rviz进行导航 最常见的导航是在Rviz中实现的导航,通过2D Nav Goal可以设置导航目标点,但实际上2D Nav Goal会操作三个话题均有输出: /move_base/current_goal /move_base/goal /move_base_simple/goal Rviz中导航操作的主要话题
想在Jetson AGX Orin创建一个虚拟环境,然后安装pytorch,过程中遇到了很多的坑,这篇文章主要用于记录过程~因为Orin本身是Arm架构,X86架构可以装Anaconda,对于ARM要装archiconda。 1.安装archiconda 1.1确定操作系统架构安装anaconda前,需要确定Ubuntu20.04操作系统的架构 Ubuntu版本信息: $ lsb_rele
一、在当前文件夹下生成指定二进制文件的core文件 查看允许core文件空间大小: ulimit -c 修改core文件空间为无限大: ulimit -c unlimited 让core文件生成在当前目录下: sudo bash -c 'echo core.%e.%p > /proc/sys/kernel/core_pattern' 再执行一次二进制就会在当前文件下
自从用了openEuler之后,发现用dnf/yum下载软件的速度非常慢,换源也解决不了。无奈只能从主机下载各种rpm包进行本地安装,这篇说一下通过命令远程传输文件的方式。主要使用到了scp命令。 明确一下环境:主机(windows)+树莓派(openEuler)+XShell(ssh) 1. 检查主机是否有ssh 在cmd中输入ssh,如果出现下面的说明有ssh,同时也有scp
本教程以界面MainActivity跳转到TwoActivity为例MainActivity对应layout:R.layout.activity_mainTwoActivity*对应layout:R.layout.twolayout 1.建立MainActivity的java文件 package com.example.myapplication; //界面跳转 所需头文件 impor
环境:ROS(melodic) + PCL1.9 源码如下: #include<ros/ros.h> #include<pcl/point_cloud.h> #include<pcl_conversions/pcl_conversions.h> #include<sensor_msgs/PointCloud2.h> #include<
在研究语义通信的时候,发现解码端很多都是用GAN或基于GAN来完成的。带着对GAN的好奇,对GAN进行了一个初步学习。这篇文章介绍一下和GAN相关的一些常识吧~ 本文围绕以下几个内容展开: 1.什么是GAN? 2.为什么要研究GAN? 3.GAN具体的训练过程? 4.GAN的优缺点 5.GAN的应用 6.现有的开源GAN项目 一、什么是GAN? GAN全称
前言:演员-评论员算法又叫actor-critic算法 先从宏观上把握下本章的的内容:之前介绍过actor-critic是一种value base和policy base的结合体。首先要说明各自的缺点,再整体介绍一下actor-critic算法本身。最后会介绍几种基于actor-critic的改进算法。让我们开始吧! actor-critic是一种结合策略梯度(policy base)和时序
(二)马尔可夫决策过程 从第一章中了解到强化学习中,智能体通过和环境进行交互获得信息。这个交互过程可以通过马尔可夫决策过程来表示,所以了解一下什么是MDP至关重要。 不过在了解马尔可夫决策过程之前,先要一些预备知识,它们分别叫马尔可夫性质、马尔可夫过程/马尔可夫链、马尔可夫奖励过程。 马尔可夫性质(Markov property):如果一个状态的下一个状态只取决于当前状态,跟它当前状态之前的
(三)表格型方法 当看到这一章名字的时候,应该首先考虑到三个问题: 1)这里的表格指的是什么? 2)表格型方法是用来解决什么问题的? 3)表格型方法中具体有哪些方法? 随着后面的介绍,将陆续解开神秘的面纱。 前面已经介绍了马尔可夫决策过程,可以使用<s,a,p,r>这个四元组表示。而且从马尔可夫决策过程中,我们推导出了贝尔曼期望方程。之前也介绍过有模型和免模型的概念,区别在
(六)深度Q网络 前言:深度Q网络,又叫DQN 传统的强化学习中存储状态价值或者Q函数都是使用的表格(比如之前的Q表格),学名叫查找表(lookup table)。这个有什么问题吗?一个大问题就是只有离散情况(可穷尽)能够被存在于表格中。对于连续的状态空间怎么办呢? 最气人的就是,现实中还总是连续的状态空间。这个时候就不能够用表格对价值函数进行存储。这时候需要价值函数近似来解决这个问题。 价
(四)策略梯度(policy gradient) 前面一章表格型方法,进行策略迭代的时候利用到了Q函数。是一种value-base的方法,而之前介绍到还有一种policy-base,本章的就是一种policy-base的方法。 ps:强化学习的目的是寻找最佳策略,value-base相对复杂一点儿,先算价值再找策略。policy-base就是直接寻找策略的。 那有一个大问题就是:==明明已
从之前的讨论看,都是有奖励的。哪怕是上一章的稀疏奖励,其实也有奖励。==假如任何奖励都没有怎么办?==本章介绍的就是这种情况的解决办法。什么时候任何奖励都没有。其实还挺常见的,以聊天机器人为例,聊的好不好很难定义奖励。解决这种情况的方法就是模仿学习 模仿学习(imitation learning),有时也叫示范学习或者学徒学习。指有一些专家的示范,通过模仿这些专家来达到目的。专家的示范含义很
(五)近端策略优化 前言:近端策略优化(proximal policy optimization, PPO) 首先先进行一个引入。在之前的内容中介绍过同策略和异策略的问题,先来复习下这两个的定义: 同策略:学习的智能体与和环境交互的智能体是同一个 异策略:学习的智能体与和环境交互的智能体不是同一个 之前在将策略梯度的时候,结论式的该出了策略梯度采样的数据只能够使用一次。这个其实很浪费的
关于奖励有这么一个问题:很多智能体,有时候根本没办法得到奖励。比如对于一件概率特别小的事情,如果做到了给它奖励为1,做不到就是0。从随机性的角度看,最终的奖励就会是0。没有奖励,机器也学不到什么有价值的东西。 称上面这种情况就叫做稀疏奖励。如果奖励很稀疏,RL的问题就会变得很难解决。一个真正厉害的智能体应该能够在系数奖励的情况下也学会和环境互动。本章就介绍一些解决稀疏奖励问题的方法 1.设计奖
(一)强化学习概述 强化学习近几年成为了研究的热门,AlphaGo的故事家喻户晓。作为一个准研究生,抱着极大的好奇心来学习这门理论,虽然网上已经有了许多参考资料,但知识还不是自己的。希望写这样一个系列的博客,能够在对这个领域有一些浅显的认识。所有文章的角度都会从一个小白出发,希望能给大家提供一些帮助。如有错误,请各位积极帮助指正。 本系列的参考书籍为《Easy RL》,获取原文可点此处。提取码
我现在有这样一个需求:使用代码导航到指定位置(该位置由人工指定坐标),之前的导航都是直接使用rviz上面的可视化选点,这篇文章主要介绍下代码的实现逻辑。 我的环境:Ubuntu18.04+京天Turtlebot3仿真环境 程序源码 #include <ros/ros.h> #include <move_base_msgs/MoveBaseAction.h> #
mosquitto是比较常用的MQTT服务器,它本身也是开源的。这篇文章以mosquitto为例,说明如何在安装了Raspberry的树莓派上安装mosquitto 1. 安装依赖openssl 可以通过命令执行: sudo apt-get install libssl-dev 如果不安装openssl直接去编译mosquitto,会有下面的错: fatal error:op
这种方式需要使用到1根网线有线连接,需要提前准备~ 按照以下步骤操作: 找到wifi然后右键选择“属性”,进入配置页面: 勾选“允许其他网络用户通过此计算机的internet连接”,然后确定,它会提示你选择一个家庭网络连接,我们选择以太网就可以(我这里树莓派连接的是以太网,如果不确定是哪一个,可以拔下网线看哪个会断来确定,之后再插好网线就可以) 然后打开
SMOTE是用来解决样本种类不均衡,专门用来过采样化的一种方法。第一次接触,踩了一些坑,写这篇记录一下: 问题一:SMOTE包下载及调用 # 包下载 pip install imblearn # 调用 from imblearn.over_sampling import SMOTE # 使用SMOTE进行过采样时正样本和负样本要放在一起,生成比例1:1 smo = SMOTE
当看到这一章名字的时候,应该首先考虑到三个问题: 1)这里的表格指的是什么? 2)表格型方法是用来解决什么问题的? 3)表格型方法中具体有哪些方法? 随着后面的介绍,将陆续解开神秘的面纱。 前面已经介绍了马尔可夫决策过程,可以使用<S,A,P,R>这个四元组表示。而且从马尔可夫决策过程中,我们推导出了贝尔曼期望方程。之前也介绍过有模型和免模型的概念,区别在于是否已知状态
前面一章表格型方法,进行策略迭代的时候利用到了Q函数。是一种value-base的方法,而之前介绍到还有一种policy-base,本章的就是一种policy-base的方法。 ps:强化学习的目的是寻找最佳策略,value-base相对复杂一点儿,先算价值再找策略。policy-base就是直接寻找策略的。 那有一个大问题就是:==明明已经有了value-base方法,为什么还要去开发p
前言:近端策略优化(proximal policy optimization, PPO) 首先先进行一个引入。在之前的内容中介绍过同策略和异策略的问题,先来复习下这两个的定义: 同策略:学习的智能体与和环境交互的智能体是同一个 异策略:学习的智能体与和环境交互的智能体不是同一个 之前在将策略梯度的时候,结论式的该出了策略梯度采样的数据只能够使用一次。这个其实很浪费的。策略梯度中只针对了
前言:深度Q网络,又叫DQN 传统的强化学习中存储状态价值或者Q函数都是使用的表格(比如之前的Q表格),学名叫查找表(lookup table)。这个有什么问题吗?一个大问题就是只有离散情况(可穷尽)能够被存在于表格中。对于连续的状态空间怎么办呢? 最气人的就是,现实中还总是连续的状态空间。这个时候就不能够用表格对价值函数进行存储。这时候需要价值函数近似来解决这个问题。 价值函数近似(va
从之前的讨论看,都是有奖励的。哪怕是上一章的稀疏奖励,其实也有奖励。==假如任何奖励都没有怎么办?==本章介绍的就是这种情况的解决办法。什么时候任何奖励都没有。其实还挺常见的,以聊天机器人为例,聊的好不好很难定义奖励。解决这种情况的方法就是模仿学习 模仿学习(imitation learning),有时也叫示范学习或者学徒学习。指有一些专家的示范,通过模仿这些专家来达到目的。专家的示范含义很广,
关于奖励有这么一个问题:很多智能体,有时候根本没办法得到奖励。比如对于一件概率特别小的事情,如果做到了给它奖励为1,做不到就是0。从随机性的角度看,最终的奖励就会是0。没有奖励,机器也学不到什么有价值的东西。 称上面这种情况就叫做稀疏奖励。如果奖励很稀疏,RL的问题就会变得很难解决。一个真正厉害的智能体应该能够在系数奖励的情况下也学会和环境互动。本章就介绍一些解决稀疏奖励问题的方法 1.设计
强化学习近几年成为了研究的热门,AlphaGo的故事家喻户晓。作为一个准研究生,抱着极大的好奇心来学习这门理论,虽然网上已经有了许多参考资料,但知识还不是自己的。希望写这样一个系列的博客,能够在对这个领域有一些浅显的认识。所有文章的角度都会从一个小白出发,希望能给大家提供一些帮助。如有错误,请各位积极帮助指正。 本系列的参考书籍为《Easy RL》,获取原文可点此处。提取码2022。所以整系列
前言:演员-评论员算法又叫actor-critic算法 先从宏观上把握下本章的的内容:之前介绍过actor-critic是一种value base和policy base的结合体。首先要说明各自的缺点,再整体介绍一下actor-critic算法本身。最后会介绍几种基于actor-critic的改进算法。让我们开始吧! actor-critic是一种结合策略梯度(policy base)和时
从第一章中了解到强化学习中,智能体通过和环境进行交互获得信息。这个交互过程可以通过马尔可夫决策过程来表示,所以了解一下什么是MDP至关重要。 不过在了解马尔可夫决策过程之前,先要一些预备知识,它们分别叫马尔可夫性质、马尔可夫过程/马尔可夫链、马尔可夫奖励过程。 马尔可夫性质(Markov property):如果一个状态的下一个状态只取决于当前状态,跟它当前状态之前的状态都没有关系。换句话说
在之前的实验中用到了realsense-D435i,为了提高精度使用之前必须要进行标定。本篇文章就介绍下各类标定方法。因为我最终的目的是完成IMU和双目的联合标定,整个流程都是围绕整个目的展开的。过程中包括:RGB标定、单目标定、IMU标定、双目标定、IMU-双目标定 标定使用了kalibr标定库,整篇参考了系列博客:路径规划_Nankel Li的博客-CSDN博客。具体的内容可以去看这个,
普通情况下编译文件都是使用cmake,make工具,与此有关的内容可以参考:cmake,CMakeLists.txt,make,makefile的关系 但ROS中还有catkin_make,不清楚他们之间的关系,写这篇了解一下,主要区别如下: 常规的编译的过程大致有两步:1.cmake 2.make catkin_make就是把这两步做了一个封装,一步即可完成。也就是catkin_m
最近一直在看京天Turtlebot3 waffle pi的导航部分,这篇文章就介绍一下相关内容。导航模块是一个独立完整的模块,内容比较多也很深入。因为笔者没有看过源码,只是一些概念上的了解,做个整理,为后续的源码阅读做准备。本文整体上分为两个的大部分,第一部分针对Turtlebot下Navigation模块的理论介绍,第二部分结合京天Turtlebot3 waffle pi做一些具体应用阐述。
之前有用安卓平台控制ROS节点的需求,在设计实验方案的时候了解到rosbridge。这一篇就对rosbridge做一个简单的介绍。希望这篇文章解释明白几个问题 1. rosbridge是什么? 2. rosbridge的结构 3. rosbridge的小demo 1.rosbridge是什么 rosbridge是官方提供一款工具包,用于ROS系统和非ROS系统通信(只用于通信)。纯
本篇文章主要介绍基于ROS-TCP-Connector、ROS-TCP-Endpoint两个Unity接口与ROS进行通信的环境配置,并对官方给出的Unity和ROS相互通信示例中的消息部分做了说明 一、环境配置 参考:Unity-Robotics-Hub/setup.md at main · Unity-Technologies/Unity-Robotics-Hub (github.co
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信