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使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
2天前
|
Cloud Native 持续交付 云计算
探索云原生架构:构建现代应用的新范式
在当今数字化浪潮中,云原生架构以其敏捷性、弹性和可扩展性成为企业技术转型的核心驱动力。本文将引领读者深入理解云原生的概念,剖析其关键技术组件——微服务、容器化、DevOps实践及持续交付/持续部署流程,并揭示这些技术如何相互协作,共同构建高效、可靠且易于管理的现代软件系统。通过对云原生架构的全面解读,我们旨在为开发者、架构师乃至企业决策者提供有价值的见解与指导,助力其在快速变化的市场环境中保持竞争力。
|
7天前
|
Kubernetes Cloud Native Serverless
探索云原生技术:从基础架构到应用实践
本文深入探讨了云原生技术的各个方面,包括其定义、核心原则、关键技术组件以及在现代企业中的应用。通过分析云原生如何推动数字化转型和提高业务敏捷性,文章旨在为读者提供对这一领域的全面了解和实际应用的指导。
31 7
|
9天前
|
Kubernetes Cloud Native 持续交付
深入理解云原生技术及其在现代IT架构中的应用
【9月更文挑战第18天】云原生技术,作为推动企业数字化转型的引擎,正以它独特的魅力重塑着信息技术的未来。本文将带你一探究竟,从云原生的基础概念出发,逐步深入到其核心组件、设计理念以及如何在实际应用中发挥巨大作用。你将了解到容器化、微服务架构、持续集成与持续部署(CI/CD)等关键实践,并见证它们如何帮助企业构建更加灵活、高效和可靠的应用。
|
15天前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
49 4
|
15天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
24 3
|
1天前
|
前端开发 测试技术 API
探索微前端架构:构建现代化的前端应用
在软件开发中,传统单体架构已难以满足快速迭代需求,微前端架构应运而生。它将前端应用拆分成多个小型、独立的服务,每个服务均可独立开发、测试和部署。本文介绍微前端架构的概念与优势,并指导如何实施。微前端架构具备自治性、技术多样性和共享核心的特点,能够加速开发、提高可维护性,并支持灵活部署策略。实施步骤包括定义服务边界、选择架构模式、建立共享核心、配置跨服务通信及实现独立部署。尽管面临服务耦合、状态同步等挑战,合理规划仍可有效应对。
|
1天前
|
Cloud Native Devops 持续交付
探秘云原生架构:构建高效、灵活的现代应用
在当今数字化时代,企业面临着日益复杂的技术挑战和快速变化的业务需求。为了适应这种环境,云原生架构应运而生。本文将带您深入了解云原生的核心概念、关键技术和应用案例,揭示其在提升业务效率、降低运维成本方面的独特优势。通过阅读本文,您将获得关于如何利用云原生技术构建现代化应用的宝贵见解。
8 0
|
3天前
|
传感器 监控 物联网
无线传感器网络的基本架构及其广泛应用
无线传感器网络的基本架构及其广泛应用
20 0
|
9天前
|
Kubernetes Cloud Native Devops
云原生架构的崛起与应用##
云原生架构是现代企业数字化转型的关键,通过容器化、微服务、DevOps等技术,实现高效、灵活的应用部署和管理。本文探讨云原生的核心概念、主要技术及其实际应用价值,揭示其在提升企业运营效率和创新能力中的重要性。 ##
18 0
|
11天前
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。

推荐镜像

更多