- 博客(66)
- 收藏
- 关注
原创 详解 Tree-structured Parzen Estimator(TPE)
TPE(Tree-structured Parzen Estimator),是一种基于树结构的贝叶斯优化算法,用于解决黑盒函数的全局最优化问题。在每次试验中,对于每个超参,TPE 为与最佳目标值相关的超参维护一个高斯混合模型 l(x),为剩余的超参维护另一个高斯混合模型 g(x),选择 l(x)/g(x)最大化时对应的超参作为下一组搜索值。通过这种方式,。
2023-03-29 15:24:24
16009
2
原创 【深度强化学习】【论文阅读】【双臂模仿】Deep Imitation Learning for BimanualRobotic Manipulation
翻译并介绍 Deep Imitation Learning for BimanualRobotic Manipulation
2023-01-19 18:54:53
2423
2
翻译 【RL】使用强化学习的一些建议
强化学习教程资源:https://stable-baselines3.readthedocs.io/en/master/guide/rl.htmlSB3教程:https://github.com/araffin/rl-tutorial-jnrr19/blob/sb3/1_getting_started.ipynb与有固定数据集的监督学习相比,强化学习用来训练智能体的数据来自于智能体与环境的交互。由于强化学习每次得到的结果不一致,这就需要我们去取得一个量化的结果。好的结果依赖于恰当的超参数,像PPO、SAC、
2022-12-06 17:43:44
741
原创 【问题解决】Linux-conda环境下安装PyKDL无法链接.so动态库
最近需要部署PyKDL库,遇见奇怪的问题,困扰了好几天,下面列出问题描述和我的解决过程。
2022-11-12 13:22:53
1693
1
原创 【DL】使用pytorch的线性回归简洁实现
从零实现线性回归此内容主要依据李沐老师的《动手学深度学习》课程,同时结合了网络上其它资料和自己的理解。对于标准深度学习模型,我们可以使用框架的预定义好的层。我们首先定义一个模型变量net,它是一个Sequential类的实例。Sequential类将多个层串联在一起,类似于按序列存放各种层的容器。当给定输入数据时,Sequential实例将数据传入到第一层, 然后将第一层的输出作为第二层的输入,以此类推。由于线性回归相当于单层神经网络,实际上不需要Sequential。
2022-09-18 18:05:49
556
原创 【CMake】浅谈使用 colcon build 时 CMakeLists 的配置方法-1.使用第三方开源库
讨论使用cmake引用第三方开源库和导出自己的库
2022-09-08 12:21:38
2306
原创 【强化学习】《Easy RL》- Q-learning - CliffWalking(悬崖行走)代码解读
本篇博客的代码来源于蘑菇书《Easy RL》Q学习部分的悬崖行走实战部分,本人在学习的同时对代码进行完整的解读,如有错误之处,烦请指正。task0.py首先学习 task0 部分。
2022-08-08 09:52:12
2835
4
原创 【GTest】C++单元测试框架 Google Test 的简单使用
GTest是一个跨平台的(Liunx、MacOSX、Windows、Cygwin、WindowsCEandSymbian)C++单元测试框架,由google公司发布。
2022-08-02 11:01:17
1155
原创 【RViz2】导入urdf模型时报错:Could not load resource xxx,Unable to open file xxx,Error retrieving file xxx
初学ROS2,想要在RViz2中显示urdf模型。其中.urdf文件引用了外部的meshes文件夹。
2022-07-19 12:34:17
7935
3
原创 【MSA】关于moveit配置助手-planning groups中的chain的简要说明
在使用moveitsetupassistant时,发现教程里没有关于planninggroups中chain的描述,但是在查看其它的配置包时,发现有很多都在使用chain。
2022-07-17 19:17:49
667
翻译 【MoveIt2-humble】入门教程(翻译自官方文档)四:Planning Around Objects(上)
本节教程会教你创建一个功能包,使用MoveIt Task Constructor规划一个抓取和放置的操作。MoveIt Task Constructor 提供了一种方式,去规划由多种不同子任务(也称为阶段)所组成的任务。本节教程适用于那些对 MoveIt 和 MoveIt Task Constructor concepts 有一定基础的人。要了解更多信息,请阅读 MoveIt examples,包括 MoveIt Task Constructor 部分。请先完成教程包安装的章节如果正确安装了教程包,会发现
2022-07-10 17:51:04
2001
7
翻译 【MoveIt2-humble】入门教程(翻译自官方文档)三:Planning Around Objects
环境为:官方文档上的教程,从moveit1的melodic到moveit2的foxy基本一致,但是从最新的humble开始有了很大的变化,其中之一便是 lambda表达式 的广泛使用。本节为教程的第三节,前提是需要完成上一节的内容,可以在我的专栏中查看。本节的内容为向规划场景添加物体,并围绕其进行规划。四节教程会手把手带你写一个完整的 Moveit 控制程序,包括轨迹规划、RViz可视化、添加碰撞物体、抓取和放置。更多信息可以去官方文档查看:https://moveit.picknik.ai/humble
2022-07-09 11:55:36
967
1
翻译 【MoveIt2-humble】入门教程(翻译自官方文档)二:在 RViz 中实现可视化
本系列教程共四节,环境为:Ubuntu22.04ros2-humbleMoveIt2-humble官方文档上的教程,从moveit1的melodic到moveit2的foxy基本一致,但是从最新的humble开始有了很大的变化,其中之一便是 lambda表达式 的广泛使用。本节为教程的第二节,会介绍一个工具(moveit_visual_tools),它能够通过在 rviz 中呈现可视化,从而帮助你更容易理解你的 Moveit 应用在做什么。前提是需要先完成之前内容,可以看我的这篇博文:https://
2022-07-08 16:15:34
3086
5
翻译 【MoveIt2-humble】入门教程(翻译自官方文档)一:第一个 C++ MoveIt 程序
本系列教程共四节,环境为:官方文档上的教程,从moveit1的melodic到moveit2的foxy基本一致,但是从最新的humble开始有了很大的变化,其中之一便是 lambda表达式 的广泛使用。本节为教程的第一节,前提是需要完成上一节安装教程包的内容,可以看我的这篇博文:https://blog.youkuaiyun.com/qq_43557907/article/details/125636298四节教程会手把手带你写一个完整的 Moveit 控制程序,包括轨迹规划、RViz可视化、添加碰撞物体、抓取和放置
2022-07-08 15:58:02
5562
3
原创 【MoveIt2-humble】Moveit2_toturials 功能包详细安装过程及问题解决
本篇修改自官网文档上的安装步骤,在此基础上列出我安装时所遇到的问题与解决方法,官方的坑有很多,看我这篇就够了。
2022-07-06 11:31:25
6830
原创 【问题解决】新版webots纹理等资源文件加载/下载时间过长
Webots 在 2021a 版本后为了缩小文件大小,将纹理、声音等资源文件设置成通过网络下载。然而这对大陆用户非常不友好,在使用时的加载时间通常非常漫长。以下是我搜集到的解决方法。参考:https://www.bilibili.com/read/cv14807701?spm_id_from=333.999.0.0https://blog.youkuaiyun.com/sunlianglong/article/details/98469382以及官方GitHub留言方法比较简单,但不好用,适合应急,所以不多赘述
2022-06-22 19:15:50
4891
3
原创 【MATLAB】五自由度机械臂运动学逆解(数值法——牛顿迭代)实现
本篇为五轴机械臂的数值法实现,同时,本方法可应用于六轴、七轴手臂的逆解。关于解析法的实现,可以看我之前的博客:https://blog.youkuaiyun.com/qq_43557907/article/details/122707124本篇文章是记录我个人在学习时的一些记录,如果各位有发现错误,麻烦在评论区批评或指出,我会第一时间改正,与大家共同学习,谢谢。以下是牛顿迭代的基本公式,具体原理可以去B站搜。根据以上思想,这里只贴出关键部分,不再赘述五、验证迭代后得出的角度:目标角度:可以看见基本吻
2022-06-18 23:59:30
8947
22
原创 【MoveIt】入门教程-第一章(下)Move Group C++ Interface(官方教程翻译+个人补充)
在机器人关节上,路径约束可以很容易地指定。让我们为 group 指定一个路径约束和一个目标位姿。第一步,定义路径约束:然后,设定其作为 group 的路径约束。10.在关节空间中执行规划Moveit 可以选择在关节空间或笛卡尔空间来描述规划问题。在 ompl_planning.yaml 文件中设定 group 的参数 ,这样就可以在关节空间中执行所有规划。默认情况下,通过方向路径约束的规划需要在笛卡尔空间中进行采样,以便调用 IK 作为生成式采样器。使用关节空间的话,规划进程将使用拒绝采样去寻找有效请
2022-06-05 15:29:46
2600
原创 【ROS】noedic-moveit安装与UR5模型导入
本文介绍了Ubuntu-noedic下安装moveit1的过程,以及UR5模型的下载与导入
2022-06-01 13:22:52
3054
1
原创 win11下配置子WSL2子系统+ubuntu20.04+ROS+C盘迁移+可视化
0.前言&参考为什么要使用win11系统?因为可以直接在Windows 子系统上运行 Linux GUI 应用。本文为本人在win11下使用wsl2配置ubuntu20.04 + ROS的过程,期间碰到了一些问题,汇总记录成本篇博客。参考文章:Win10下使用WSL2安装ROS1并使用独显的方法Ubuntu 20.04更换下载源详细教程1.开启子系统打开控制面板-所有控制面板项-程序和功能-启用或关闭Windows功能勾选2.安装Ubuntu20.04直接在Microsoft
2022-05-12 19:34:15
4604
1
原创 Ubuntu初次安装ROS时出现的一些问题的解决办法
1.安装速度太慢可以切换成华为安装源,操作步骤如下打开软件和更新,在下载自里找到华为云的安装源并使用就行。2.正在等待缓存锁原因是之前在安装过程中强制退出了,出现的死锁现象。解决办法是,依次输入以下命令:sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/locksudo rm /var/lib/dpkg/lock-frontend然后重新更新并下载即可。3.下载完成后安装过程中出现“缺少依赖”按照提示操作即可apt
2022-05-10 22:02:34
1525
原创 【RL】Markov decision process马尔可夫决策过程(MDP)-下
参考:蘑菇书-《EasyRL》推荐直接阅读蘑菇书本文只是为了方便自己今后的查阅对原文做出的一些概括与摘录,与大家共同学习。
2022-05-05 19:09:29
754
原创 【RL】Markov decision process马尔可夫决策过程(MDP)
参考:蘑菇书-《EasyRL》本文只是为了方便自己今后的查阅对原文做出的一些概括。
2022-05-02 21:04:49
1595
原创 【RL】Bellman Equation 贝尔曼方程(动态规划)
参考:蘑菇书-《EasyRL》方程贝尔曼方程表示了当前状态与未来状态的迭代关系,也称为动态规划方程,公式如下:参数解释:s′:未来的所有状态;s:当前状态;R(s):当前状态所获得的奖励;γ:折扣因子,用来折扣未来的奖励;V(s′):未来某一状态的价值;p:从当前状态到未来某一状态的概率。解法可以把贝尔曼方程写成矩阵的形式,通过矩阵运算求解,但状态很多的话很难求解,只适用于很小量的马尔可夫奖励过程(MRP)。对于状态很多的马尔可夫奖励过程,使用迭代的方法,例如:动态规划方法,.
2022-05-01 15:41:53
2956
原创 【MATLAB】5DOFs机械臂关节空间轨迹规划
上一篇博客指路->【MATLAB】5DOFs机械臂运动学正逆解(MDH)轨迹规划即在运动起始点和终止点之间插入中间点序列,包括关节空间轨迹规划和笛卡尔空间轨迹规划。关节空间轨迹规划把机器人的关节变量变换成对时间的函数,然后对角速度和角加速度进行约束。在此使用MATLAB的Robotics Toolbox工具箱中的jtraj函数对上述关节空间轨迹进行规划。jtraj函数需要传入的参数为起始点与目标点的五个关节角度与时间长度向量,下面的代码中设定采样时间为8s,步长0.1s,程序运行图如下:直接贴代
2022-04-18 19:47:26
4075
1
原创 【LeetCode】【C++】819. 最常见的单词
题目链接:https://leetcode-cn.com/problems/most-common-word/个人总结本题使用哈希表的方法,对每个单词进行计数,同时判断是否出现在ban列表中,若出现则不计入表中;注意for中的<=,因为我们需要对尾字母的下一个元素进行判断,来决定是否将前面的字母计入word;unordered_set,unordered_map是C++中的关联容器,关联容器的用法在下一篇博客-C转C++DAY4,在C++ Primer的关联容器解释中也有此题的类似用例;C
2022-04-17 14:16:54
953
原创 【C++】C转C++学习记录.DAY3
引子DAY3概括地对容器进行补充学习,包括它的类型和操作。之后总结了这两天刷题时用到的新的知识。同时为了方便以后的回顾,我会令开一篇新的博客作为索引。1.顺序容器1.1顺序容器类型类型详情见最上方思维导图,在此不过多赘述。string和vector将元素保存在连续的内存空间中,能够使用下标进行快速的随机访问,但是在中间添加或删除元素非常耗时。list和forward_list与上述互补,即令任何位置的添加和删除操作变得快速,但是不支持元素的随机访问。且forward_list没有size操
2022-04-16 20:54:10
1048
2
原创 【LeetCode】【C++】98. 验证二叉搜索树
题目链接:https://leetcode-cn.com/problems/validate-binary-search-tree/0.个人总结测试 [5,4,6,null,null,3,7]错误的原因:二叉搜索树是指左子树上所有节点的值均小于它的根节点的值,右子树上所有节点的值均大于它的根节点的值,而不是单独的左右节点。-231 <= Node.val <= 231 - 1,所以需要定义long类型。LONG_MIN和LONG_MAX是C++的数值最大最小标识符,具体可以看这篇文章最
2022-04-14 21:16:48
1583
原创 【C++】C转C++学习记录.DAY2
引子第二天的学习,对day1的知识点进行补充。1.迭代器所有标准库容器都可以使用迭代器,它的对象是容器中的元素或string对象中的字符,有迭代器的类型同时拥有返回迭代器的成员,使用迭代器可以访问某个元素或对其进行操作,迭代器和指针类似,有有效与无效之分。其中,begin成员返回指向容器第一个元素的迭代器;end成员返回指向容器尾元素的下一位置的迭代器;例如:auto b = v.begin(), e = v.end();b表示v的首元素,e表示v尾元素的下一位置,它们的类型与begin
2022-04-13 19:03:00
943
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人