ubuntu 18.04 ros1学习

总结了一下,学习内容主要有:

1.ubuntu的基础命令

   pwd: 获得当前路径

   cd: 进入或者退出一个目录

   ls:列举该文件夹下的所有文件名称

   mv 移动一个文件到另一个目录中

  cp 拷贝一个文件到另一个目录中

   rm -r 删除文件

  gedit 

  sudo 给予管理员权限 

  sudo apt-get install

  sudo pkg -i xx.deb

  unzip xx.zip 解压缩zip文件

  zip -r archive_name.zip directory_to_compress  压缩 目录到文件中

   

2.ros工作空间的构建

    2.1 典型的功能包创建和运行过程

   

2.2一个ros工作空间的目录架构

2.3 代码过程

//1. 创建工作空间
mkdir -p ~/ws_test/src
//2. 进入工作空间
cd ws_test
//3. 初始化工作空间,会生成build,devel,build存放编译信息,devel存放可执行文件与相关依赖项,src文件存放代码
catkin_make

//4. cd src
//5. 创建包,宝引用了roscpp
catkin_create_pkg helloworld roscpp 

//6. 写程序,鼠标点击helloworld包的src,创建helloworld.cpp文件,文件中写如下内容
int main(int argc, char** argv)
{
    ros::init(argc,argv, "node_name");
    ROS_INFO("helloworld");
    return 0;
}

//7. 在CMakeLists.txt中配置, 指定生成可执行文件
add_executable(helloworld src/helloworld.cpp)
target_link_library(helloworld ${catkin_LIBRARY})

//8. 对工作空间进行编译,回退到ws_test目录下
catkin_make编译

//9.运行,在一个终端中启动roscore,在另一个终端中启动可执行文件rosrun pkg包名字  exe可执行文件名
//9.1 roscore
//9.2 

source ./devel/setup.bash
rosrun helloworld helloworld

ros通讯机制

【摘抄书中的】同此歌行来说,一个移动机器人项目是多个进程协同完成的,除了极少部分进程可以独立完成自己的之外,其他的进程均需要进行进程之间的数据交互,因此进程间的通讯机制是构建复杂机器人项目的基础。

ROS节点

在ros的世界中,最小的进程单元就是节点Node,通常一个node负责机器人的一个单独模块。一个package中可以有多个可执行文件(通常为C++编译生成的可执行文件或者python脚本),可执行文件在运行之后就形成了一个进程,这个进程就是ros节点。

节点管理器master

节点管理器Master在整个网络通讯中相当于管理中心,管理着各个节点(Node),节点在启动的时候,首先要在Master中进行注册,之后Master会将该节点NODE纳入到整个ros系统中。Node之间的通讯也是由Master进行牵线,然后才能两两的进行点对点的通讯。当ROS节点启动的时候,首先启动Master,再由节点管理器以此启动Node。

换句话说,节点管理器实际上扮演了一个“通讯调度中心”的角色,它启动之后,各个Node之间才会建立相应的关联。但是,在Node连接建立之后,Master的任务就完成了,此时如果关闭Masetr,已经运行的Node之间的通信还可以继续进行。

ros通讯方式有4种,分别是:

1.topic话题通讯模式

2.Service服务模式

3.Parammeter Service模式

4.Actionlib模式

3.话题的订阅、发布、消息自定义

Topic话题订阅模式是一种ROS常见的通讯方式,对于实时性、周期性的消息,使用Topic模式来传输消息是最佳选择,Topic模式是一种点对点的单项通讯方式,这里的点指的是Node,也就是节点之间可以通过Topic来传递消息。Topic话题主要经历下面的初始化过程:首先,Publisher发布者节点和subscriber订阅者节点都要到节点管理器Master中进行注册;然后,Publisher会发布Topic话题,

每一个节点只接受话题所发布的数据,发布数据后至于接收者是否接收到数据,那就和这个节点无关了。结合小海龟,来说明一下话题发布和订阅如何使用:

//1.构建工作空间
  mkdir ~/mrobot_ws/src
  catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim
  
  这时候在src文件夹下生成了learing_topic/include和 le
### 开始学习ROS(机器人操作系统) 对于希望在Ubuntu 18.04上开始学习ROS的用户来说,了解并掌握一系列的基础设置和工具是非常重要的。这不仅限于系统的安装,还包括理解ROS的工作原理及其生态系统。 #### 安装准备 为了确保顺利安装,在Ubuntu 18.04环境下应选择合适的ROS版本。由于该系统支持ROS Melodic Morenia作为其主要ROS1版本[^2],建议优先考虑此版本进行安装。 #### 安装过程概述 按照官方指南或其他可靠来源提供的指导完成ROS Melodic的具体安装步骤非常重要。这些资源通常会提供详细的命令序列来配置源列表、密钥添加以及实际软件包的获取与安装[^3]。 #### 学习路径规划 一旦成功安装了ROS环境之后,可以通过以下几种方式深入探索: - **官方文档**:ROS官方网站提供了详尽的教学材料和技术手册,适合初学者逐步深入了解各个功能模块。 - **在线课程**:许多平台如Coursera、Udemy等都开设有关于ROS应用开发的系列课程,通过视频讲解加实践项目的形式帮助学员快速入门。 - **社区交流**:加入活跃的技术论坛或QQ群组可以及时获得来自全球开发者的第一手经验和解决方案分享。 - **动手实验**:利用仿真器Gazebo创建虚拟场景测试算法效果;也可以尝试编写简单的节点(Node),并通过`roslaunch`指令批量运行多个关联程序实例[^5]。 ```bash # 示例:启动一个小乌龟模拟器 roslaunch turtlesim turtle_teleop_key.launch ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值