ROS1 noetic--安装使用

1 介绍

ROS 1 Noetic 是 ROS 1 的最后一个版本。Noetic 是一个长期支持(LTS)版本,于2020年5月23日发布。它支持 Python 3,并且与 Ubuntu 20.04 紧密相关。Noetic 的支持期限到2025年5月31日结束。

2 安装

一键安装指令【可自动更新源】

wget http://fishros.com/install -O fishros && . fishros

测试

  • 查看版本
rosversion -d
  • 测试
启动三个终端(Ctrl+Alt+T)
终端1键入:roscore
终端2键入:rosrun turtlesim turtlesim_node,会出现图像化界面
终端3键入:rosrun turtlesim turtle_teleop_key,可通过方向键控制turtle

在这里插入图片描述

可视化工具 rqt

rqt_graph

 rqt_graph

在这里插入图片描述

rqt_plot

rqt_plot

在这里插入图片描述

基础命令

rosnode 命令

rosnode 是 ROS 中用于管理节点的工具,除了 rosnode list,它还有其他子命令:

  • rosnode info <node_name>:显示指定节点的详细信息,包括订阅的主题、发布的主题、服务等。
  • rosnode kill <node_name>:终止指定的节点。
  • rosnode ping <node_name>:检查指定节点是否在运行。

杀死所有节点

for node in $(rosnode list); do rosnode kill $node; done
sen@u20:~$ rosnode info /turtlesim
--------------------------------------------------------------------------------
Node [/turtlesim]
Publications: 
 * /rosout [rosgraph_msgs/Log]
 * /turtle1/color_sensor [turtlesim/Color]
 * /turtle1/pose [turtlesim/Pose]

Subscriptions: 
 * /turtle1/cmd_vel [geometry_msgs/Twist]

Services: 
 * /clear
 * /kill
 * /reset
 * /spawn
 * /turtle1/set_pen
 * /turtle1/teleport_absolute
 * /turtle1/teleport_relative
 * /turtlesim/get_loggers
 * /turtlesim/set_logger_level


contacting node http://u20:33167/ ...
Pid: 4187
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound (51473 - 127.0.0.1:59362) [28]
    * transport: TCPROS
 * topic: /turtle1/pose
    * to: /rqt_gui_py_node_4260
    * direction: outbound (51473 - 127.0.0.1:39778) [23]
    * transport: TCPROS
 * topic: /turtle1/cmd_vel
    * to: /teleop_turtle (http://u20:40407/)
    * direction: inbound (41832 - u20:48049) [30]
    * transport: TCPROS

sen@u20:~$

rostopic 命令

rostopic 是用于管理 ROS 中主题(topic)的工具:

  • rostopic list:列出当前所有活跃的主题。
  • rostopic echo <topic_name>:显示指定主题的消息内容。
  • rostopic info <topic_name>:显示指定主题的详细信息,包括发布者和订阅者。
  • rostopic pub <topic_name> <msg_type>:手动发布消息到指定主题。
rostopic echo /turtle1/cmd_vel

---
linear: 
  x: 2.0
  y: 0.0
  z: 0.0
angular: 
  x: 0.0
  y: 0.0
  z: 0.0
---
  • 让小海龟不停的运动
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.0"

rosservice 命令

rosservice 是用于管理 ROS 中服务(service)的工具:

  • rosservice list:列出当前所有活跃的服务。
  • rosservice info <service_name>:显示指定服务的详细信息。
  • rosservice call <service_name>:调用指定的服务。

rosparam 命令

rosparam 是用于管理 ROS 参数(parameter)的工具:

  • rosparam list:列出当前所有参数。
  • rosparam get <param_name>:获取指定参数的值。
  • rosparam set <param_name> :设置指定参数的值。

rosbag 命令

rosbag 是用于记录和回放 ROS 消息的工具:

  • rosbag record <topic_name>:记录指定主题的消息到一个文件。
  • rosbag play <bag_file>:回放记录的消息。

roscore 命令

roscore 是 ROS 的核心节点,用于启动 ROS 主节点(master)和参数服务器(parameter server)。虽然它不是一个用于查看的命令,但它通常是运行 ROS 系统时首先启动的。

3 连接 wheeltec R550A PLUS ROS机械臂机器人 建图

小车和电脑同连一个WIFI

小车开机,连接WIFI(WHEELTEC),密码:一般为dongguan。

配置虚拟机环境

sudo gedit .bashrc

尾部添加
// export ROS_MASTER_URI=http://小车ip地址 wheeltec一般为:192.168.0.100
export ROS_MASTER_URI=http://192.168.0.100
export ROS_HOSTNAME=本机ip地址
export SVGA_VGPU10=0

小车中需要类似配置
有线IP:192.168.xx.xx,虚拟机和小车同步改配置

终端1:SSH远程登录

ssh -Y wheeltec@192.168.0.100

小车终端启动建图节点

roslaunch turn_on_wheeltec_robot mapping.launch

终端2:键盘控制小车行驶建图(也可以用app控制小车行驶)

新建一个终端(Ctrl+Alt+T)、按照步骤三(ssh远程登陆)后,在该终端输入以下命令开启键盘控制节点:

roslaunch wheeltec_robot_rc keyboard_teleop.launch

同时打开rviz 添加Map与RobotModel选项,设置话题

$ roscore
$ rosrun rviz rviz

设置话题
/map
/scan

单机键盘控制终端 按照指示按键控制小车行驶建图(边控制行驶,边观察Rviz建图情况)
注: 建图完毕后,不要关闭Rviz!!!

保存地图。

新建一个终端,输入以下命令(切换到要保存的目录下):

cd /home/wheeltec/wheeltec_robot/src/turn_on_wheeltec_robot/map

确定后,可以观察到我们进入了该目录(/home/wheeltec/wheeltec_robot/src/turn_on_wheeltec_robot/map)
再输入:

rosrun map_server map_saver -f 地图名称

即可保存当前地图到该目录下 然后退出rviz并终止建图、键盘控制节点的终端即可
注:终止终端命令(Ctrl+c)

导航模块中切换地图

在turn_on_wheeltec_robot功能包中launch文件夹中找到navigation.launch
大概在第11行——将其中的WHEELTEC换成之前保存的地图名字

启动导航节点。(要将小车放在建图起点)

roslaunch turn_on_wheeltec_robot navigation.launch

打开rviz 手动配置
注:如果不愿意每次都手动配置,可以参考这篇博客:保存Rviz配置 用launch文件启动
注:ssh登录小车,在小车的终端上开启相应节点,但要在上位机的终端开启rviz,小车主控无法承载同时开启节点与rviz

4 地图服务

地图文件

~/wheeltec_robot/src/turn_on_wheeltec_robot/map 下文件

wheeltec@wheeltec:~/wheeltec_robot/src/turn_on_wheeltec_robot/map$ ls
map_saver.launch  WHEELTEC_end.yaml  WHEELTEC.pgm  WHEELTEC.yaml
wheeltec@wheeltec:~/wheeltec_robot/src/turn_on_wheeltec_robot/map$ cat WHEELTEC.yaml 
image: /home/wheeltec/wheeltec_robot/src/turn_on_wheeltec_robot/map/WHEELTEC.pgm
resolution: 0.050000
origin: [-5.000000, -15.200000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

运行 map_server

rosrun map_server map_server <your_map_file.yaml>

查看地图服务

运行成功后,你可以通过ROS的 rostopic 和 rosservice 命令来查看和验证地图服务:
查看 /map 话题:

rostopic echo /map

查看地图服务:

rosservice list

5 日志

rosout

在ROS中,有一个特殊的话题叫作/rosout,它承载着所有节点的所有日志消息。/rosout消息的类型是rosgraph_msgs/Log:

rosmsg show rosgraph_msgs/Log

sen@u20:~$ rosmsg show rosgraph_msgs/Log
byte DEBUG=1
byte INFO=2
byte WARN=4
byte ERROR=8
byte FATAL=16
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
byte level
string name
string msg
string file
string function
uint32 line
string[] topics

rosgraph_msgs/Log消息用来让各个节点发布日志消息,这样一来就能让网络上的任何一个人都看到。

● DEBUG(调试):只在调试时用,此消息不出现在部署的应用中,仅用于测试;
● INFO(信息):标准消息,说明重要步骤或节点所正在执行的操作;
● WARN(警告):提醒一些错误、缺失或者不正常,但进程仍能运行;
● ERROR(错误):提示错误,尽管节点仍可在这里恢复,但对节点的行为设置了一定期望;
● FATAR(致命):这些消息通常表示阻止节点继续运行的错误。

日志消息有三个不同的输出目的地,包括屏幕、rosout topic、log 文档。其中发布到 rosout topic 的 msg 类型是 rosgraph_msgs/Log。
我们可以通过rostopic echo /rosout 来查看消息,也可以通过一个节点来订阅日志话题,还可以通过指令rqt_console来通过图形界面来显示日志消息:

日志查看工具

rqt_logger_level : rqt_logger_level 用于修改节点的日志输出级别(DEBUG、WARN、INFO、ERROR)

使用以下命令启动

rosrun rqt_logger_level rqt_logger_level

在这里插入图片描述

rqt_console : rqt_console 连接 ROS 的日志系统,可以实时显示节点输出

rosrun rqt_console rqt_console

在这里插入图片描述

其他

更新源

cd /etc/apt/
cp sources.list sources.list.bk
sudo vim sources.list
添加如下内容
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
# 添加上述内容后update
sudo apt-get update

参考

1、ROS–版本选择
2、小鱼的一键安装系列
3、wheeltec nano Ubuntu/Ros/Rviz小车建图及导航操作
4、保存Rviz配置 用launch文件启动
5、【ROS】学习之日志(log)消息
6、手动发布目标点
7、(五)turtlebot3用代码控制机器人直线及圆弧运动(/cmd_vel geometry_msgs/Twist的使用)
8、ROS学习–第2篇:ROS小海龟历程初探

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

worthsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值