ubuntu22.04 SSH和ROS2控制下位机

本文涉及的产品
云防火墙,500元 1000GB
简介: 本文介绍了如何在Ubuntu 22.04系统中通过SSH远程控制机器人服务器,包括安装SSH服务、配置防火墙规则、修改`/etc/hosts`文件、使用密钥认证等步骤,并提供了使用ROS2控制下位机的方法和一些常用指令。

SSH

1.选择控制对象

在PC上用ssh控制机器人的过程中,PC是客户端,机器人是服务器。

2.机器人端操作

2.1 安装服务器ssh

sudo apt upgrade
sudo apt update
sudo apt install openssh-server

2.2 查看IP地址

分别查看PC和机器人的IP地址,并记录下来

sudo apt install net-tools  # 安装网络工具
ifconfig  # 查看本机IP地址

2.3 将PC端的IP写入机器人的识别名单/etc/hosts

打开机器人端的hosts文件

sudo gedit /etc/hosts

添加PC的ip地址到hosts文件并保存

192.168.xxx.xxx client_name

2.4 ping PC

尝试ping通PC,若成功说明机器人到PC的网络通信正常

ping client_name

2.5允许ssh通过机器人的防火墙

sudo ufw enable  # 启用防火墙
sudo ufw allow ssh  # 允许ssh
#sudo ufw allow 22
# 22端口为ssh端口
sudo ufw reload  # 重启防火墙

因为ROS2的通讯也需要被防火墙允许,需要单独设置比较麻烦
若不考虑安全性,推荐完全关闭防火墙

sudo ufw disable  # 关闭防火墙
sudo reboot  # 重启

3.PC端操作

3.1 安装客户端ssh

sudo apt upgrade
sudo apt update
sudo apt install openssh-client

3.2 查看IP地址

分别查看PC和机器人的IP地址,并记录下来

sudo apt install net-tools  # 安装网络工具
ifconfig  # 查看本机IP地址

3.3 将机器人IP写入PC的识别名单/etc/hosts

打开PC端的hosts文件

sudo gedit /etc/hosts

添加机器人的ip地址到hosts文件并保存

192.168.xxx.xxx server_name

3.4 ping机器人

尝试ping通机器人,若成功说明PC到机器人的网络通信正常

ping server_name

3.5 允许ssh通过PC的防火墙

sudo ufw enable  # 启用防火墙
sudo ufw allow ssh  # 允许ssh
#sudo ufw allow 22
# 22端口为ssh端口
sudo ufw reload  # 重启防火墙

因为ROS2的通讯也需要被防火墙允许,需要单独设置比较麻烦
若不考虑安全性,推荐完全关闭防火墙

sudo ufw disable  # 关闭防火墙
sudo reboot  # 重启

3.6 控制从机

sudo ssh ubuntu@server_name

此处ubuntu为默认机名,具体的可以查看机器人端命令行头类似ubuntu@name的东西

ROS2控制下位机

ROS2采用自发现机制,两者在同一局域网内即可自动发现彼此,不需要配置,需要注意的是防火墙会拦截ROS2通讯,需要允许部分端口或者完全禁用防火墙
PC端:

sudo apt-get install ros-humble-teleop-twist-keyboard
ros2 run teleop_twist_keyboard teleop_twist_keyboard

机器人端:

ros2 topic list

当发现机器人端有/cmd_vel话题时,说明主从机能通信。

常用指令

查看ssh服务的当前状态

sudo systemctl status ssh

重启ssh

sudo systemctl restart sshd.service

其他内容[可忽略]

修改etc/ssh/sshd_config

在服务器端(机器人)上修改etc/ssh/sshd_config文件

sudo gedit etc/ssh/sshd_config

修改该项#PermitRootLogin prohibit-password
更换为PermitRootLogin yes
注意:去掉#号使其生效

开始root控制[可选]

在机器人端设置root密码,否则会遇到permission denied

sudo passwd

Ctrl+Alt+T新开命令行窗口

ssh root@server_name

server_name为此前保存在/etc/hosts中的服务器端(机器人)IP地址,如果已经修改过了/etc/hosts,此处可以用字符串server_name代替IP地址

设置密钥认证[可选]

如果希望每次不通过密码登录直接连接,可以使用密钥方式
参考链接:Ubuntu SSH Keys

目录
相关文章
|
14天前
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
30 1
|
22天前
|
Ubuntu Apache
Ubuntu20.04下一键安装ROS1 Noetic
本文提供了一个简化在Ubuntu 20.04系统上安装ROS1 Noetic过程的一键安装脚本工具,该脚本通过优化配置和使用清华大学镜像源,加速了国内用户的下载速度,并自动完成环境设置和依赖安装,同时提供了详细的使用说明和源码。
131 0
Ubuntu20.04下一键安装ROS1 Noetic
|
24天前
|
Ubuntu 机器人 虚拟化
Ubuntu22.04配置ROS2 Humble
这篇文章是关于如何在Ubuntu 22.04系统上配置ROS2 Humble的详细教程,包括虚拟机安装、环境配置、网络设置、软件源更换、ROS1和ROS2的安装步骤。
67 1
|
28天前
|
Ubuntu 数据可视化 自动驾驶
最新 ROS 2 Jazzy Jalisco 发布!支持 Ubuntu 24.04
最新 ROS 2 Jazzy Jalisco 发布!支持 Ubuntu 24.04
51 2
|
29天前
|
Ubuntu 安全 定位技术
Windows11 - Ubuntu 双系统及 ROS、ROS3 安装(下)
Windows11 - Ubuntu 双系统及 ROS、ROS3 安装(下)
62 0
|
29天前
|
Ubuntu iOS开发 MacOS
Windows11 - Ubuntu 双系统及 ROS、ROS2 安装(上)
Windows11 - Ubuntu 双系统及 ROS、ROS2 安装
62 0
|
2月前
|
Ubuntu 机器人 Linux
Ubuntu查看ros版本-linux查看ros版本
通过上述方法,您可以轻松检查和确认您的Ubuntu或其他Linux系统上安装的ROS版本,以确保您的机器人项目能够顺利进行。
290 0
|
4月前
|
传感器 人工智能 算法
ROS机器人操作系统
ROS机器人操作系统
133 1
|
29天前
|
存储 Ubuntu 数据可视化
Sawyer 机器人 ROS SDK 配置(三)
Sawyer 机器人 ROS SDK 配置(三)
34 5
|
29天前
|
存储 Ubuntu 数据可视化
Sawyer 机器人 ROS SDK 配置(二)
Sawyer 机器人 ROS SDK 配置(二)
21 0