ROS1
文章平均质量分 69
ROS1的学习笔记!
JunJun~
沉淀~
展开
-
使用Mapviz和天地图API绘制gvins算法的轨迹
Mapviz在地图上显示GPS轨迹原创 2022-02-07 13:51:26 · 2303 阅读 · 16 评论 -
基于ROS使用Android控制CatVehicle
1 下载Android app:ROS Control1.1 下载在谷歌空间中下载ROS Control。截图如下:1.2 ROS Control的配置 虚拟机VMware(网络适配器):使用“”桥接”模式 手机和电脑连接到同一个无线网络上。 使用ifconfig查看Ubuntu的IP地址,如下图所示:根据上图的IP地址,更改ROS Control的Master U...原创 2018-12-08 18:15:48 · 1535 阅读 · 2 评论 -
基于ROS实现人脸跟随(关键词:人脸跟随,ROS,OpenCV,arduino)
该测试欲达成目标是实现人脸跟随!1 硬件摄像头:1个;USB数据线:1个;舵机:1个;Arduino控制板:1个。此处应有图:1.1 准备这里需要使用usb-cam软件包:$ cd ~/catkin_ws/src $ git clone https://github.com/bosch-ros-pkg/usb_cam.git $ cd ~/catk...原创 2018-11-18 00:01:15 · 6924 阅读 · 7 评论 -
基于ROS使用OpenCV进行人脸识别
1 硬件摄像头:1个;USB数据线:1个;1.1 准备这里需要使用usb-cam软件包:$ cd ~/catkin_ws/src $ git clone https://github.com/bosch-ros-pkg/usb_cam.git $ cd ~/catkin_ws $ catkin_make 注意:下面的程序运行前,需要启动usb_cam节点。...原创 2018-11-13 20:54:20 · 6463 阅读 · 34 评论 -
基于ROS使用OpenCV进行图像的边缘检测
1 硬件摄像头:1个;USB数据线:1个;1.1 准备这里需要使用usb-cam软件包:$ cd ~/catkin_ws/src $ git clone https://github.com/bosch-ros-pkg/usb_cam.git $ cd ~/catkin_ws $ catkin_make 注意:下面的程序运行前,需要启动usb_cam节点。...原创 2018-11-11 21:58:10 · 1710 阅读 · 2 评论 -
基于ROS使用Arduino控制水泵
1. 硬件Arduino控制板:1个;继电器:1个;水泵:1个;杜邦线:若干;1.1 接线方式参考如下:1、arduino主板的5V、继电器VCC、继电器公共端接在一起2、arduino主板的GND、继电器GND、水泵白色线接在一起3、水泵红色线接继电器常闭端来张实际的照片(略麻烦):2 程序#include <ros.h>...原创 2018-11-07 22:18:44 · 11330 阅读 · 2 评论 -
基于ROS使用Arduino控制四位数码管
1. 硬件Arduino控制板:1个;数码管:1个;杜邦线:若干;1.1 接线方式参考如下:a = 1; tb = 2; c = 3;d = 4; e = 5; f = 6; g = 7; dp = 8;注意:上面的这些都需要串联电阻。//设置阳极接口d4 = 9; d3 = 10; d2 = 11; d1 = 12;注意:这些可以直接连接到Arduin...原创 2018-10-28 16:19:46 · 1490 阅读 · 0 评论 -
基于ROS使用Arduino控制数码管
1. 硬件Arduino控制板:1个;数码管:1个;杜邦线:若干;1.1 接线方式参考如下方式:实物连接图:注意:数码管有两种接法,共阴数码管在应用时应将公共极接到GND或者5V。来张实际的照片(略麻烦):2 程序#include <ros.h>#include <std_msgs/Int16.h>//设置控制...原创 2018-10-26 19:35:53 · 575 阅读 · 0 评论 -
基于ROS使用Arduino读取红外遥控的输入
1. 硬件Arduino控制板:1个;遥控器:1个;红外接收头:1个;杜邦线:若干;1.1 接线方式红外接收头有三个引脚如下图:用的时候将VOUT接到模拟口(11),GND接到实验板上的GND,VCC接到实验板上的+5v。来张实际的照片(略麻烦):2 程序#include <IRremote.h>#include <ros...原创 2018-10-24 21:17:54 · 862 阅读 · 0 评论 -
基于ROS使用Arduino读取矩阵键盘的输入
1. 硬件Arduino控制板:1个;矩阵键盘:1个;杜邦线:若干;1.1 接线方式接线方式为:来张实际的照片(略麻烦):2 程序#include <Keypad.h>#include <ros.h>#include <std_msgs/Char.h>const byte ROWS = 4; //four ...原创 2018-10-23 23:03:30 · 1676 阅读 · 0 评论 -
基于ROS使用Arduino读取温湿度传感器的数据
1. 硬件Arduino控制板:1个;温湿度传感器:1个;杜邦线:若干;1.1 接线方式接线方式为:DHT11的VCC—Arduino的5V;DHT11的GND—Arduino的GND;DHT11的DATA—Arduino的2;来张实际的照片(略麻烦):2 程序#include <ros.h>#include <std_msgs...原创 2018-10-22 23:26:08 · 2105 阅读 · 5 评论 -
基于ROS使用Arduino控制直流电机
1. 硬件Arduino控制板:1个;直流电机:1个;杜邦线:若干;UN2003LA: 1个1.1 接线方式接线方式为:ULN2003 arduino主板 1脚 9 8脚 GND 9脚...原创 2018-10-22 22:24:39 · 3872 阅读 · 9 评论 -
基于ROS使用Arduino控制超声波传感器
1. 硬件Arduino控制板:1个;超声波传感器:1个;杜邦线:若干;1.1 接线方式接线方式为:5v电源脚(Vcc),触发控制端(Trig),接收端(Echo),地端(GND)其中触发端设置为输出,这里连接引脚11;接收端设置为输入,连接引脚12。来张实际的照片(略麻烦):2 程序#include <ros.h>#include <...原创 2018-10-22 21:26:06 · 2305 阅读 · 7 评论 -
Arduino与ROS通信过程中"Lost sync with device, restarting..."错误
对于这个问题的一种可能的解决方案,在回调函数中使用了while(1)循环,当注释掉循环后,这个问题得到了解决。程序如下:测试的目的是:当得到话题的数据时,则Arduino控制蜂鸣器一直以该频率发出铃声;但后来发现当存在while(1)循环时,一直会报错,注释掉之后,解决这个问题;大概时回调函数没有执行完毕,新的回调又来了的缘故。#include <ros.h>#incl...原创 2018-10-21 00:32:41 · 2950 阅读 · 0 评论 -
基于ROS使用Arduino控制蜂鸣器
1. 硬件Arduino控制板:1个;蜂鸣器:1个;杜邦线:若干;1.1 接线方式接线方式为:蜂鸣器的一个引脚接Arduino的数字输出引脚,蜂鸣器的另外的一个引脚接地来张实际的照片(略麻烦):2 程序#include <ros.h>#include <std_msgs/Int8.h>int buzzer = 11;int de...原创 2018-10-21 00:26:40 · 891 阅读 · 0 评论 -
Arduino与ROS出现“ Unable to sync with device; possible link problem or link software version mismatch”
1.发生问题描述Arduino IDE编译通过且下载! 运行:rosrun rosserial_python serial_node.py /dev/ttyACM0时报错!内容为:Unable to sync with device; possible link problem or link software version mismatch such as hydro rosserial...原创 2018-10-20 08:45:27 · 8609 阅读 · 4 评论 -
基于ROS系统使用Arduino控制LCD1602
1. 硬件Arduino控制板:1个;LCD1602:1个;杜邦线:若干;电位器:1个;1.1 接线方式接线方式为:采用4接线方式来张实际的照片(略麻烦):2 程序#include <ros.h>#include <std_msgs/String.h>#include <LiquidCrystal.h>...原创 2018-10-19 22:41:46 · 888 阅读 · 0 评论 -
基于ROS系统使用Arduino控制舵机
1. 硬件Arduino控制板:1个;舵机:1个;杜邦线:若干;LED等:1个;使用Arduino自己带的,当收到消息时,亮;15ms后再灭。1.1 接线方式我的舵机长相如下:接线方式为:舵机的Ground接Arduino的地线 Power接Arduino的5V线...原创 2018-10-18 22:40:00 · 3825 阅读 · 9 评论 -
ROS学习笔记85:sudo rosdep init问题
最近新装了Ubuntu18.04,所以更新了下ROS,按照之前的博客发现出问题了,报错如下:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite ...原创 2020-03-08 12:53:21 · 246 阅读 · 0 评论 -
ROS学习笔记84:Gazebo的一些常见问题
1 问题描述:有时候Gazebo卡死导致再次进入黑屏killall gaserverkillall gaclient2 问题描述:命令行键入gazebo后加载地图很慢世界一直是黑色的应该是新装的gazebo,初次使用,加载本来就比较慢;可以把模型提前下好到相应的文件中;cd ~/.gazebo/mkdir -p modelscd ~/.gazebo/models/wg...原创 2020-03-03 09:28:11 · 983 阅读 · 0 评论 -
ROS学习笔记83(roscpp 理解定时器)
1 什么是定时器定时器定以一定的速率定时的调用回调函数。They are a more flexible and useful form of the ros::Rate used in the Writing a Simple Publisher and Subscriber tutorial.Note that Timers are not a realtime thread/kern...翻译 2019-09-22 23:51:52 · 727 阅读 · 0 评论 -
ROS学习笔记82(roscpp 回调函数)
1 订阅者假设你有一个简单的类:https://raw.github.com/ros/ros_tutorials/groovy-devel/roscpp_tutorials/listener_class/listener_class.cppclass Listener{public: void callback(const std_msgs::String::ConstPtr...翻译 2019-09-22 23:42:03 · 799 阅读 · 0 评论 -
ROS学习笔记81(从NodeHandle访问私有名称)
1 Why not just ~name?The introduction of NodeHandles in roscpp created something of a conundrum when dealing with private names. If I create a NodeHandle with its own namespace:ros::init(argc, ar...翻译 2019-09-22 23:33:22 · 1620 阅读 · 0 评论 -
ROS学习笔记80(roscpp使用Parameters)
1 恢复参数(Retrieving Parameters)有两种方法恢复参数使用NodeHandle。在下面的例子中,n是NodeHandle的实例。1.1 getParam()getParam()拥有一系列的重载,参考如下的格式:bool getParam (const std::string& key, parameter_type& output_value...翻译 2019-09-22 23:13:36 · 594 阅读 · 0 评论 -
ROS学习笔记79(roscpp 写一个简单的服务器和客户端)
1 写一个服务器节点这里创建一个服务,两个数据相加;切换到基础教程中创建的beginner_tutorials包;roscd beginner_tutorials1.1 服务器程序#include "ros/ros.h"#include "beginner_tutorials/AddTwoInts.h"bool add(beginner_tutorials::AddTwo...翻译 2019-05-21 13:37:13 · 305 阅读 · 0 评论 -
ROS学习笔记78(roscpp 写一个简单的发布者和订阅者)
1 写一个发布节点创建一个不断发送信息的“talker”节点。切换目录:roscd beginner_tutorials1.1 程序创建一个src目录mkdir -p src比如新手教程中的:beginner_tutorials 包就是在这个目录下面。#include "ros/ros.h"#include "std_msgs/String.h"#inc...翻译 2019-05-21 13:24:42 · 482 阅读 · 0 评论 -
ROS学习笔记77(Using urdf with robot_state_publisher)
1 创建URDF文件Here is the URDF file for a 7-link model roughly approximating R2-D2. Save the following link to your computer: model.xml2 发布状态现在我们需要一种方法来指定机器人所处的状态。为此,我们必须指定三个关节和所有的里程信息。首先创建一个包:cd...翻译 2019-01-12 11:07:56 · 737 阅读 · 0 评论 -
ROS学习笔记76(ROS Using the robot state publisher on your own robot)
当您使用具有许多坐标系的机器人时,将它们全部发布到tf变得非常重要。The robot state publisher是一个可以为您完成此任务的工具。机器人状态发布者可帮助您将机器人的状态广播到tf transform library。机器人状态发布者具有机器人的运动学模型;因此,当给定机器人的关节位置,he robot state publisher can compute...翻译 2019-01-10 21:13:14 · 803 阅读 · 0 评论 -
ROS学习笔记75(使用TF设置你的机器人)
1 转换配置许多ROS包使用tf软件库发布机器人的变换树。在抽象级别,变换树根据不同坐标坐标系之间的平移和旋转来定义偏移。为了描述的更具体点,考虑一个简单机器人的例子,该机器人具有移动基座,其顶部安装有一个激光器。在提到机器人时,我们定义两个坐标系:一个对应于机器人底座的中心点,另一个对应于安装在底座顶部激光器的中心点。我们给它们起名,以便于参考。我们称连接到移动基座的坐标系为:base_...翻译 2019-01-09 22:27:19 · 1172 阅读 · 0 评论 -
ROS学习笔记74(TF Using Stamped datatypes with tf::MessageFilter)
本教程介绍了如何将传感器数据与tf一起使用。一些传感器数据的实际例子是:单目摄像头和双目摄像头 激光雷达假设创建了一只名为turtle3的新龟,但它没有里程信息;但有一个高架摄像机跟踪了其位置,并将其位置作为与世界坐标系相关的geometry_msgs / PointStamped消息发布出来。定义的geometry_msgs / PointStamped消息类型。Turt...翻译 2019-01-06 18:00:20 · 692 阅读 · 0 评论 -
ROS学习笔记73(TF调试)
本教程将指导您完成调试典型tf问题的步骤。它将使用tf故障排除指南中说明的步骤应用于使用turtlesim的示例,还将使用许多tf调试工具。1 开始这个例子在本教程中,我们设置了一个具有许多问题的演示应用程序。本教程的目标是应用系统方法来发现这些问题。首先,让我们举一个例子,并看看会发生什么: $ roslaunch turtle_tf start_debug_demo...翻译 2018-12-04 18:39:17 · 694 阅读 · 0 评论 -
ROS学习笔记72(Time Travel with tf)
在上一个教程中,我们讨论了tf和time的基本概念。本教程将更进一步,并展示一个最强大的技巧。1 时间旅行那么让我们回到上一个教程中我们结束的地方。转到您的教程包: $ roscd learning_tf并打开文件src / turtle_tf_listener.cpp。看一下第25-30行: try{ ros::Time now = ros::Time::no...翻译 2018-12-03 23:14:53 · 389 阅读 · 1 评论 -
ROS学习笔记71(TF和时间)
1 tf和时间在之前的教程中,我们了解了tf如何跟踪坐标系树。此树随时间变化,并且tf为每个变换存储时间快照(默认情况下最多10秒)。到目前为止,我们使用lookupTransform()函数来访问该tf树中的最新可用变换,而不知道该变换的记录时间。本教程将教您如何在特定时间进行转换。那么让我们回到最后添加框架教程的地方。转到您的教程包: $ roscd learni...翻译 2018-12-02 22:53:38 · 958 阅读 · 0 评论 -
ROS学习笔记70(TF添加坐标系)
在之前的教程中,我们重建了turtle demo,通过添加tf广播器和tf侦听器。本教程将教您如何向tf树添加额外的坐标系。这与创建广播者非常相似,并将展示tf的一些强大功能。1 为什么要添加坐标系对于许多任务,在局部坐标系更容易找到问题。例如,更容易分析激光扫描仪中心坐标系中的激光扫描仪。tf允许您为系统中的每个传感器,链接等定义本地坐标系。tf能够注意到所有引入的额...翻译 2018-12-02 21:42:38 · 2783 阅读 · 0 评论 -
ROS学习笔记69(TF建立一个监听者)
在之前的教程中,我们创建了一个tf发布者,用于将龟的姿势发布到tf。在本教程中,我们将创建一个tf监听器以开始使用tf。1 如何创建一个tf监听者我们先创建源文件。转到我们在上一个教程中创建的包:$ roscd learning_tf1.1 程序启动您喜欢的编辑器并将以下代码粘贴到名为src / turtle_tf_listener.cpp的新文件中。https:...翻译 2018-11-28 22:23:23 · 787 阅读 · 0 评论 -
ROS学习笔记68(TF建立一个发布者)
在接下来的两个教程中,我们将编写代码以重现tf介绍教程的Demo。之后,以下教程将重点放在使用更高级的tf功能扩展演示。在开始之前,您需要为此项目创建一个新的ros包。创建一个名为learning_tf的包,它依赖于tf,roscpp,rospy和turtlesim: $ cd%YOUR_CATKIN_WORKSPACE_HOME%/ src $ catkin_create_pkg...翻译 2018-11-25 16:12:28 · 970 阅读 · 0 评论 -
ROS学习笔记67(TF简介)
1.tf介绍说明:本教程将帮助您了解tf可以为您做些什么。 It shows off some of the tf power in a multi-robot example using turtlesim。 同时也介绍了使用tf_echo,view_frames,rqt_tf_tree和rviz。2.设置Demo本教程的节点是为Ubunt...翻译 2018-11-22 23:43:14 · 563 阅读 · 0 评论 -
ROS学习笔记66《NodeHandle和ArduinoHardware的高级配置》
rosserial_arduino软件包对于用户是为了work out-of-box ,但用户可能需要更改ros.h和ArduinoHardware.h以更好地适应他们的需要。在本教程中,我们将更改两个文件以演示一些高级设置。1 条件1.1 硬件 Arduino Mega FTDI分线板或类似的UART到USB转换器 两个设备的USB电缆 一些跳线连接两个设备1....翻译 2018-11-04 09:55:27 · 1126 阅读 · 0 评论 -
ROS学习笔记65《Arduino与示波器》
本教程中,我们将使用Arduino的ADC(模数转换器)和rqt_plot制作一个穷人的示波器。我们将建立一个发布者,它将使用rosserial将每个Arduino的6个ADC引脚的模拟值发布到ROS。这将是一个相对较差的示波器(非常低的采样频率和分辨率),但它将非常适合许多快速和dirty的设置。您可以在Arduino IDE的File> Examples> ros_lib&...翻译 2018-11-01 23:19:19 · 1283 阅读 · 0 评论 -
ROS学习笔记64《arduino 超声波传感器》
rosserial允许您轻松地将基于Arduino的硬件与ROS结合起来。本教程将解释如何将SRF08超声波传感器与Arduino配合使用。你需要一个Arduino,一个SRF08超声波传感器,以及一种将超声波传感器连接到你的Arduino的方法,比如面包板或者一个protoboard。SRF08 Arduino库可以从Sonar_srf08.zip下载。1 硬件设置下面是为典型的...翻译 2018-10-31 21:57:03 · 1155 阅读 · 0 评论