机器人开发笔记之ros学习


机器人学习ROS篇


前言

本系列主要记载本人在机器人道路上摸爬滚打的经历。本篇是ROS相关的内容,虽然本科期间接触过不少,但是并没有进行过总结,每每用到什么东西都要重新查,很多都忘记了。近期重新进行了整理,学无止境,长期更新。


一、一些资料

古月居论坛
c++学习网站

二、如何安装ROS?

1.添加ROS软件源

$ sudo sh -c 'echo"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc)main">/etc/apt/sources.list.d/ros-latest.list'

2.添加密钥

$ sudo apt-key adv--keyserver hkp://ha.pool.sks-keyservers.net:80--recv-key421C365BD9FF1F717815A3895523BAEEB01FA116

3.安装ROS

$ sudo apt-get update
$ sudo apt-get install ros-kinetic-desktop-full

4.初始化rosdep

$ sudo rosdep init
$ rosdep update

5.设置环境变量

$ echo "source/opt/rps/kinetic/setup.bash">>~/.bashrc
$ source ~/.bashrc

6.安装rosinstall

$ sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

总结

现在应该已经安装完成了。可以打开终端,输入roscore就可以启动ROS Master了。在这里插入图片描述古月居课程在这里提到了终端可以用zsh而不是bash所以附个链接,大家想下的可以自取。Linux shell-zsh配置方案

三、ROS常用命令

在这里插入图片描述可以在终端中使用Tab键来查看所有相关的命令。

四、ROS基本使用

1.小海龟仿真器的使用

1.rqt_graph可视化工具查看系统中运行的计算图
基本操作

2.rqt-plot不能正常使用

在实验过程的时候遇到了rqt_plot不能正常打开,原因是ubuntu16.04的Python版本为2.7对于软件来说比较老了。rqt_plot打不开解决方案
期间还出现了一些权限不够的问题参考解决方案文件权限不够解决方案

2.工作空间

在这里插入图片描述
1.创建工作空间

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace

2.编译工作空间

$ cd ~/catkin_ws/
$ catkin_make

3.设置环境变量

$ source devel/setup.bash

4.检查环境变量

$ echo $ROS_PACKAGE_PATH

3.创建功能包

$ cd ~/catkin_ws/src
$ catkin_create_pkg learning_communication std_msgs rospy roscpp
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash

同一个工作空间,不允许存在同名功能包
不同工作空间下,允许存在同名功能包

4.通信编程

话题编程流程:
1.创建发布者、订阅者
如何实现一个发布者:
初始化节点信息;
向ros master注册节点信息,包括发布的话题名和话题中的消息类型;
按照一定频率循环发布消息。
如何实现一个订阅者:
在这里插入图片描述

初始化ROS节点;
订阅需要的话题;
循环等待话题消息,接收到消息后进入回调函数;
在回调函数中完成消息处理。
2.添加编译选项
设置需要编译的代码和生成的可执行文件;
设置链接库(CMakelist);
设置依赖。
3.运行
rosrun …;
如何自定义话题消息:
在这里插入图片描述

$ rosmsg show [文件名]

如何进行服务编程:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

如何运行可执行文件:

$ rosrun learning_communication server
$ rosrun learning_communication client 3 5

可以看到客户端收到相加过的数值,也能在服务端看到处理过程。移动机器人开发学习经历

5.动作编程

在这里插入图片描述在这里插入图片描述

action文件
在这里插入图片描述在这里插入图片描述在这里插入图片描述

6.ROS中的关键组件

1.Launch文件
通过XML文件实现多节点的配置和启动。
launch文件中的根元素采用标签定义
启动节点
<node pkg="package-name"type="executable-name"name=“node-name”/>
pkg:节点所在的功能包名称
type:节点的可执行文件名称
name:节点运行时名称
output:某一些节点的输出控制
respawn:输出失败的时候会重新启动
required:节点是必须的节点,没启动launch不能启动
ns:命名空间的属性
args:节点的具体输入参数
在这里插入图片描述
在这里插入图片描述2.TF坐标变换
《机器人学概论》
在这里插入图片描述待补充。。。。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值