前提 我一直想捣鼓一下机器人开发,想着自己独立去设计一款机器人,但了解到整个流程中所要学习的技能以及自己为数不多的业余时间,这事儿让我觉得有点犯难。直到去年看到古月居发布了OriginBot智能小车,在看完它的整体资料后,我觉得它有以下几个特点比较吸引我: 开源特性,基本上展现了如何从头到尾去设计开发一款小型的机器人,这和我的初始想法非常吻合。 软硬件的可拓展性,旭日X3派提
ROS2做为一款优秀的机器人操作系统软件,其搭载了丰富的机器人平台,是目前机器人领域应用最多的软件。微信做为一个大型社交软件,应用非常广泛,其中的小程序直接通过扫二维码进行加载,使用起来非常方便快捷。为了让手机端能够对机器人进行操作,于是通过微信小程序与ROS2通信的方式将两者联系在一起。 ROS2在ubuntu的电脑上运行,而微信则运行在手机端,可以通过一个中间设备透传两者之间的消息的
AutowareAuto 环境配置 一、系统环境 目前,AutowareAuto只支持在以下两种平台搭建: amd64 amd64 / x86_64 x86_64 (Intel/AMD) arm64 arm64 / aarch64 aarch64 / arm64v8 arm64v8 (ARM v8, 64-bit) 对于ROS的支持版为为:
这篇文章主要是来和大家讲讲我们做的过程遇到的问题以及如何解决的。 开始做挑战活动的时候我们的想法是分为两步,一是完成模型选择与训练,二是完成模型转换。但当实际做起来的时候才发现,远不止如此... 首先选择了SSD模型,SSD(Single Shot MultiBox Detector)是一种常用的目标检测算法,它与Yolo同属于one-stage方法,其主要思路是均匀地在图片的不同位置进行密集
初次学习ROS2机器操作系统,本博客将简单入门记录于此。 一. ros2安装: sudo apt-get install curl && curl http://fishros.com/tools/install/ros-foxy | bash 二.编译工具colcon安装: sudo apt-get install python3-colcon-common-ex
第一次了解胡老师和古月居,是几年前公司的巡检机器人项目,正当我无从下手的时候,在网上看到了胡老师的几篇博文,言简意赅得解释了ROS概念,使人豁然开朗。随后观看了古月居的21讲视频,才逐渐了解ROS的魅力,跟着胡老师,磕磕绊绊做出第一套ROS1机器人测试平台,当机器人动起来的时候,我才理解了胡老师每次视频结尾的那句话:怕什么真理无穷,进一寸有一寸的欢喜。 这几年来,也一直关注着机器人行业,时常翻看
0、前言 0.1、项目背景: 为了满足更多的同学可以快速、低成本、高兼容性的搭建自己的阿克曼ROS2开发平台,所以出现本开源项目。 温馨提示:本次开源的硬件和软件是完全兼容差速和阿克曼方案的,也就是说你如果要做差速,更改机械部分之后,只需要改极少的配置文件就可以做到兼容。 开源项目发布方:小白学移动机器人 开源项目的内容:机械模型、底层驱动板PCB、底层驱动程序、ROS2部分功能
你的机器人安全吗? ROS1中的通信数据基本是开放的。只要我们知道机器的IP。然后使用下面的命令在自己的笔记本电脑里声明一下机器人系统中ROS_MASTER的地址。 export ROS_MASTER_URI="http://192.7.8.48:11311" 注意,这里的ip(192.7.8.48)需要设成实际机器的ip。 这样我们就可以获取机器人系统的所有通信数据。 并且很危险的
下面的一个例子演示了两个节点之间如何实现零拷贝通讯。 注意,下面测试例子的ROS2版本为Galactic。 #include <chrono> #include <cinttypes> #include <cstdio> #include <memory> #include <string> #include <uti
C++ 标准库中的三种时钟 std::chrono::system_clock using namespace std::chrono_literals; const auto start = std::chrono::system_clock::now(); #include <iostream> #include <iomanip> #inc
ROS2的构建系统ament_cmake是基于CMake改进而来的。本篇文章我们详细介绍一下ament_cmake常用的语句。 一个功能包的诞生 使用ros2 pkg create <package_name>可以生成一个功能包的框架。 一个功能包的构建信息将会包含在CMakeLists.txt和package.xml这两个文件中。package.xml文件中包含该功能包的依
0. 简介 在面对ROS环境配置时,我们会发现,有的时候非常难查的问题有时候是因为ROS的CMakeList和package配置文件写的不对导致的。ROS1的时候就很无能为力,需要熟练地了解每个模块与配置。而ROS2中就提供了一个可以检测ros2的方方面面,包括平台,版本,网络,环境,运行系统等等的工具ros2 doctor。ros2 doctor仅在Eloquent及更高的版本中可以使用。同时
0. 简介 我们在开发ROS2程序时会发现,当面对只有一个node节点时,程序的调用是线性的,这个时候就会有两种解决方式,一种就是使用rclcpp_components来完成对子节点的注册,并完成类似ROS1中Nodelets的操作。另外一种就是使用执行器和回调组完成多线程的创建。 1. ROS2中多线程—callback_group 相较于ROS1中使用MultiThreadedSpinn
0. 简介 在面对ROS这个软件时,我们会尝试着设计更多的可视化软件用于仿真,以展示我们算法程序的效果。作者就在这里向大家展示6种二次开发和可视化平台。下面我们以ROS2为主来一一说明。 1. RVIZ2 rviz2作为我们最常用的可视化软件,其也支持插件的开发使用,具体使用方法也和ROS1类似,这里之前写过一篇ros1 如何开发rviz plugin插件的文章,这里就不展开叙述了。下图为小
0. 简介 作者最近发现ROS2目前的功能越来越完善了,其中也新增了很多比较好用的高级玩法,这里作者来一个个向大家展示。这里是小鱼做的ROS2官方文档的中文翻译平台,可以学习和推荐一下 1. 动态参数 1.1 代码编写 对于动态参数,大家学过ROS1的话应该都应该有所耳闻吧,ROS1的动态参数的操作还需要dynamic_reconfigure,ROS2中我们直接使用declare_para
下面介绍一下如何在ROS2节点中使用多线程。 使用多线程就涉及到回调组(CallbackGroup)了。 使用示例 创建回调组的函数如下: /// Create and return a callback group. RCLCPP_PUBLIC rclcpp::CallbackGroup::SharedPtr create_callback_group(
编译选项有很多,这里列出一些常用的编译选项设置,并说明作用。 指定使用的C++版本 set(CMAKE_CXX_STANDARD 17) 可以根据需求设置11, 14, 17, 20等等C++版本。 设置编译选项 add_compile_options(-Wall -Wextra -Wpedantic -Wno-unused-parameter -g) 告警选项:
我们使用backward_ros功能包来快速实现用GDB调试ROS2程序。 backward_ros功能包介绍 backward_ros功能包是对backward-cpp包的ROS2封装,以便可以简单快速地使用GDB工具。 backward-cpp包的介绍可以查看其仓库: https://github.com/bombela/backward-cpp 使用backward_ros功能包实
编译完ros2程序后,我们会发现install目录下有两个脚本local_setup.bash 和 setup.bash。执行程序前,通常需要source一下install目录下的脚本,以便环境变量准备就绪。这样ros2 run和ros2 launch就能找到对应的执行文件和依赖。 下面的内容是从setup.bash中截取出来的一段。可以发现它会先source一下/opt/ros/galacti
BehaviorTree.CPP是一个开源的C++行为树库。在游戏领域,行为树已经比较流行了。主要用于维护游戏角色的各种动作和状态。但在机器人领域还很少使用的。Navigation2中引入了行为树来组织机器人的工作流程和动作执行。 行为树是树状的结构,它的逻辑流程是由xml文件描述的。我们可以用其配套的工具Groot来可视化行为树。如下图所示: 行为树本身并不具体实现机器人的执行内容,它只
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信