源码压缩包:
https://gitcode.net/ZhangRelay/cocubesim
打开蓝桥ROS云课:
下载cocubesim压缩包:
https://gitcode.net/ZhangRelay/cocubesim.git
注意文件路径,home文件夹下的code文件夹里面。
解压缩:
tar -xf cocubesim/cocubesim.tar
进入/home/shiyanlou/Code/Code/robot/:
catkin_make
等待编译完成。
测试基本功能(roscore保持启动)。
source devel/setup.zsh
rosrun turtlesim turtlesim_node
这个cocubesim就是turtlesim换皮的。
核心还是turtlesim。
测试基本功能:
有三个小程序,butterfly,curve,move。
使用./move等测试功能如何。
ROS(Robot Operating System)是一个开源的机器人操作系统,它提供了一系列的工具和库,用于构建机器人应用程序。ROS中的节点是ROS程序的基本单元,它们可以是发布者、订阅者或服务提供者。节点之间通过主题(Topic)或服务(Service)进行通信。主题是一种发布/订阅模式,节点可以发布消息到主题,也可以订阅主题以接收消息。服务是一种请求/响应模式,节点可以提供服务以响应请求,也可以请求服务以获取响应。ROS节点可以用C++、Python等语言编写,可以在不同的计算机上运行,也可以在同一计算机上运行。ROS节点的灵活性和可重用性使得它成为机器人应用程序开发的重要工具。
ROS主题是机器人操作系统中的一个重要概念,它是一种用于在ROS中传递消息的机制。主题是一种发布者/订阅者模型,其中发布者将消息发布到主题中,而订阅者则从主题中接收消息。主题可以是任何数据类型,例如传感器数据、控制命令、图像等。在ROS中,主题是一种非常常见的通信方式,它可以让不同的ROS节点之间进行数据交换和协作。主题的使用非常灵活,可以通过ROS命令行工具或编程语言进行访问和操作。
ROS还提供了一系列的服务,用于实现机器人的各种功能,例如导航、感知、运动控制等。ROS的服务是一种基于消息传递的通信方式,它允许客户端向服务器发送请求,并接收服务器返回的响应。ROS的服务可以通过定义服务消息来实现,服务消息是一种结构化的数据类型,用于描述服务的请求和响应。ROS的服务可以在不同的节点之间进行通信,从而实现分布式的机器人应用程序。
如上这些案例都可以通过cocubesim进行练习。
导航案例:
需要具备navigation包。
sudo apt install ros-kinetic-navigation-*
如果安装遇到问题,参考:
ROS1云课→01简介和配置
ROS机器人导航是指利用机器人和传感器等设备,通过对环境的感知和分析,实现机器人在未知或已知环境中自主移动和导航的技术。其基本概念包括地图构建、定位、路径规划和控制等。地图构建是指通过激光雷达、摄像头等传感器获取环境信息,生成机器人所在环境的地图;定位是指利用传感器获取机器人当前位置信息,实现机器人在地图上的定位;路径规划是指根据机器人当前位置和目标位置,通过算法计算出机器人的最优路径;控制是指将路径规划的结果转化为机器人的运动控制指令,实现机器人的自主移动和导航。
启动,注意分别需要不同的终端:
roslaunch turtlesim_examples laser.launch
roslaunch turtlesim_examples moveBase.launch
设定目标点,机器人会自主运行:
同时避开障碍物
将目标点设置为红点:
ROS机器人导航的使用步骤如下:
安装ROS和相关软件包
创建地图
配置机器人模型和传感器
启动导航节点
发布机器人的初始位姿
发布目标点
机器人开始导航
以上是ROS机器人导航的基本步骤,具体实现可以参考ROS官方文档和相关教程。