ROS实现多机话题通信
两台Ubuntu系统(如台式机与机器人),通过网线连接,共享ROS节点。
24 篇
两台Ubuntu系统(如台式机与机器人),通过网线连接,共享ROS节点。
使用ROS2+Rviz2可视化URDF文件,一个示例功能包以及完整修改教程。
最近在新的电脑上安装了Ubuntu22.04与ROS2 Humble,与时俱进,学习一下新的ROS2命令并总结下来,以便随时查看。
使用Gazebo搭建6D机械臂仿真环境,并添加相机,然后实现抓取仿真实验。
在使用ROS系统进行机器人实验中,遇到的各种错误信息汇总,不定时更新。
实现了上位机Ros noetic与STM32F1开发板的基于串口的相互通信。
摄像头标定的目的是消除相机畸变,具体畸变原理可以参考之前的文章。usb摄像头在ros系统标定过程大致可以分成几个步骤。①安装usb_camera驱动包;②运行usb_cam读取usb摄像头图像;③下载打印棋盘格并进行摄像头标定。
利用xacro描述文件创建差速小车模型,通过gazebo仿真此模型,然后利用libgazebo_ros_diff_drive.so插件控制小车的运动,最后实现了通过键盘按键,控制gazebo环境中的小车运动。
为什么要创建机器人的三维模型,原因在于机器人机器人仿真工具可以帮助我们体现发现设计中的一些关键错误。而模型仿真的含义,在于我们创建的是机器人模型,因此不一定和实际机器人长得一模一样。但因为是仿真,所以模型必须具备所有的真实硬件特点。
本文从创建工作空间和功能包开始,介绍了其创建步骤和编译方法,并详细汇总了ros的常用指令。然后分别通过具体案例详细讲解了节点、服务、启动文件以及动态参数的创建方法和使用效果。
Rviz是一款三维可视化工具,可以很好的兼容基域ROS软件框架的机器人平台。Rviz可以通过图形化的方式显示机器人传感器信息、机器人运动状态、环境信息等。
laubch文件的作用如下,通过XML文件实现多节点的配置和启动。同时可以自动启动ROS Master(不需要单独roscore)。
TF功能包用来管理所有的坐标系。它可以记录十秒钟之内所有坐标系之间的关系,可以展示夹取的物体相对于机器人中心坐标系的位置在哪里。
Client每Request一次数据请求,Server发送一次数据。数据格式为个人信息,如姓名、性别等。
在ROS Master中有一个Parameter Server参数服务器,它是一个全局字典,用来保存各种配置参数,配置参数是各个节点都可以全局访问的。
通过程序,发布服务请求。即通过客户端的请求,发给服务端产生一个海龟,反馈回客户端。回到catkin_ws/src文件夹下,创建一个名为learning_service的功能包。
Server端等待信号,每次接收到Client端的信号,海龟的运动状态就切换一次(运动→停止、停止→运动)。
在ROS Master中,可以发布与订阅已经定义好的消息,比如海龟的运动、位姿等信息。但有时我们需要自己定义消息的类型。本节主要目的为定义一个Person个人信息,Publisher发布个人信息,Subscriber订阅个人信息。
ROS Master内有两个节点,一个是Subscriber(turtlesim),一个是Publisher,发布者通过程序实现发布Message,Message的内容包括线速度、角度,通过Topic管道,传递给Subscriber,从而控制小海龟的运动。
在ROS_Master中,可以发布与订阅消息,ROS_Master内有两个节点,一个是Subscriber(turtlesim),一个是Publisher,发布者通过程序实现发布Message,Message的内容包括线速度、角度,通过Topic管道,传递给Subscriber,从而控制小海龟的运动。
工作空间是存放工程开发相关文件的文件夹,类似windows中使用ide时创建的工程。工作空间包含的文件夹包括……
roscore是用来启动ros master,是运行ros系统前首先运行的命令;rosrun是用来运行某个功能包内的某个节点的指令,有两个参数,第一个参数是功能包名,第二个参数是节点名。
添加ROS软件源,打开软件与更新,将下载选项前四个都选上。一定要确保都勾选上,不然后续安装时会出现依赖关系问题。然后执行以下命令添加软件源,并添加公钥。
ROS安装过程可见我的上一篇博客Ubuntu20.04安装ROS_Noetic。安装过程中rosdep_init出现【ERROR_cannot download_default_sources_list_from…Website_may_be down.】。rosdep_update,总是出现超时问题无法更新。最终找到了一种靠谱可用的方法。