ros

初识事件相机系列-数据集与仿真器

风格不统一 提交于 2020-08-09 21:00:24
初识事件相机系列 - 数据集与仿真器 原创 董岩 3D视觉工坊 2月29日 点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 在上次的推送中,我们介绍了 事件相机的基本原理 。这次简要介绍一些数据集和仿真器。 0 、为什么需要数据集与仿真器? 在研究中,为了比较不同算法的优劣,研究人员不能用自己采集的数据,这样和别的方法比较没有太大的意义。所以公开的数据集是评价这些方法的通用数据。而仿真器,是按照事件相机的成像原理,模拟其生成数据的样子,可以便于使用者采集自己想要的数据。 当然最重要的一点,是事件相机目前价格较高,许多人无法像买USB相机这样随性购买。下面我们简单看几家公司的商品和售价: (图:一些事件相机厂商的主流产品与价格,数据由个人业务咨询获得) 可以看到一款事件相机动辄几万。所以数据集和仿真器可以极大程度方便研究的进行,同时避免了硬件使用过程中的各种各样的问题。 1 、数据集 在github官网整理出了许多数据集,更多细节请参考网址: https://github.com/uzh-rpg/event-based_vision_resources#datasets 。包括的数据集有:光流、图像恢复、VO与SLAM、图像分割、图像识别等。下面介绍一些围绕SLAM的数据集。 ViViD: Vision for Visibility Dataset 提供Lidar,RGBD

ROS-Tutorials笔记09:创建一个ROS的.msg和一个ROS的.srv文件

ぃ、小莉子 提交于 2020-08-09 20:03:47
.msg 文件是描述ROS消息的字段的文件,其本质上是简单的 .txt 格式的文件,其目的是用来生成基于不同编程语言的承载消息的源代码。 .srv 文件描述了一种服务,它由两个部分组成:分别是请求和应答(或者响应) .msg 格式的文件是存储在名为 msg 的目录下,而 .srv 格式的文件存储在名为 srv 的目录下。 消息文件中的每一行包含两个字段,分别是字段类型和字段名。 可用的字段类型有: int8 int16 int32 int64 float32 float64 string time duration other msg files 可变长度的数组array[]和固定长度的数组array[C] 当然了,也有ROS中的特殊类型:Header,头包含了ROS中常用的时间戳和坐标系信息,你将会经常看到一个.msg文件的第一行有 Header header 。 下面是一个具体的.msg文件的例子: Header header string child_frame_id geometry_msgs/PoseWithCovariance pose geometry_msgs/TwistWithCovariance twist 说完了 .msg 文件,现在,我们来讲一讲 .srv 文件, .srv 文件很像 .msg 文件,只是 .srv 文件包含两个部分:请求部分和响应部分

amcl node.cpp

放肆的年华 提交于 2020-08-09 07:21:03
1.主函数 主函数主要作用是: 定义一个信号变量,管理节点 定义amclNode对象 int main(int argc, char** argv) { ros::init(argc, argv, "amcl"); ros::NodeHandle nh; // Override default sigint handler signal(SIGINT, sigintHandler); // Make our node available to sigintHandler amcl_node_ptr.reset(new AmclNode()); if (argc == 1) { // run using ROS input ros::spin(); } else if ((argc == 3) && (std::string(argv[1]) == "--run-from-bag")) { amcl_node_ptr->runFromBag(argv[2]); } // Without this, our boost locks are not shut down nicely amcl_node_ptr.reset(); // To quote Morgan, Hooray! return(0); } 2.amclNode对象的构造 1.有一个配置相关的递归互斥锁锁 2

Carla for Windows以及和虚拟机里ROS Bridge的交互

大憨熊 提交于 2020-08-08 18:43:14
Carla是一个开源的自动驾驶测试框架,类似于Airsim。如果你搜索到了这篇文章,你应该已经大概知道carla是做什么的了。 Carla有pre built binary,Linux和Windows平台的都有,也有官方的build tutorial,我自己尝试了下在Windows下的编译。结果第一步就出现了compiler error,因为懒所以我干脆用了他的官方二进制。 https://github.com/carla-simulator/carla/releases 在0.9.5有Windows的二进制下载 解压后打开root directory的可执行文件,会产生一个类似下图的可交互界面。 这时候产生的是一个Server,是一个world。你可以用wasd和鼠标控制Ego的视角,到处飞行。 在PythonAPI文件夹下有一个叫example的文件夹,里面有一些python实列文件可以展示设置client和server进行交互。 当然,我们今天说的是要和ROS bridge交互。0.9.5的ROS bridge可以在下边的链接下载 https://github.com/carla-simulator/ros-bridge/releases 下载解压以后,具体如何编译和使用都在一下可以找到 https://github.com/carla-simulator/ros

Lidar-Imu联合标定工具lidar_align的数据接口改写

[亡魂溺海] 提交于 2020-08-08 16:10:23
  最近在做Lidar和imu的联合标定,即通过算法给出安装完成后Lidar和imu间的相对位姿(平移和旋转)。使用github上的lidar_align标定工具。在参考博文 https://blog.csdn.net/miracle629/article/details/87854450 后,发现自己录制的数据包中没有lidar_align需要用到的geometry_msgs/TransformStamped数据类型。博文作者给出的方法:1、建议直接使用rosbag方式读入数据,对于不发布TransformStamped类型数据的程序,只要稍微改动数据接口的几处函数(全部在loader.cpp文件中)便可以正常使用。博文下的评论中还提供了另外两种思路:2、自己写一个ros节点,订阅IMU的topic,把message里面的内容,重新按照geometry_msgs/TransformStamped 的格式赋值一遍,重新发布一次topic。3、不转格式,可以存一个csv文件,把6dof姿态存下来。   首先需要安装nlopt非线性优化库,报错:could not find a package configuration file provided by "Nlopt" with any of: NloptConfig.cmake。博文的评论中将 NLOPTConfig.cmake

机器人如何避障?

99封情书 提交于 2020-08-08 06:14:56
如今,机器人已被广泛应用于餐厅、酒店、银行等各大服务场所,在人员复杂的场景中,对于机器人如何自由穿梭于人群是个很大的挑战,这需要涉及到机器人的自主定位导航技术,自主定位导航技术是机器人实现自主行走的重要标志,而避障又是实现自主定位导航的基本,它是指机器人在行走时,通过传感器感知到在其路线规划上存在的静态或动态障碍物,按照相应算法进行路径实时更新,最终绕开障碍物到达目标点。那机器人避障问题又该如何解决呢? 目前,在解决机器人避障问题中,市面上大多会采用到激光雷达传感器,激光雷达是机器人避障的重要传感器,它扮演着机器人“眼睛”的角色,可以实时感知周围环境信息,包括障碍物的尺寸、形状、位置、姿态等。 当然,如果仅靠激光雷达是无法达到理想中的效果,为此,思岚科技在几年前就推出了扮演机器人“小脑”角色的Slamware Core,一个控制机器人运动的核心中枢。对机器人来说,小脑可以绘制环境地图来指导自身行动,而如何在环境中找到一条从起点到终点,同时避开障碍物的最优路径显得更为困难。 思岚科技的模块化自主定位导航SLAMWARE内置基于激光雷达的同步定位与建图 (SLAM) 及配套的路径规划功能。同时,它也是思岚科技推出的服务机器人自主行走的全套解决方案之一。 相较于开源ROS机器人操作系统,SLAMWARE内置的SLAM算法构建出的地图更加精确,即使受到外界干扰也可以保持较高的定位精度。同时

查询网络IP

雨燕双飞 提交于 2020-08-07 21:04:28
随便写一下: 在win系统下,使用ipconfig 在ubuntu系统下,使用ifconfig 有时需要检查主从机网络是否连接正常,使用ping +从机或主机ip 对于ubuntu系统,我使用sudo poweroff来关机 单独编译工作空间下的一个包时,使用catkin_make -DCATKIN_WHITELIST_PACKAGES="想编译包的名字" 设置主从机的时候: export ROS_IP=主机IP export ROS_HOSTNAME=`hostname -I` //代表的是本机ip export ROS_MASTER_URI=http://主机IP:11311 //将rosmaster设置为主机端的rosmaster 通过win10远程访问可以在没有显示屏的情况下,直接通过IP访问,需要在树莓派或nano等终端安装tightserver(差不多是这个),然后启动这个服务。 来源: oschina 链接: https://my.oschina.net/u/4358286/blog/4478258

笔记,记录了一名PHPer整了 ROS 两个月左右的一些文档

拟墨画扇 提交于 2020-08-06 21:31:32
文章记录了近期整了两个月左右过程中用到的一些资料,整理下来,有些乱... 建议要是能用 Docker 安装 ROS 的话,就尽量少去折腾环境,留出时间研究 ROS 入门文档 ROS_Robot_Programming_CN.PDF 提取码: kzeg 官方中文 Wiki 文档 Python 示例代码 使用 Python 读取 scan topic 的方法! 导入 LDS 的 msg 数据类型包名 import rospy from sensor_msgs.msg import LaserScan 查看 Topic 消息内容 rostopic echo /kobuki/lase/scan -n1 输出 header: seq: 5 stamp: secs: 2829 nsecs: 69000000 frame_id: "laser_sensor_link" angle_min: -1.57079994678 angle_max: 1.57079994678 angle_increment: 0.00436940183863 time_increment: 0.0 scan_time: 0.0 range_min: 0.10000000149 range_max: 30.0 ranges: [inf, inf, inf, inf, inf, ....] 查看消息类型 rosmsg

你必须知道的云计算知识(上)

℡╲_俬逩灬. 提交于 2020-08-06 04:39:06
最近订阅学习了《深入浅出云计算》专栏,一口气学完之后,做了一些总结笔记形成此文,特分享与你,希望对你有所帮助!本文为上半部分,主要总结了IaaS篇的核心要点。 零、开篇词 1、开发者为何要学习云计算?   (1)历经多年发展已成熟并成为一种潮流, 企业数字化转型的组成部分。   (2)产业的发展必然影响个体:   未来更多的应用都会运行在云上,架构模式和思维方式也会更多地与云契合共生!   (3)很多人对云的特性还不够熟悉,对云产品存在误解甚至偏见。 2、开发者应该如何学习云计算?   尽可能多地结合应用场景来解析云的概念和能力, 学习“用云”而非“做云” ;对于我们程序员学习者而言,也是如此,重点放在用云上即可!   不进行“厂商绑定”而是同时观察运用多个主流云厂商的服务, 了解共性和差异性 ;对于我们学习者而言,先了解共性和差异,再重点放在企业所选择的云服务商提供的产品上重点关注! 一、Iaas篇   IaaS 的本质, 是对云数据中心和各类 IT 基础设施的抽象,是基于软件技术对物理硬件进行的封装和虚拟 。 1、区域和可用区   区域对应云厂商在 某个地理位置提供的所有云服务的组合 =>对外提供云服务的基本单位和容器;区域一般以国家或地区命名,也经常辅以城市和序号予以区分,例如:cn-hangzhou,cn-beijing,cn-chengdu等;