ROS学习第一天
一、ROS的安装
系统为国产基于debain的Deepin系统,版本号为20.2.3。 安装的ROS为目最新的noetic版本。
1、添加软件源
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu buster main" > /etc/apt/sources.list.d/ros-latest.list'
2、设置密匙
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3、更新软件包列表
sudo apt update
4、安装ROS
针对不同需求安装不同版本的ROS,这里安装的是noetic-desktop-full:
sudo apt install ros-noetic-desktop-full
对于最新版的noetic来说,不需要再进行之前版本颇为麻烦的rosdep init、rosdep update。而针对旧版本的安装,这里有一个很好的 参考书,利用代理加速超级管用,对于deepin的系统还需要修改系统标识为debian
5、搭建环境
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
在某些情况下,rosdep,是没有安装的,这里建议直接安装python3-rosdep这个包而不是python-rosdep
二、工作空间的搭建、包的创建
到了目前这个进度,ROS已经安装好了,接下来就到了喜闻乐见的hello world环节,不过在进行这个之前必须要先搭建工作空间 打开终端,在终端中输入:
mkdir -p RosWorkSpace/src
cd RosWorkSpace
catkin_make
echo "source /home/***/RosWorkSpace/devel/setup.bash" >> ~/.bashrc
目前为止工作空间已经搭建完成,下面就是创建自己的包
cd src
catkin_create_pkg learning_ros roscpp rospy std_msgs
现在包的框架已经搭好了,准备hello world,起飞
三、HelloWorld!
ROS是同时支持Python,C++。无论是更简单便捷的编程,还是更高效的编程,ROS都能满足,并且,你的项目可以一半用C++写,一半用Python写也完全不是问题,以节点为最小单位,同一个节点之间必须要同一种语言,但是,不同节点之间却不用考虑,不知道这些概念的建议先去ROSwiki上看看,这里以及以后,都提供两个版本。
1、C++实现
a、创建、编写cpp文件
cd learning_ros/src
touch HelloWorld_c.cpp
vim HelloWorld_c.cpp
HelloWorld_c.cpp
#include "ros/ros.h"
int main(int argc, char *argv[]){
ros::init(argc, argv, "helloworld");
ROS_INFO("helloworld");
return 0;
}
b、配置CMakeList.txt
cd ..
vim CMakeList.txt
在Build下添加
add_executable(helloworld src/HelloWorld_c.cpp) target_link_libraries(helloworld ${catkin_LIBRARIES})
c、编译
cd ~/RosWorkSpace
catkin_make
d、演示
roscore
rosrun learning_ros helloworld
2、Python实现
mkdir scripts
touch HelloWorld_p.py
chmod +x HelloWorld_p.py
vim HelloWorld_p.py
HelloWorld_p.py
import rospy
if __name__ == "__main__":
rospy.init_node("helloworld_p")
rospy.loginfo("Hello World!")
b、配置CMakeList.txt(在noetic特有)
cd ..
vim CMakeList.txt
在Install下添加
catkin_install_python(PROGRAMS scripts/HelloWorld_p.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
c、编译
cd ~/RosWorkSpace
catkin_make
d、演示
roscore
rosrun learning_ros HelloWord_p.py
谢谢观看,如果有哪里不正确的地方,欢迎指正!
|