ros

Ros subscriber not up to date

我的未来我决定 提交于 2019-12-05 16:12:50
I have written a ROS subscriber to one of the image topics and I have set my buffer to 1 using: subscriber =rospy.Subscriber("/camera/rgb/image_mono/compressed",CompressedImage, callback, queue_size=1) However my subscriber still lags behind. Any idea what might be causing this? Am I setting the queue size correctly? The queue is for queueing incoming messages. This means, if your callback takes longer to proccess than new messages arrive, only queue size is kept, the others are not processed by your node. I would suggest to print out a message in the publisher node before publishing and a

How to view GUI apps from inside a docker container

99封情书 提交于 2019-12-05 15:47:20
When I try to run a GUI, like xclock for example I get the error: Error: Can't open display: I'm trying to use Docker to run a ROS container, and I need to see the GUI applications that run inside of it. I did this once just using a Vagrant VM and was able to use X11 to get it done. So far I've tried putting way #1 and #2 into a docker file based on the info here: http://wiki.ros.org/docker/Tutorials/GUI Then I tried copying most of the dockerfile here: https://hub.docker.com/r/mjenz/ros-indigo-gui/~/dockerfile/ Here's my current docker file: # Set the base image to use to ros:kinetic FROM ros

ROS笔记之Gazebo机器人仿真(三)——Soildworks三维图导出URDF文件

自作多情 提交于 2019-12-05 06:49:33
1.引言   这章我们将学习如何把 上一章 中创建的三维图导出为URDF文件。 2.插件安装   首先我们需要安装 sw_urdf_exporter插件 。安装成功后我们可以在Soildworks中看到相应的插件。 3.添加坐标系和转轴   在导出URDF中需要用到每个零件的坐标系,有的还需要转轴,我们先来进行创建。 3.1添加车轮的坐标系和转轴 (1)创建车轮的坐标系, 要注意的是通过调整坐标系方向保证x轴正方向为小车的前进方向,y轴的正方向指向左侧,z轴正方向竖直向上 。 (2)创建车轮旋转轴 (3)根据同样的方法创建其他三个车轮的坐标系与转轴。 3.2添加车身和传感器的坐标系 (1)添加车身坐标, 调整坐标系方向保证x轴正方向为小车的前进方向,y轴的正方向指向左侧,z轴正方向竖直向上 。 (1)添加传感器坐标, 调整坐标系方向保证x轴正方向为小车的前进方向,y轴的正方向指向左侧,z轴正方向竖直向上 。 4.URDF Exportor的配置 (1)点击工具,在下拉选项中选择file,点击出现Export to URDF,左边会出现URDF Exportor的属性界面。 (2)配置车身参数 (3)依次配置四个轮子参数 (4)配置传感器参数 (5)因为四个轮子与车身间为旋转副,所以需要配置limit参数。配置完点Next (6)这里直接点Finish,保存URDF文件。 (7

ROS新手教程【一】ROS开源机器人操作系统简介

 ̄綄美尐妖づ 提交于 2019-12-05 06:48:43
导师是机器人方向的,毕设就让我ROS的研究,网上有几篇新手教程,我自己照着做也行,但想了想,一直没有写博客的习惯,索性就从这次开始,主要参考是wiki,其实我建议看得懂英文的照着做就好,不理解得地方再看看下面的资料: 1.小菜鸟上校的博客: http://blog.csdn.net/xiaocainiaoshangxiao/article/category/1710543/2 2.ROS探索总结专栏: http://blog.csdn.net/column/details/ros-explore.html 3.ROS中文社区: http://www.robotos.net/forum.php 4. 机器人操作系统(ROS)教程 http://www.arduino.cn/thread-11255-1-1.html 下面就开始复制粘贴了 一、历史 随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS(robot operating system),很快在机器人研究领域展开了学习和使用ROS的热潮。 ROS系统是起源于2007年斯坦福大学人工智能实验室的项目与机器人技术公司Willow Garage的个人机器人项目(Personal Robots

机器人 已知关节位置的位置、速度、加速度求力矩

大城市里の小女人 提交于 2019-12-05 06:47:56
机器人已知关节位置的位置、速度、加速度求力矩 flyfish 力矩的wiki解释: 在物理学里,作用力促使物体绕着转动轴或支点转动的趋向,称为力矩(torque),也就是扭转的力。转动力矩又称为转矩。力矩能够使物体改变其旋转运动。推挤或拖拉涉及到作用力 ,而扭转则涉及到力矩。 简略地说,力矩是一种施加于好像螺栓或飞轮一类的物体的扭转力。例如,用扳手的开口箝紧螺栓或螺帽,然后转动扳手,这动作会产生力矩来转动螺栓或螺帽。 根据国际单位制,力矩的单位是牛顿.米。 KDL 使用的是KDL(The Kinematics and Dynamics Library ) Orocos Kinematics and Dynamics Smarter in motion! 主要用到里面的运动学和动力学求解:各种通用的正逆运动学算法(Kinematic and Dynamic Solvers: various generic forward and inverse kinematic algorithms) KDL首先要加载URDF文件 URDF URDF(Unified Robot Description Format,统一机器人描述格式)是ROS中一个非常重要的机器人模型描述格式,ROS同时也提供URDF文件的C++解析器,可以解析URDF文件中使用XML格式描述的机器人模型。

wstool ros空间管理工具

天大地大妈咪最大 提交于 2019-12-04 21:43:37
查看ROS的默认空间: 使用以下命令可以查看ROS默认使用的工作空间: $ echo $ROS_PACKAGE_PATH 1.wstool 用于从多个版本控制系统维护项目工作空间的命令行工具。wstool是一个操作ROS工作区的命令。 wstool取代了它的前身rosws。wstool提供了基于单个工作空间定义文件(.rosinstall)管理多个本地SCM存储库(支持git,mercurial,subversion,bazaar)的命令。wstool不是重写。它旨在重用大部分的rosws工具代码,从而生成与rosws使用的.rosinstall文件兼容的.rosinstall文件。wstool依赖于vcstools包,并且在过渡期间它还将依赖于rosinstall包(稍后将依赖于该依赖关系)。 1.1.安装 $ sudo apt-get install python-wstool $ sudo pip install -U wstool 1.2.从rosws和rosbuild的变化 rosbuild和rosws使用ROS_WORKSPACE环境变量来确定您正在使用的工作空间. catkin从当前工作目录中确定这一点。 使用-t参数指定wstool的工作空间,wstool工作空间的根目录是catkin源目录的根目录: ~/ros_catkin_ws/ <-- Invoke

Serverless 实战 —— Funcraft + OSS + ROS 进行 CI/CD

元气小坏坏 提交于 2019-12-04 20:02:50
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute) :函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考 。 Funcraft :Funcraft 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考 。 OSS : 对象存储。海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%的数据可靠性。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。 ROS :资源编排(ROS)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 CI/CD : CI/CD

ROS--自定义消息类型

◇◆丶佛笑我妖孽 提交于 2019-12-04 19:05:35
一、msg   用于发布-订阅的通信方式中。   1、在包的src 中创建msg文件夹。   2、在msg文件夹中,创建.msg文件   3、编辑.msg文件   4、编辑package.xml , 添加依赖     <build_depend>message_generation</build_depend>     <run_depend>message_runtime</build_depend>     以及其他以来项,如.msg中嵌套了其他消息   5、如果没有使用catkin_simple 需要编辑CMakeLists.txt   6、编译,catkin_make,在devel/include 中可以看到头文件 二、srv   用于请求-服务通信方式中,对服务消息的描述   1、在包的src 中创建srv文件夹。   2、在srv文件夹中,创建.srv文件    3、编辑.srv文件格式如下 string name --- bool on_the_list bool is_good int32 age string nickname     使用---分割,上面为请求,下面为响应   4、5、6参照msg 三、action   用于动作服务器客户端模式   1、在包的action 中创建action文件夹。   2、在action文件夹中,创建.action文件   

cartographer保存地图

淺唱寂寞╮ 提交于 2019-12-04 16:18:55
手持激光,并用cartographer建图,保存的地图是.pbstream格式 ht@ht:~$ rosservice call /write_state /home/ht/Desktop/carto_map.pbstream '1' status: code: 0 message: "State written to '/home/ht/Desktop/carto_map.pbstream'." 再执行下一步保存: ht@ht:~$ rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=/home/ht/Desktop/ros_map -pbstream_filename=/home/ht/Desktop/carto_map.pbstream -resolution=0.05 I1116 20:18:02.375815 5692 pbstream_to_ros_map_main.cc:43] Loading submap slices from serialized data. I1116 20:18:03.199592 5692 pbstream_to_ros_map_main.cc:51] Generating combined map image from submap slices.

Error using boost::bind for subscribe callback

我们两清 提交于 2019-12-04 14:07:53
We're getting this compile error followed by many more errors showing attempts to match the subscribe parameters to all possible candidate functions when using boost::bind as a callback for subscribe. error: no matching function for call to ‘ros::NodeHandle::subscribe(const char [18], int, boost::_bi::bind_t<void, void (*)(const geometry_msgs::WrenchStamped_<std::allocator<void> >&, moveit::planning_interface::MoveGroup&), boost::_bi::list2<boost::arg<1>, boost::_bi::value<moveit::planning_interface::MoveGroup*> > >)’ Our code is as follows. The commented lines show the code which works when