【libevent源码剖析】【vlc源码阅读】【Tpshoo商城源码】rqt源码

时间:2024-12-28 00:09:35 来源:安卓10源码包下载 编辑:excel系统 源码

1.最强干货|ROS与RPLIDAR结合使用说明及问题汇总
2.如何编写ros的python程序
3.baxter realsense435i easy_hand 手眼标定
4.ROS学习笔记@ROS安装
5.1.5 ROS2体系框架万字干货来啦,快来码住
6.单目USB摄像和Intel Realsense D435i 头+ Apriltag_ros配置和实现对相机姿态的估计

rqt源码

最强干货|ROS与RPLIDAR结合使用说明及问题汇总

       ROS作为机器人软件平台,提供类似操作系统功能,对于机器人行走研究至关重要。Llidar作为机器人定位导航的核心传感器,在自主行走、libevent源码剖析定位导航方面起到关键作用。结合使用,使机器人自主定位导航效果更优。

       RPLIDAR产品简介:SLAMTEC思岚科技自主研发激光雷达,有A1和A2两款成熟商业产品。A1测距范围0.2~6米,每秒2K个点,扫描频率5~hz可调;A2测距范围0.~8米,每秒4K个点,扫描频率5~ hz可调。官方提供SDK和开发指导文档。

       具体操作流程:设备管理器找到串口,打开frame_grabe,选择对应端口查看,进入frame_grabber界面。

       RPLIDAR的ROS包rplidar_ros:面向全球ROS开发者推出,价格低廉,推动激光雷达在ROS中的应用,促进服务机器人移动导航、避障技术发展和人才储备。建立通用通讯框架,让开发者遵循通讯协议,关注数据接口,完成模块功能。

       rplidar_ros wiki:包含产品功能、接口、参数说明和使用流程、支持版本信息。

       rplidar_ros github:包含源码、vlc源码阅读版本管理、开发者问题讨论。

       消息机制:/scan话题、stop_motor和start_motor服务。/scan用于发送雷达数据消息,消息格式为sensor_msgs/LaserScan,避障或SLAM功能模块调用。stop_motor和start_motor用于客户端调用服务器关闭和启动雷达。

       坐标系说明:rplidar顺时针旋转,SDK左手系数据转化为右手坐标系输出。

       启动说明:查看端口权限,执行相应脚本赋予固定权限,启动节点,显示雷达数据。

       搭建机器人系统:关注topic/service和TF帧协调,通过模型、静态变换、TF查看TF树。

       利用RPLIDAR建图:开源2D激光雷达SLAM ROS包有gmapping、Hector、karto、cartographer等。构建效果取决于算法实现,参数设置和内部代码。

       问题汇总:树莓派等系统无法启动检查供电、设置端口权限、原始数据输出形式、ntenstity数据无效、固定角度需求添加滤波节点、检查端口、tf_tree和rqt_graph、发送问题至支持邮箱。

如何编写ros的python程序

       ROS Indigo beginner_Tutorials- ç¼–写 ROS è¯é¢˜ç‰ˆçš„ Hello World ç¨‹åºï¼ˆPython版)

       æˆ‘使用的虚拟机软件:VMware Workstation  

       ä½¿ç”¨çš„Ubuntu系统:Ubuntu ..4 LTS 

       ROS ç‰ˆæœ¬ï¼šROS Indigo

       1. 前言 :

       Hello world ç¨‹åºï¼Œåœ¨æˆ‘们编程界,代表学习某种语言编写的第一个程序。对于 ROS æœºå™¨äººæ“ä½œç³»ç»Ÿæ¥è¯´ï¼Œè¿™ä¸ª Hello World ç¨‹åºå°±æ˜¯ : 写一个简单的消息发布器(发送) 和 订阅器(接收)。

       2. 准备工作 :

       C++ çš„程序都会存放在每个程序包的 src æ–‡ä»¶å¤¹é‡Œã€‚ Python ä¸åŒï¼ŒPython ç¨‹åºéƒ½å­˜æ”¾åœ¨ scripts æ–‡ä»¶å¤¹ä¸­ï¼Œ 反正意思都是 æºæ–‡ä»¶ åŒ…。 

       Step 1 . æ‰€ä»¥ï¼Œå…ˆåœ¨ beginner_tutorials è½¯ä»¶åŒ…中创建一个 scripts æ–‡ä»¶å¤¹ï¼š

       $ roscd beginner_tutorials$ mkdir scripts$ cd scripts

       3. 编写消息发布器节点程序:

       å¦‚果你懒得去写的话,你可以使用 wget å‘½ä»¤ï¼Œ 在 github ä¸ŠèŽ·å–一个 talker.py æºä»£ç ã€‚如何获取呢 ? 

       Step 2 . å¼€ä¸€ä¸ªç»ˆç«¯ï¼Œè¾“入下面的命令就可以获取 talker.py ï¼š

       $ wget 

       -devel/rospy_tutorials/_talker_listener/talker.py$ ls

       talker.py

       ä½†æ˜¯æˆ‘建议你亲自动手,写一写:手动创建一个 talker.py æ–‡ä»¶åœ¨ /scripys æ–‡ä»¶å¤¹é‡Œï¼š

       $ roscd beginner_tutorials/scripts$ gedit talker.py

       å°†è¿™ä¸Šé¢é“¾æŽ¥é‡Œçš„代码手动输入到 talker.py æ–‡ä»¶ä¸­ã€‚(我就不将代码贴上来了)

       ä¸‹é¢æˆ‘来讲解一下代码:

       Step 3 . æœ€åŽä¸€æ­¥ï¼Œç»™è¿™ä¸ª talker.py æ–‡ä»¶åŠ ä¸Šå¯æ‰§è¡Œæƒé™ï¼š

       $ chmod +x talker.py1

       è¿™æ ·ï¼Œä¸€ä¸ªå‘布器就编写完了。我们不要急着去运行它,现在我们编写一个订阅器,来接收这个发布器发布的话题:

       4. 编写消息订阅器节点程序:

       Step 4 . å’Œå‘布器一样,我们使用wget命令获取订阅器的源代码 listener.py:

       $ roscd beginner_tutorials/scripts/$ wget 

       ials/indigo-devel/rospy_tutorials/_talker_listener/listener.py$ ls

       listener.py  talker.py

       ä½†æ˜¯ï¼Œæˆ‘还是建议你自己动手写一下。

       å¥½å§ï¼Œä¸‹é¢æˆ‘们开始讲解 listener.py é‡Œé¢çš„代码,这个listener.py程序的代码简单:

       Step 5 . æœ€åŽä¸è¦å¿˜äº†ç»™è¿™ä¸ªlistener.py åŠ å¯æ‰§è¡Œæƒé™ï¼š

       $ chmod +x listener.py1

       5. 运行 :

       å¯¹äºŽpython æ¥è¯´ï¼Œæˆ‘们不需要使用 catkin_make å‘½ä»¤å¯¹ ~/catkin_ws å·¥ä½œç©ºé—´è¿›è¡Œç¼–译。因为python文件本身就是可执行文件(前提是我们给它添加可执行权限)。

       OK,发布器 å’Œ è®¢é˜…器 éƒ½åˆ›å»ºå®Œäº†ã€‚下面我们运行它们,看看效果:

       Step 6 . æ–°æ‰“开一个终端,先执行 roscore å‘½ä»¤ï¼š

       $ roscore1

       Step 7 . æ–°æ‰“开一个终端,启动 å‘布器 ï¼š

       $ rosrun beginner_tutorials talker.py  1

       Step 8 . æ–°æ‰“开一个终端,启动 è®¢é˜…器 ï¼š

       $ rosrun beginner_tutorials listener.py 1

       è¿è¡Œæ•ˆæžœï¼š

       Step 9 . æˆ‘们来使用 rostopic list ï¼Œçœ‹çœ‹å½“前的话题有哪些:

       $ rostopic list

       /chatter

       /rosout

       /rosout_agg

       å…¶ä¸­ /chatter å°±æ˜¯æˆ‘们在发布器里面发布的 ROS话题。

       6. 扩展,编写一个启动脚本文件 :

       è¿˜è®°å¾—上一节,我们讲的ROS的启动脚本文件吧,下面我们来编写一个launch文件,来将 talker.py å’Œlistener.py æ–‡ä»¶çš„启动工作交个这个launch文件来做:

       Step . æ¥åˆ° beginner_tutorials程序包的 /launch è·¯å¾„下,新建一个 hello_world_topic.launch æ–‡ä»¶ï¼š

       $ roscd  beginner_tutorials/launch$ gedit hello_world_topic.launch   #使用你自己喜欢的文本编辑器

       Step . è¾“入下面的代码:

       <launch>

       <node pkg="beginner_tutorials" name="talker" type="talker.py" />

       <node pkg="beginner_tutorials" name="listener" type="listener.py" /></launch>

       Step . çŽ°åœ¨ï¼Œå°†ä¹‹å‰æ‰“开的终端都关闭,我们启动这个脚本: (开一个终端 : Ctrl+Alt+T)

       $ roslaunch beginner_tutorials hello_world_topic.launch1

       è¿è¡Œç»“果:

       ä¸Šé¢æˆªå›¾çš„输出显示: talker.py å’Œ listener.py è„šæœ¬è¿è¡ŒæˆåŠŸã€‚但是并没有出现刷屏的现象。这是为什么? 为了证明这个脚本程序真的成功的运行了,我们来试一试:

       Step . é‡æ–°å¼€ä¸€ä¸ªç»ˆç«¯ï¼Œè¾“入下面的命令:

       $ rosrun list$ rostopic list$ rostopic echo /chatter

       Step . çŽ°åœ¨ Ctrl+C ç»“束监听 /chatter è¯é¢˜ã€‚使用 rqt_graph å¯¹å½“前启动的节点可视化:

       $ rqt_graph1

       è¿™äº›è¶³ä»¥è¯´æ˜Žï¼Œhello_world_topic.launch å¯åŠ¨è„šæœ¬æ–‡ä»¶ï¼Œå¯åŠ¨æˆåŠŸã€‚

       æ€»ç»“: å‘布器 å’Œ è®¢é˜…器 æ˜¯å¾ˆç®€å•çš„, 就是简单的发布一个 自定义的话题。

       æˆ‘之前使用说过:节点之间通讯的方式有两种 : 话题(rostopic) 和 服务(rosservice)

       æ‰€ä»¥ï¼ŒæŽ¥ä¸‹æ¥ï¼Œæˆ‘们会讲:使用ROS服务来完成ROS版 Hello World ç¨‹åºçš„例子。但是在这之前,我们需要学一学:如何创建自定义的ROS消息和ROS服务,以便 ROS æœåŠ¡ç‰ˆçš„ Hello World ç¨‹åºçš„编写。 

       æ‰€ä»¥ä¸‹ä¸€è®²ï¼Œæˆ‘们来学习:如何创建自定义的ROS消息和ROS服务。

baxter realsensei easy_hand 手眼标定

       在 Ubuntu . ROS melodic 环境下配置安装 Baxter realsensei easy_hand 手眼标定涉及以下步骤:

       首先,安装 realsenseSDK2.0 和 ROS Wrapper for Intel RealSense。Tpshoo商城源码选择二进制安装或源码安装,根据个人需求进行。

       接着,安装 easy-handeye 工具包,包括 aruco_ros 和 visp 的配置。确保网络连接稳定,以避免安装过程中的错误。

       对于 rosdep 的安装问题,需执行 rosdep update 或在遇到错误时,重置 rosdep 环境。如果安装 transforms3d 时出现问题,直接安装此库以解决问题。

       完成 rosdep 安装后,使用 catkin_make 命令构建项目。

       进行 Baxter 手眼标定时,准备 ArUco marker,注意选择合适的 Dictionary、Marker ID 和 Marker size,并打印标定板。在 easy_handeye 文件夹内,创建并配置 baxter_realsense_calibration.launch 文件。

       运行 baxter_realsense_calibration.launch 文件时,可能遇到 try passing the option "--force-discover" 错误,可尝试执行 sudo rm ~/.config/ros.org/rqt_gui.ini 并重新安装 OpenCV 来解决。

       执行上述步骤后,即可完成 Baxter realsensei easy_hand 手眼标定,并成功发布 TF。参考相关文章和教程,以确保配置和操作的准确性。

ROS学习笔记@ROS安装

       安装ROS的步骤如下:

       首先,检查CMake版本是否已安装,若有新版本的Cmake,可稍后再安装。若未安装,wangeditor 看源码则在安装ROS后安装所需版本的Cmake。

       接着,确认Ubuntu安装的ROS版本。对于Ubuntu .,对应的是RS Melodic版本,需避免误安装其他版本。参考ROS官网查看其他对应版本。

       安装步骤如下:

       在安装前,确保Ubuntu软件和更新源已检查并更新。推荐更换为国内源以提高速度,例如阿里云、清华或中科大。

       添加ROS软件源,使用终端输入相应命令。

       设置ROS安装密钥,使用apt-key命令,同时检查软件包密钥。

       更新Ubuntu软件源,使用终端输入命令。

       安装ROS桌面完整版,输入终端命令,安装包括ROS、rqt、rviz和机器人通用库在内的内容。选择桌面安装或ROS-Base安装。

       为安装特定ROS软件包,替换下划线为软件包名称的破折号,并使用命令查找可用包。

       设置ROS环境变量,使用终端命令。若要自动添加到当前bash会话,可输入相应命令。对于zsh用户,需运行不同命令。flppy bird 源码

       安装ROS工具,使用命令执行。

       在使用ROS工具前,初始化rosdep,使用终端命令。若遇到从国外网站raw.githubusercontent.com拉取信息导致错误,可修改/etc/hosts和/etc/resolv.conf文件。

       更新rosdep,使用终端命令。遇到更新超时错误时,可尝试多次执行或本地更新以解决。

       运行小海龟和rviz检查安装情况,使用roscore启动ROS核心,然后运行turtlesim_node和turtle_teleop_key控制小海龟,最后启动rviz检查高级功能。

       至此,Ubuntu .的ROS安装过程结束。源码安装内容将在后续研究。

1.5 ROS2体系框架万字干货来啦,快来码住

       1.5 ROS2体系框架详解

       深入理解ROS2框架,对于学习和开发至关重要。ROS2不仅涉及文件系统与核心模块,还有强大的技术支持和广泛应用领域。让我们从微观和宏观视角探讨。

       微观视角

       ROS2的文件系统由三层结构组成,主要针对开发者,主要关注的是功能包为核心的硬盘目录和文件组织,特别是应用层,开发者通过编写特定功能包构建机器人应用。

       宏观视角

       技术支撑:得益于ROS2社区,涵盖了包文档、问答、论坛、包索引和问题跟踪等多种支持机制。

       应用方向:ROS2在导航、机械臂、自动驾驶等领域展现出广泛的应用,如Nav2项目、OpenCV、MoveIt等。

       具体操作

       创建和编译功能包:使用colcon指令进行操作,如`colcon build`和`colcon build --cmake-args`。

       通信模块:涉及机器人控制、传感器数据传输和人机交互等,是开发核心。

       功能包应用:包括二进制安装、源码安装和自定义实现。

       工具与资源

       命令行工具和rqt图形化界面:方便调试和开发效率提升。

       launch文件:批量启动节点的常用方式。

       TF坐标变换和rviz2可视化:辅助定位和数据展示。

单目USB摄像和Intel Realsense Di 头+ Apriltag_ros配置和实现对相机姿态的估计

       配置平台:ROS版本:noetic/melodic,Ubuntu:.LTS/.LTS

       一:AprilTag_ros的配置

       1.1 usb摄像头的安装和使用

       1.1.1下载源码

       1.1.2编译工作空间

       1.1.3添加usb_cam属性文件

       1.1.4编译usb_cam源码

       回到工作空间的src文件中,再去usb_cam中进行编译

       5.测试USB摄像头

       1)运行ROS

       回到usb_cam的launch文件夹中,运行usb_cam的功能包

       1.2 AprilTag_ros包的安装

       安装依赖库apriltag

       编译依赖库apriltag

       进入 apriltag 文件夹中,然后新建文件夹build

       安装AprilTag_ros包

       将源码拷贝到你的工作空间中的src工作目录下

       回到工作空间进行编译

       1.3 单目摄像机的标定

       摄像机标定是通过寻找对象在图像与现实世界的转换数学关系,找出其定量的联系,从而实现从图像中测量出现实中实际数据的目的,基于此才能实现后面的位姿检测。

       1.3.1安装标定功能包

       1.3.2打开摄像头进行标定

       第二条命令参数说明:size:棋盘内交叉点的个数,行*列square:一个格子的边长,单位是mimage:订阅摄像头发布的图像话题(ROS topic)camera:寻找相应的设备相机名(现实情况应该是/dev,仿真的话,不清楚)

       摄像机的校准是以一个由黑白方块组成的棋盘为基准进行的,如图8-8所示。从下面的地址下载8x6国际象棋棋盘,并打印出来后将其贴到一个平坦的纸箱。有时也会打印成超过1米的棋盘,但这里用的是A4纸。作为参考,8x6棋盘横向有9个方块,所以有8个交叉点,而竖向有7个方块,有6个交叉点,所以它被称为8x6棋盘。

       /AprilRobotic... Tag Size Definition 部分可以看到并排的6个二维码,下面的字符串(如:“Tagh” 和 “TagCircleh7”)就是二维码类型,直接替换即可。其他参数使用默认值即可。

       2.配置 tags.yaml

       这个文件只有两个标签可以编写。

       这里面写要使用多少个二维码,apriltag_ros 允许一张中出现多个二维码,但一定要明确每个二维码类型,如果想要添加的话这样写就可以,但记得两个标签都要添加:

       standalone_tags解释:

       id:你给每个二维码的编号,可以从任意数字开始,只要你自己能区分哪个号是哪个二维码就好;

       size:二维码的长度。这个值是需要手动测量出来的,不同类型的二维码测量方式不同,具体可以看他的链接 github.com/AprilRobotic... Tag Size Definition 部分,红色箭头就是你需要手动侧脸的二维码长度,单位是米,然后填写到这里;

       name:和id一样,这是为了更好地区分可以任起;

       tag_bundles注释:

       修改 continuous_detection.launch 文件

       打开 apriltag_ros/launch/continuous_detection.launch 文件。

       需要修改的主要有两个标签:

       这两个值是在 rostopic list中查看相机发布的话题中看见,如果你用的不是realsense,那么需要按照相机包发布出来的话题名修改,这里用的是默认设置的 realsense 相机话题。

       注意:“camera_name” 一定只能用前缀,如果多加了 “/” 会导致算法订阅到的话题变成了 “/camera/color//image_raw” 这样是不会出数据的,因为后面其实是做了一个字符串拼接:

       最终修改如下:

       4.启动 apriltag_ros 算法

       如果没有出现红色的报错说明启动成功了,如果有则检查 yaml 文件有没有出现多一个逗号或者省略号之类的。

       然后再开一个窗口就可以订阅推算出来的话题:

       正确检测到的应该会有下面的信息:

Turtlebot3 入门教程-PC软件设置

       本文提供Turtlebot3入门教程,重点讲解PC软件设置。

       首先,安装Ubuntu系统并执行脚本安装ROS-kinetic,如安装过程中遇到问题,可选择源码安装。

       源码安装步骤包括:安装源、增加key、更新、Desktop-Full安装推荐包,包括ROS、rqt、rviz、robot-generic库等,并解决依赖问题。

       在安装过程中,可能需要解决国外服务器下载问题,可借助科学上网方法解决。

       环境设置后,进行rosinstall工具的安装,方便下载ROS软件包。接着开始安装TurtleBot3及依赖包。

       进行网络配置,首先通过`ifconfig`命令获取主机ip地址,如:..1.,并在终端中编辑`.bashrc`文件,添加ROS_MASTER_URI参数,记得包含接口:“:”,然后刷新环境变量。

       小车连接显示器,打开树莓派Ubuntu系统,获取从机ip地址,并确保小车系统连接同一WiFi,与主机IP前三部分一致。

       在小车系统中,同样在`.bashrc`文件中进行相关参数的添加和修改,并刷新环境变量,确保配置完整无误。

       进行主从机测试配置,首先在主机启动roscore服务,接着在从机执行`rostopic list`命令,查看节点名称返回数据是否与预期相同,若相同则配置成功。

       如果配置过程中遇到无法连接主从机的问题,需检查虚拟机网络配置或网络连接是否正确。

       本文还提供如何在主机上仅进行网络配置的简化步骤,通过使用ssh命令连接从机,便于操作和管理。

       完成上述步骤后,即可成功设置Turtlebot3的PC软件环境,为后续的使用与开发打下坚实基础。

cruise-automation Webviz 简介

       cruise-automation项目旨在开发一系列与现有开源工具如rviz、rqt console、rqt_runtime_monitor、rostopic echo和rqt_plot相呼应的可视化面板。通过进一步的开发,添加了针对Cruise特定需求的自定义面板,远离传统工具,以更精细地满足工程师解决问题的需要,并保持对开放源代码机器人社区的实用性。随着定制化和对过时工具逐渐迁移,这些面板功能日益精进。

       项目目标是替代ROS中的可视化工具,如rviz、rqt等。Webviz实现这一目标,提供直观且功能丰富的界面。在试用过程中,发现其稳定性高、加载速度快、使用便捷。以下是Webviz的安装和运行步骤,假设操作系统为Ubuntu .。

       Webviz与ROS数据传递通过rosbridge_suite进行。对于实时显示数据(而非使用bag文件),需要安装rosbridge_suite。

       Webviz启动默认使用websocket端口,无需调整,连接时会自动使用该端口。

       安装nodejs时,遵循github.com/nodesource/d...指南,选择较旧版本(如v.x,避免新版本编译问题)。

       接下是Webviz编译过程:

       下载代码。

       执行编译命令,确保根目录下安装了所有依赖。

       再次执行编译。

       运行编译好的程序,浏览器将直接打开预览界面(推荐使用Chrome浏览器)。

       测试Webviz效果时,可使用两个示例topic:速腾的lidar数据和gnss定位信息(默认时间坐标,也可切换为xy坐标形式)。实测效果如图所示,展示了Webviz在可视化数据方面的强大能力。

copyright © 2016 powered by 皮皮网   sitemap