ROS机器人编程技术架构命令应用

简介: ROS机器人编程技术架构命令应用

ROS机器人编程技术架构命令应用

通过对ROS基础操作命令的应用,熟练掌握以下技能:

1、掌握ROS架构中基本功能命令的使用方法;

2、能够运用指令在屏幕上生成两个小乌龟做画圆形运动;

3、能够运用rosbag功能包复现小乌龟画五角星运动;

需要配备的硬件:PC微型计算机.软件:Windows操作系统、Ubuntu18.04、ROS Melodic.

ROS第一个例程——小海龟画圆形

  1. 建立ROS工作空间
    打开Home目录,在空白处右击,点击新建文件夹(New Folder)建立一个文件夹,命名为catkin_ws

在文件夹 catkin_ws 下创建一个文件夹 src,在src目录下右键在终端中打开 ,输入$ catkin_init_workspac 此时,src文件夹中出现CMakeLists.txt文件

CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。CMake 提供了比 autoconfig 更简洁的语法。

2.编译工作空间

在catkin_ws文件夹下打开终端,输入catkin_make。在catkin_ws文件夹里生成build和devel两个文件夹。

  1. 配置环境变量
    设置环境变量是为了让系统知道功能包的位置在哪,以便能找到。确保安装脚本正确地覆盖了工作空间,ROS_PACKAGE_PATH环境变量包含在目录中。
    在catkin_ws路径下终端输入 $ source devel/setup.bash,使系统知道功能包放置在catkin_ws这个工作空间下。查看当前环境变量,终端输入 $ echo $ROS_PACKAGE_PATH
  2. ROS机器人画圆程序的编写
    打开终端,在catkin_ws/src路径下新建my_turtle_package包$ catkin_create_pkg my_turtle_package rospy roscpp
    在my_turtle_package/src 中创建cpp文件 $ gedit draw_circle.cpp
    打开draw_circle.cpp,编写画圆代码:
    #include “ros/ros.h”
    #include<geometry_msgs/Twist.h> //运动速度结构体类型 geometry_msgs::Twist的定义文件

int main(int argc, char *argv[])

{

ros::init(argc, argv, “vel_ctrl”); //对该节点进行初始化操作

ros::NodeHandle n; //申明一个NodeHandle对象n,并用n生成一个广播对象vel_pub

ros::Publisher vel_pub = n.advertise<geometry_msgs::Twist>(“/turtle1/cmd_vel”, 10);

//vel_pub会在主题"/cmd_vel"(机器人速度控制主题)里广播geometry_msgs::Twist类型的数据

ROS_INFO(“draw_circle start…”);//输出显示信息

while(ros::ok())

{

geometry_msgs::Twist vel_cmd; //声明一个geometry_msgs::Twist 类型的对象vel_cmd,并将速度的值赋值到这个对象里面

    vel_cmd.linear.x = 2.0;//前后(+-) m/s
    vel_cmd.linear.y = 0.0;  //左右(+-) m/s
    vel_cmd.linear.z = 0.0;

    vel_cmd.angular.x = 0;
    vel_cmd.angular.y = 0;
    vel_cmd.angular.z = 1.8; //机器人的自转速度,+左转,-右转,单位是rad/s
    vel_pub.publish(vel_cmd); //赋值完毕后,发送到主题"/cmd_vel"。机器人的核心节点会从这个主题接受发送过去的速度值,并转发到硬件体上去执行

    ros::spinOnce();//调用此函数给其他回调函数得以执行(比例程未使用回调函数)
}
return 0;

}

打开CMakeLists.txt $ gedit CMakeLists.txt

在CMakeLists.txt文件中找到##Declare a C++ executable,在这一行的前面添加如下内容:

add_executable(draw_circle src/draw_circle.cpp)

target_link_libraries(draw_circle ${catkin_LIBRARIES})

保存并退出CMakeLists.txt文件。然后在terminal中继续输入如下命令进行编译:

$ cd ~/catkin_ws/

$ catkin_make

编译成功

  1. 启动ROS机器人
    打开第一个终端(terminal),启动ros
    $ roscore
    打开第二个终端(terminal),启动rosnode
    $ rosrun turtlesim turtlesim_node
    打开第三个终端(terminal),启动my_turtle_package节点
    $ cd ~/catkin_ws/
    $ source devel/setup.bash
    $ rosrun my_turtle_package draw_circle

ROS第二个例程——复现小海龟画五角星

  1. 启动海龟模拟器
    打开终端Ctrl+Alt+T,输入下面的指令
    ros2 run turtlesim turtlesim_node

即看到这样的界面

  1. 启动海龟遥控器
    点一下原来的终端输入Ctrl+Shift+T 打开一个新的标签页输入
    ros2 run turtlesim turtle_teleop_key
    你可以看到这样子的界面


相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
目录
相关文章
|
Ubuntu 机器人 Linux
|
存储 人工智能 监控
大牛直播SDK在四足机器人和无人机巡检中的创新应用方案
在工业4.0和智能化浪潮下,传统巡检方式正经历深刻变革。四足机器人与无人机凭借灵活机动性和高效巡检能力崭露头角,而大牛直播SDK则赋予其实时直播与智能互动功能。本文介绍大牛直播SDK的核心优势、在四足机器人和无人机巡检中的应用方案,以及技术实现要点和未来展望,展示智能巡检的广阔前景。
389 6
|
机器人 API 数据安全/隐私保护
【最佳实践系列】通过AppFlow,支持飞书机器人调用阿里云百炼应用
本文介绍了如何创建并配置飞书应用及机器人,主要包括三个步骤:1. 登录飞书开发者后台,创建企业自建应用并添加机器人卡片和API权限;2. 创建AppFlow连接流,配置飞书平台凭证和阿里云百炼鉴权凭证,发布WebhookUrl,并在飞书开放平台配置事件订阅;3. 将机器人添加到群聊中,通过@机器人实现互动。以及通过AppFlow连接流集成阿里云百炼应用服务。此过程详细描述了从应用创建到机器人添加的全流程,帮助开发者快速集成飞书机器人功能。
2364 10
|
6月前
|
机器学习/深度学习 存储 算法
【水下机器人建模】基于QLearning自适应强化学习PID控制器在AUV中的应用研究(Matlab代码实现)
【水下机器人建模】基于QLearning自适应强化学习PID控制器在AUV中的应用研究(Matlab代码实现)
439 0
|
7月前
|
存储 人工智能 机器人
别再只做聊天机器人:AI 应用商业闭环的工程落地指南,免费体验中
本文介绍了如何通过阿里云百炼平台创建一个星座运势分析AI智能体,并集成支付宝MCP服务实现支付闭环。解决AI产品无法直接变现的问题,完成“服务-支付-交易”全流程闭环,帮助开发者快速实现商业化。
|
9月前
|
机器学习/深度学习 人工智能 机器人
模仿学习在机器人“接触丰富”任务中的应用
本文结合近期发表的一篇综述性论文,简要介绍了机器人技术中的模仿学习(Imitation Learning)、以及接触丰富(Contact-Rich)任务这两个概念
285 41
|
9月前
|
传感器 机器人 开发者
ROS服务(Service)通信中的模型与实际应用: 初识Hello World并予以扩展
总而言之,ROS服务提供的是一种可靠而灵活的通信方式。每一次服务的请求和应答都会阻塞,直至应答完成。这意味着在调用服务之后,你可以确保你的请求被正确处理。这也是它在机器人系统中如此重要的原因,因为在许多情况下,我们需要获取实时、准确的结果,例如控制机器人执行精确的运动。
541 1
|
9月前
|
人工智能 边缘计算 自然语言处理
大模型应用实践:2025年智能语音机器人厂商推荐和方案详解
随着数字化转型加速,AI客服机器人市场规模预计2025年突破500亿美元,年复合增长率超25%。其发展由语音交互升级、垂直场景解决方案成熟及多模态融合与边缘计算普及三大趋势驱动。文章分析了智能语音机器人的选型核心维度,包括技术性能、场景适配、数据治理与成本效益,并对比了国内外代表厂商如合力亿捷、Zendesk等的方案特点,为企业提供选型策略与落地建议,助力实现服务模式的根本性变革。
811 0
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
491 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
Java 网络安全 开发工具
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。

热门文章

最新文章

推荐镜像

更多
  • ros