自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 安装websocket

cd catkin_ws/srcgit clone https://github.com/zaphoyd/websocketpp.gitmkdir build cd build/cmake ..make .make ..sudo make install 

2019-02-27 15:32:52 1644

翻译 ROS C++编程规范

命名命名方案: CamelCased:名称以大写字母开头,每个新单词都有一个大写字母,没有下划线。 camelCased:像CamelCase一样,但是首字母是小写的 under_scored:名称仅使用小写字母,单词用下划线分隔 ALL_CAPITALS:所有大写字母,单词以下划线分隔。  文件所有文件都是under_scored。源文件的...

2019-02-27 13:53:31 1640

原创 Apollo笔记:感知

感知概貌感知是机器人学科的问题,机器人要向人类驾驶员学习,但又不必要完全模仿,扬长避短; 感知模块 小感知:检测,(语义)分割,(属性)识别,跟踪,融合 大感知:标定,定位,障碍物行为预测 多维度看感知问题,体会复杂性 sensor维度(Input):Lidar、Camera、Radar、Ultrosonic、高精地图...... Target维度(Output):障碍物、...

2019-02-26 09:07:11 1575

原创 ROS执行任务——行为树

行为树与分层状态机相比与分层状态机相比,行为树组件的模块性与关联的简易性使得它特别容易编写与理解。行为树以分支形式将复杂的任务划分成一组条件与子任务,从而对它们进行拆分。行为树总是自顶向下、自左向右地被执行。行为树与分层状态机最重要的区别在于行为树同一层的行为之间不会有任何直接关联,这样的“兄弟关系”行为只能通过更高层行为的共享链接进行间接关联。行为树的关键属性节点表示的是任务...

2019-02-20 14:53:20 2897

翻译 行为树(BT)笔记(十一):动作和协同程序

使用Coroutines的异步操作BehaviorTree.CPP提供了两个易于使用的抽象来创建异步Action,即那些以下操作:花很长时间才能得出结论。 可以返回“RUNNING”。 可以停止。第一个类是AsyncActionNode,它在一个单独的线程中执行tick()方法。在本教程中,我们介绍了CoroActionNode,它是一个使用协同程序来实现类似结果的不同类。协...

2019-02-20 10:11:54 964

翻译 行为树(BT)笔记(十):封装遗留代码

在本教程中,我们将了解如何处理不适合与BehaviorTree.CPP一起使用的遗留代码。让我们开始假设这是我的类。// This is my custom type.struct Point3D { double x,y,z; };class MyLegacyMoveTo{public: bool go(Point3D goal) { prin...

2019-02-20 10:08:40 549

翻译 行为树(BT)笔记(九):记录器

BehaviorTree.CPP提供了一组可扩展的Loggers,即一种记录和/或显示out树中所有状态转换的机制。例我们可以将多个记录器附加到树上。为此,我们传递树的根。#include "behaviortree_cpp/xml_parsing.h"#include "behaviortree_cpp/loggers/bt_cout_logger.h"#include "...

2019-02-20 10:02:08 729

翻译 行为树(BT)笔记(八):插件

在前面的示例中,用户定义的节点包含在内并静态链接到C ++项目中。我们使用了BehaviorTreeFactory注册manualy这些自定义TreeNodes。或者,我们可以使用预编译的动态共享库(即插件)在运行时加载用户定义的TreeNode 。要创建插件,我们必须将一个或多个TreeNode的注册封装到一个函数中,如下所示:// This is a macro that d...

2019-02-20 09:38:35 780

翻译 行为树(BT)笔记(七):子树

行为树的一个主要优点是它们本质上是分层的。您可能已经注意到,总是可以提高在树的层次结构中查找一个节点的抽象级别。在简介中,我们介绍了这棵树:称为“解锁”的序列可以看作是一个完整的子树; 从其父级的角度来看,该子树可以具有任意级别的复杂性。BehaviorTree.CPP提供了一种创建可重用和可组合子树的方法,这些子树可以作为更大更复杂树的节点包含在内。示例:XML中的子树...

2019-02-20 09:13:04 1043

翻译 行为树(BT)笔记(六):黑板

黑板是树的所有节点共享的键/值存储。键是一个字符串而值是类型擦除容器(称为SafeAny::Any),其允许用户存储的任何C ++对象,并将它转换回其原始形式。反之,以boost::any和std::any,SafeAny::Any也将尽量避免共同溢和下溢错误。事实上,你不能将一个负数转换成一个unsigned integer超过2 ^ 8的非大数字char。如果值存储为字符串,黑...

2019-02-20 09:05:58 2357 1

翻译 行为树(BT)笔记(五):如何使用NodeParameters

NodeParameters就像传递给函数的参数一样。它们是通常从文件中读取的键/值对(两个字符串)的映射。要创建接受NodeParameters的TreeNode,您必须遵循以下规则: 从ActionNode,ConditionNode或DecoratorNode继承。 您必须提供具有以下特征的构造函数: MyAction (const std :: string...

2019-02-19 13:49:28 1117

翻译 行为树(BT)笔记(四):如何创建BehaviorTree

您主要有两种方法来创建行为树。静态地,在编译时。 动态地,在运行时,即解析文件。强烈建议你使用后一种方法,但为了完整性,我们将描述前者。 如何创建自己的ActionNodes你能在这里找到源码:sample_nodes/dummy_nodes.h.// Example of custom SyncActionNode (synchronous Action)class ...

2019-02-19 11:15:31 1930 1

翻译 行为树(BT)笔记(三):入门教程

BehaviorTree.CPP是一个C ++库,可以轻松集成到您喜欢的分布式中间件中,例如ROS或SmartSoft。您还可以将其静态链接到您的应用程序(例如游戏)。您需要先了解一些主要概念。节点VS树用户必须创建自己的ActionNodes和ConditionNodes(LeafNodes),这个库可以帮助您轻松地将它们组合成树。将LeafNodes视为构建复杂系统所需的构...

2019-02-19 10:43:18 1505

翻译 行为树(BT)笔记(二):行为树简介

行为树简介与有限状态机不同,行为树是一个分层节点树,它控制决策流和“任务”的执行,或者我们将进一步称之为“动作”。树的叶子是实际命令,即我们的协调组件与系统其余部分交互的位置。例如,在面向服务的体系结构中,叶子将包含与执行操作的“服务器”通信的“客户端”代码。在下面的示例中,我们可以看到在序列中执行的两个Actions,DetectObject以及GraspObject。...

2019-02-19 10:18:47 3544

翻译 行为树(BT)笔记(一):BehaviorTree.CPP库简介

BehaviorTree.CPP库该C++库提供了创建行为树的框架,它设计灵活,易于快速使用。尽管我们主要是用在机器人身上,但你也能使用该库为游戏创建AI,或者在你的应用中取代有限状态机。BehaviorTree.CPP库具备许多有趣的功能:它能异步操作,即非阻塞,第一类公民; 在运行时创建树,它允许使用文本(XML)表示; 可以将静态链接到自定义TreeNodes或将它们转换...

2019-02-19 09:27:44 5086

转载 ROS Nodelet的使用

转自https://www.ncnynl.com/archives/201702/1324.htmlROS是以一种分布式网络通讯的操作系统,它是以master为中心构建的hybrid P2P网络,节点之间的信息传递时会存在一定的时延和阻塞,nodelet就是为了解决这一问题,提供在算法之间具有零拷贝传输的相同进程中运行多个算法的方式。使用方法定义将用于动态加载的基类nodelet :...

2019-02-18 16:51:05 1559 1

原创 Apollo ROS与原生ROS对比

原生ROS主题/发布接收机制原生ROS系统中包含一个节点管理器Master,用于管理发布者和订阅者,当产生新的发布者或订阅者时都必须先在Master上注册信息。当新的发布者在Master上注册时,Master会保存发布者的URI(统一资源标识符)和发布者发布的话题,当新的订阅者在Master上注册时,Master会在保存信息中寻找与话题匹配的发布者,然后将发布者的URI发送给订阅者,订阅者会根...

2019-02-15 11:30:46 2708

原创 Apollo ROS安装教程

1.安装Ubuntu 14.042.安装ROS Indigo版本安装可能以下出现的问题错误信息:Unpacking ros-indigo-desktop-full (1.1.6-0trusty-20181006-135515-0800) ...Errors were encountered while processing: /var/cache/apt/archives/pyt...

2019-02-14 09:18:19 1007

【运动规划算法项目实战】Artificial Potential Field算法(附ROS C++代码)

代码对应博客专栏《运动规划算法项目实战》系列文章。人工势场算法(Artificial Potential Field Algorithm)是一种常用的路径规划方法,它借鉴了物理学中的势能概念,通过模拟力的作用来引导机器人的移动。

2023-09-26

【运动规划算法项目实战】Dynamic Window Approach算法(附ROS C++代码)

代码对应博客专栏《运动规划算法项目实战》系列文章。DWA算法通过考虑机器人的动力学限制以及环境中的障碍物,以实现自主导航的能力。它结合了运动模型、传感器信息和目标点,通过动态地调整机器人的速度和转向角度,以生成最优的路径。

2023-09-26

【运动规划算法项目实战】如何加载csv文件的路径信息(ROS源码)

代码对应博客专栏《运动规划算法项目实战》系列文章。 在运动规划算法项目中,路径规划是非常重要的一环。在实际应用中,我们通常需要将预先规划好的路径以某种方式加载到程序中进行后续处理和运动控制。而CSV文件作为一种常见的数据交换格式,也被广泛用于存储路径信息。因此,学会如何加载CSV文件中的路径信息将是非常有帮助的。

2023-04-20

四足机器狗ros仿真代码

四足机器狗ros仿真代码,可以通过键盘控制机器狗的移动,用于在仿真环境中进行的算法验证。

2023-04-20

百度apollo学习资料

百度apollo学习资料合集,包含Apollo自动驾驶公开课、入门课程、进阶课程以及技术文档资料。

2023-04-19

自动驾驶汽车xacro模型

自动驾驶汽车的xacro模型,可以加载用作gazebo环境仿真,方便在仿真环境中对自动驾驶汽车进行算法验证。

2023-04-19

DARPA地下挑战赛的洞穴仿真环境

DARPA SubT挑战赛寻求在时间敏感的作战行动或灾难响应场景中快速构建地图,导航和搜索地下环境的新方法。

2023-04-19

draw-line-path-绘制固定的路径ROS C++代码

draw_line_path用于绘制固定的路径的ROS C++代码,通过rviz的goal按钮添加路径点,添加的路径点之间会进行线性插值,添加完成后最终输出全局的路径。

2023-04-19

松灵差速小车ROS仿真模型

松灵差速小车仿真模型,用作gazebo仿真。

2023-04-19

路径记录和加载ROS C++实现代码

1、读取csv文件的路径点并以geometry_msgs/Path形式进行发布; 2、记录当前走过的位置信息保存为csv文件。

2023-04-19

summit_xl.zip

SUMMIT XL是由Robotnik制造的室内/室外移动机器人平台,包含四轮差速和麦克纳姆轮两款底盘,summit_xl是其开源的仿真工具包。

2020-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除