1.安装ROS
#!/bin/sh
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
sudo apt-get install ros-melodic-rqt*
sudo apt install python-rosdep2
sudo rosdep init
rosdep update
sudo apt-get install python-rosinstall
source /opt/ros/melodic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
sudo apt install net-tools
sudo apt install python-catkin-pkg
git clone https://github.com/ros/catkin.git
后续出现报错 参考 :
https://blog.youkuaiyun.com/lvmengzou/article/details/110825442
2.测试ROS环境
使用 turtlesim 的小例子
启动
turtlesim
在三个不同的终端中,分别执行以下三个指令:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
分三个终端的目的是让三个指令同时进行。
如果切换到
第三个终端(执行命令为
turtle_teleop_key
),然后按上、下、左、
或右键,海龟就会响应你的命令开始移动了,并在屏幕上留下运
动轨迹。
3.常用ROS命令
rospack list
查看软件包列表
要找到一个软件包的目录,使用
rospack find
命令:
rospack find package-name
要查看软件包目录下的文件,使用如下命令:
rosls package-name
如果想
“
访问
”
某软件包目录,可以将当前目录切换至此软件包目
录,使用如下命令:
roscd package-name
4.节点管理器
。要启动节点管理器,使用如下命令:
roscore
roslaunch
,其目的是一次性
启动多个节点。这是一个自适应工具,如果启动多节点时没有节
点管理器运行,它会自动启动节点管理器;如果已经有一个节点
管理器在运行,则会使用已有的
启动节点
启动节点(也称运行
ROS
程序)的基本命令是
rosrun
16
:
rosrun package-name executable-name
可以看到,
rosrun
命令有两个参数,其中第一个参
数是功能包的名称;
第二个
参数是该软件包中的可执行文件的名称
查看节点列表
ROS
提供了一些方法来获取任意时间运行节点的信
息。要获得运行节点列表,使用如下命令
17
:
rosnode list
查看节点
要获得特定节点的信息,使用如下命令:
rosnode info node-name
终止节点
要终止节点,使用如下命令:
rosnode kill node-name
命令将节点从列表中删除:
rosnode cleanup
ROS
节点之间进行通信所利用的最重要的机制就是
消息
传递。
在
ROS
中,消息有组织地存放在
话题
里
消息传递的理念是:
当一个节点想要分享信息时,它就会
发布
(publish)
消息到对应的
一个或者多个话题;当一个节点想要接收信息时,它就会
订阅
(subscribe)
它所需要的一个或者多个话题。
ROS
节点管理器负责确
保发布节点和订阅节点能找到对方;而且消息是直接地从发布节
点传递到订阅节点,中间并不经过节点管理器转交
查看节点构成的计算图
rqt_graph
话题列表
为了获取当前活跃的话题,使用如下命令
20
:
rostopic list
打印消息内容
为了查看某个话题上发布的消息,可以利用
rostopic
命令的如下形式:
rostopic echo topic-name
这条命令将会在终端里显示出指定话题里发布的任何消息
查看话题
利用
rostopic info
命令,你可以获取更多关于话题的
信息:
rostopic info topic-name