ros

ROS-机器视觉 ①:摄像头的标定

感情迁移 提交于 2020-02-10 18:44:28
摄像头这种精密仪器对光学器件的要求较高,由于摄像头内部与外部的一些原因,生成的物体图像往往会发生畸变,为了避免数据源造成的误差,需要针对摄像头的参数进行标定。ROS官方提供了用于双目和单目摄像头标定的功能包——camera_calibration。 机器视觉功能包下载地址,包含了摄像头标定、OpenCV、人脸识别、物体跟踪、二维码识别和物体识别等: //download.csdn.net/download/weixin_44827364/12147918 camera_calibration功能包 先使用以下命令安装摄像头标定功能包camera_calibration: $ sudo apt-get install ros-kinetic-camera-calibration 标定需要用到如图所示棋盘格图案的标定靶。 大家可以打印出来,不打印直接用电脑屏幕也是可以的。 启动标定程序 可以下载整理好的功能包,直接使用下面这些代码://download.csdn.net/download/weixin_44827364/12147918 一切就绪后准备开始标定摄像头。首先使用以下命令启动USB摄像头: $ roslaunch robot_vision usb_cam.launch 然后使用以下命令启动标定程序: $ rosrun camera_calibration

ROS操作系统学习(三)ROS命令行工具的使用

六月ゝ 毕业季﹏ 提交于 2020-02-10 17:35:18
以小海龟为例 启动ROS Master roscore 启动小海龟仿真器 rosrun turtlesim turtlesim_node 启动海龟控制节点 rosrun turtlesim turtle_teleop_key roscore指令是在运行ROS操作系统首先运行的指令 rosrun指令是运行ROS某个功能包的某个节点的指令,后面加的参数是功能包名和节点名 基于qt的可视化工具命令–rqt_graph 输入 rqt_graph 用来显示系统图队计算工具 /teleop_tutle:键盘控制节点 /turtlesim:仿真器节点 /turtle/cmd_vel:一个话题 键盘控制节点将输入的指令打包成话题传给仿真器节点 显示ros系统相关节点的指令rosnode 输入 rosnode list 把系统中的结点全部都列出来 输入 rosnode info + 结点名称 查看某一节点具体的信息是怎样的 话题指令rostopic 输入 rostopic pub + . . . . . . 输入指令到话题中去 服务指令rosservice rosservice list 当前系统中的服务列出来 rosservice call / spawn "x : 2.0 y : 2.0 theta : 0.0 name : 'turtle2' " name : "turtle2"

ROS中遇到的一些问题和解决(更新)

▼魔方 西西 提交于 2020-02-10 13:26:55
检查 roscore 是否正常打开 [ERROR] Failed to contact master at [localhost:11311]. Retrying... [ERROR] [1446531999.044935824]: [registerPublisher] Failed to contact master at [localhost:11311]. Retrying... 解决:请检查 roscore 是否正常打开。 每次进行运行测试时都要首先运行 roscore。 关于rosdep update reading in sources list data from /etc/ros/rosdep/sources.list.d ERROR: unable to process source [ https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml ]: <urlopen error _ssl.c:495: The handshake operation timed out> ( https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml ) Hit https:/

无人驾驶刚刚开始的未来

前提是你 提交于 2020-02-10 04:15:58
作者: 刘少山,唐洁,吴唯玥 责编: 何永灿,欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至 heyc@csdn.net 本文为 《程序员》 原创文章,未经允许不得转载,更多精彩文章请 订阅《程序员》 本文是无人驾驶技术系列的第12篇,也是最后一篇( 文末汇总了无人驾驶系列文章 )。本文梳理总结了前面11篇涉及到的技术点,尝试呈现一个宏观的无人驾驶系统架构。另外,简单分析了无人驾驶的产业链现状以及根据笔者自己的经验提出了一些给开发者、创业者,以及投资者的建议。 无人驾驶技术总结 无人驾驶是一个复杂的系统,如图1所示,系统主要由三部分组成:算法端、Client端和云端。其中算法端包括面向传感、感知和决策等关键步骤的算法;Client端包括机器人操作系统以及硬件平台;云端则包括数据存储、模拟、高精度地图绘制以及深度学习模型训练。 图1 无人驾驶系统架构图 算法子系统从传感器原始数据中提取有意义的信息以了解周遭环境情况,并根据环境变化做出决策。Client子系统融合多种算法以满足实时性与可靠性的要求。举例来说,传感器以60HZ的速度产生原始数据,Client子系统需要保证最长的流水线处理周期也能在16ms内完成。云平台为无人车提供离线计算以及存储功能。通过云平台,我们能够测试新的算法、更新高精度地图并训练更加有效的识别、追踪、决策模型。 无人驾驶算法 算法系统由几部分组成:第一

ROS使用常用总结

喜你入骨 提交于 2020-02-08 17:08:55
该篇博客主要汇总我在使用ROS过程中经常用到的一些操作和小技巧,这些操作和技巧能够为我们更好的掌握ROS的使用起到很大的帮助! 文章目录 1、ROS中catkin_make单独编译指定包方法 2、获取某个ros包的路径,可以方便用来载入该包下的某些文件 3、循环获取没有数据时减慢频率打印消息 4、终端手动模拟发布ROS消息 5、根据是否有节点订阅所需话题,决定是否发布对应话题 1、ROS中catkin_make单独编译指定包方法 在我们开发大型ROS项目时,往往会包含多个ROS包,而大部分时候我们可能只会专注开发其中的一些包甚至其中一个包。而使用 catkin_make 命令进行编译时默认会编译在工作空间 src 下的所有ROS包。因此有没有什么方法可以让我们指定编译某个包呢? 之前有看到说可以使用下面的指令: catkin_make --pkg pkg1 但实际上这种方法仍然编译了所有ROS包,正确的方法应该是: https://answers.ros.org/question/54178/how-to-build-just-one-package-using-catkin_make/ # "List of ';' separated packages to build" catkin_make -DCATKIN_WHITELIST_PACKAGES = "foo;bar"

理解ROS服务和参数

こ雲淡風輕ζ 提交于 2020-02-08 00:24:50
服务(services)是节点之间通讯的另一种方式。服务允许节点发送 请求(request) 并获得一个 响应(response) rosservice list,列出当前的服务 rosservice type clear 查看clear服务的类型。 clear类型是std_srvs/Empty,这种表示clear不需要发送参数,也没有接收的响应。 rosservice call clear 调用clear命令,清除画板 如果正在运动过程中清除,会报一个异常 root@ben-virtual-machine:~# rosservice call clear Unhandled exception in thread started by <bound method Thread.__bootstrap of <Thread(Thread-4, stopped daemon 140226454353664)>> Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 774, in __bootstrap self.__bootstrap_inner() File "/usr/lib/python2.7/threading.py", line 814, in __bootstrap

File "/opt/ros/melodic/lib/turtle_tf/turtle_tf_broadcaster.py", line 37, in import tf

好久不见. 提交于 2020-02-07 11:47:57
系统 : U b u n t u 18.04 \color{blue}{Ubuntu18.04} U b u n t u 1 8 . 0 4 ROS版本 : M e l o d i c \color{blue}Melodic M e l o d i c 系统默认Python版本 :Python3(Anaonda) 遇到问题 :执行 roslaunch turtle_tf turtle_tf_demo.launch 报错。 报错内容如下 : Traceback (most recent call last): File “/opt/ros/melodic/lib/turtle_tf/turtle_tf_broadcaster.py”, line 37, in import tf File “/opt/ros/melodic/lib/python2.7/dist-packages/tf/ init .py”, line 30, in from tf2_ros import TransformException as Exception, ConnectivityException, LookupException, ExtrapolationException File “/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/

ROS中3D机器人建模(一)

夙愿已清 提交于 2020-02-06 18:57:44
一,机器人建模的ROS软件包 *urdf : 机器人建模最重要的ros软件包是urdf软件包。这个软件包包含一个用于统一机器人描述格式(URDF)的C++解析器,它是一个表示机器人模型的XML文件,还有一些其他不同的组件来组成urdf: *urdf_parser_plugin : 这个软件包实现了写入URDF数据结构的方法: *urdfdom_headers : 此组件提供了使用urdf解析器的核心数据结构头文件: *collada_parser : 这个软件包通过解析Collada文件来填充数据结构: *urdfdom : 此组件通过解析URDF文件来填充数据结构: *collada-dom : 这是一个独立组件,可以使用Maya,Blender和Softtimage等3D计算机图形软件对Collada文档进行转换。 我们可以使用URD来定义机器人模型,传感器和工作环境,使用URDF解析器对其进行解析。我们只能使用URDF描述一个类似树状连杆结构机器人,也就是说,机器人会有刚性连杆,并通过关节连接,我们无法用URDF表达柔性连杆。 URDF由特殊的XML标签构成,我们可以使用解析器程序解析这些XML标签以进一步处理。 *joint_state_publisher : 在使用URDF设计机器人模型时,该软件非常有用。这个软件包包含一个名为joint_state

ROS hydro opencv2 linking error during 'catkin_make'

穿精又带淫゛_ 提交于 2020-02-05 20:54:34
问题 I have little problem with my ROS hydro distro. I need to use it for one project so can't change to Indiko. Problem is that I have used catkin_create_pkg packname opencv2 ... for creating my project package. But when I try to invoke catkin_make I get following errors: CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:75 (find_package): Could not find a package configuration file provided by "opencv2" with any of the following names: opencv2Config.cmake opencv2-config.cmake

ROS学习总结——关于工作空间以及功能包

大兔子大兔子 提交于 2020-02-05 00:31:09
ROS学习总结——关于工作空间以及功能包 工作空间(Workspace) 创建一个ROS工作空间 编译一个ROS工作空间 ROS功能包(ROS Package) 一个包的组成 包与工作空间的关系 创建一个 catkin Package 包的依赖 编译一个 catkin Package 关于Package.xml文件 工作空间(Workspace) 创建一个ROS工作空间 ROS工作空间用于存放开发的各种ROS包,下面使用的操作方法只适用于ROS Groovy及后期版本 ①创建一个目录catkin_ws以及一个子目录src $ mkdir -p ~/catkin_ws/src ②进入src目录,初始化catkin工作空间 $ cd ~/carkin_ws/src $ catkin_init_workspace 编译一个ROS工作空间 ①进入catkin_ws目录中执行指令catkin_make对工作空间进行编译 $ cd ~/catkin_ws $ catkin_make 编译成功之后会发现在工作空间中生成了 build 、devel 文件夹。build 内是 cmake 和 make 在编译包时生成的一些配置文件。devel 文件夹用于存放安装包之前一些必要的可执行文件和库。 ②添加工作空间的环境 $ source ~/catkin_ws/devel/setup.zsh