第一章 ROS基础

第一章 ROS基础

ROS系列学习:
总章目录:
第一章 ROS基础
第二章 ModelArts数据处理
第三章 ModelArts模型训练
第四章 ModelArts模型转换
第五章 HiLens模型管理
第六章 HiLens技能部署
第七章 Hilens红绿灯数据获取+socket通信
第八章 Hilens红绿灯数据获取+socket通信(二)



前言

创建工作空间以及功能包;
话题;
服务;
分布式通信;


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建工作空间

mkdir -p ~/catkin_ws/src
catkin_init_workspace
source devel/setup.bash
catkin_create_pkg <package_name> [depend1] [depend2] ...

二、ROS通信

话题:advertise / subscribe
服务:advertiseService / serviceClient
动作:Server / Client / waitForServer / sendGoal

三、分布式通信

  ROS是一种分布式软件框架,节点之间通过松耦合的方式进行组合。

  分布式可以用于rviz远程控制显示,时候需要配置多机通讯:

1、IP地址设置,保证底层链路是通的:

1.0 IP对应表

本地IP:192.168.5.45 ubuntu
机器人IP:192.168.5.71 artrobot-TM1701

1.1 配置hosts

  首先查看本机IP(后续我们称为从机IP,因为我们将用我们本地的机器去控制移动的机器人):
在这里插入图片描述
  远程连接并查看另外一台设备IP(后续我们成为主机,就是我们实际运行的机器人所在设别的 IP):

ssh artrobot-TM1701@192.168.5.71
ifconfig

在这里插入图片描述

ubuntu@ubuntu:~$ sudo vim /etc/hosts
————————————————————————————
#加入到 hosts中:
192.168.5.71 artrobot
————————————————————————————
ubuntu@ubuntu:~$ ping artrobot 

截图:
在从机中加入主机 IP 以及名称:
在这里插入图片描述

从机 ping 主机查看是否连通:
在这里插入图片描述
编辑从机 hosts 文件:

artrobot@artrobot-TM1701:~$ sudo vim /etc/hosts

加入ubuntu用户IP:主机中加入从机IP(截图中写错了)
在这里插入图片描述
主机 ping 从机查看是否连通:
在这里插入图片描述
此时hosts配置完成。

1.2 在从机设置ROS_MASTER_URI,使从机可以找到ROS Master;

我们需要 从机 知道 主机 运行在什么地方:
所以我们需要在从机中加入主机的 Master 节点:

假如:我们通过本地控制机器人,同时在机器人端启动了ros master :此时我们需要在本地配置环境变量为:

export ROS_IP= ubuntu   #从机 IP 地址
export ROS_MASTER_URI=http://artrobot:11311 #主机 IP 地址

11311 是ros master的一个端口号,固定的。
方法一:(当前终端有效的)
写脚本:
ros_master_uri.sh

#!/bin/bash

#for open rviz and set ROS master ip
#Chance

function get_ip_address { ifconfig | fgrep -v 127.0.0.1 | fgrep 'Mask:255.255.255.0' | egrep -o 'addr:[^ ]*' | fgrep '.8.'| sed 's/^.*://'; }        

#export ROS_IP=$(get_ip_address) 
#export ROS_IP = 192.168.5.10
export ROS_IP=ubuntu   #从机 IP 地址
export ROS_MASTER_URI=http://artrobot:11311 #主机 IP 地址

#source ../devel/setup.bash
#rosrun rviz rviz 

执行一下:

source ros_master_uri.sh

方法二:(所有终端生效)

echo "export ROS_MASTER_URI=http://ubuntu:11311" >> ~/.bashrc

1.3 主从机案例:(主从机是相对的要好好理解)

1、主机:启动 ros master 和小乌龟节点:

ubuntu@ubuntu:~$ roscore
ubuntu@ubuntu:~$ rosrun turtlesim turtlesim_node 

在这里插入图片描述
2、从机查看rostopic list 以及发布速度指令:

artrobot@artrobot-TM1701:~$ rostopic list
artrobot@artrobot-TM1701:~$ export ROS_MASTER_URI=http://ubuntu:11311

在这里插入图片描述
此时就可以发布速度指令:

artrobot@artrobot-TM1701:~$ rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/ist "linear:
  x: 0.5
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.5" 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值